MediaStreamTrack.cpp [plain text]
#include "config.h"
#include "MediaStreamTrack.h"
#if ENABLE(MEDIA_STREAM)
#include "MediaStreamCenter.h"
#include "MediaStreamComponent.h"
namespace WebCore {
PassRefPtr<MediaStreamTrack> MediaStreamTrack::create(PassRefPtr<MediaStreamDescriptor> streamDescriptor, MediaStreamComponent* component)
{
return adoptRef(new MediaStreamTrack(streamDescriptor, component));
}
MediaStreamTrack::MediaStreamTrack(PassRefPtr<MediaStreamDescriptor> streamDescriptor, MediaStreamComponent* component)
: m_streamDescriptor(streamDescriptor)
, m_component(component)
{
}
MediaStreamTrack::~MediaStreamTrack()
{
}
String MediaStreamTrack::kind() const
{
DEFINE_STATIC_LOCAL(String, audioKind, ("audio"));
DEFINE_STATIC_LOCAL(String, videoKind, ("video"));
switch (m_component->source()->type()) {
case MediaStreamSource::TypeAudio:
return audioKind;
case MediaStreamSource::TypeVideo:
return videoKind;
}
ASSERT_NOT_REACHED();
return audioKind;
}
String MediaStreamTrack::label() const
{
return m_component->source()->name();
}
bool MediaStreamTrack::enabled() const
{
return m_component->enabled();
}
void MediaStreamTrack::setEnabled(bool enabled)
{
if (enabled == m_component->enabled())
return;
m_component->setEnabled(enabled);
if (m_streamDescriptor->ended())
return;
MediaStreamCenter::instance().didSetMediaStreamTrackEnabled(m_streamDescriptor.get(), m_component.get());
}
MediaStreamComponent* MediaStreamTrack::component()
{
return m_component.get();
}
}
#endif // ENABLE(MEDIA_STREAM)