MediaStreamTrack.h [plain text]
#ifndef MediaStreamTrack_h
#define MediaStreamTrack_h
#if ENABLE(MEDIA_STREAM)
#include "ActiveDOMObject.h"
#include "EventTarget.h"
#include "MediaStreamDescriptor.h"
#include "MediaStreamSource.h"
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class MediaStreamComponent;
class MediaStreamTrack : public RefCounted<MediaStreamTrack>, public ActiveDOMObject, public EventTarget, public MediaStreamSource::Observer {
public:
static PassRefPtr<MediaStreamTrack> create(ScriptExecutionContext*, MediaStreamComponent*);
virtual ~MediaStreamTrack();
String kind() const;
String id() const;
String label() const;
bool enabled() const;
void setEnabled(bool);
String readyState() const;
DEFINE_ATTRIBUTE_EVENT_LISTENER(mute);
DEFINE_ATTRIBUTE_EVENT_LISTENER(unmute);
DEFINE_ATTRIBUTE_EVENT_LISTENER(ended);
MediaStreamComponent* component();
bool ended() const;
virtual const AtomicString& interfaceName() const OVERRIDE;
virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE;
virtual void stop() OVERRIDE;
using RefCounted<MediaStreamTrack>::ref;
using RefCounted<MediaStreamTrack>::deref;
private:
MediaStreamTrack(ScriptExecutionContext*, MediaStreamComponent*);
virtual EventTargetData* eventTargetData() OVERRIDE;
virtual EventTargetData* ensureEventTargetData() OVERRIDE;
virtual void refEventTarget() OVERRIDE { ref(); }
virtual void derefEventTarget() OVERRIDE { deref(); }
EventTargetData m_eventTargetData;
virtual void sourceChangedState() OVERRIDE;
bool m_stopped;
RefPtr<MediaStreamComponent> m_component;
};
typedef Vector<RefPtr<MediaStreamTrack> > MediaStreamTrackVector;
}
#endif // ENABLE(MEDIA_STREAM)
#endif // MediaStreamTrack_h