AudioTrackPrivate.h [plain text]
#ifndef AudioTrackPrivate_h
#define AudioTrackPrivate_h
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/RefCounted.h>
#include <wtf/text/AtomicString.h>
#if ENABLE(VIDEO_TRACK)
namespace WebCore {
class AudioTrackPrivate;
class AudioTrackPrivateClient {
public:
virtual ~AudioTrackPrivateClient() { }
virtual void willRemoveAudioTrackPrivate(AudioTrackPrivate*) = 0;
};
class AudioTrackPrivate : public RefCounted<AudioTrackPrivate> {
WTF_MAKE_NONCOPYABLE(AudioTrackPrivate); WTF_MAKE_FAST_ALLOCATED;
public:
static PassRefPtr<AudioTrackPrivate> create()
{
return adoptRef(new AudioTrackPrivate());
}
virtual ~AudioTrackPrivate() { }
void setClient(AudioTrackPrivateClient* client) { m_client = client; }
AudioTrackPrivateClient* client() { return m_client; }
virtual void setEnabled(bool enabled) { m_enabled = enabled; };
virtual bool enabled() const { return m_enabled; }
enum Kind { Alternative, Description, Main, MainDesc, Translation, Commentary, None };
virtual Kind kind() const { return None; }
virtual AtomicString id() const { return emptyAtom; }
virtual AtomicString label() const { return emptyAtom; }
virtual AtomicString language() const { return emptyAtom; }
virtual int audioTrackIndex() const { return 0; }
void willBeRemoved()
{
if (m_client)
m_client->willRemoveAudioTrackPrivate(this);
}
protected:
AudioTrackPrivate()
: m_enabled(false)
{
}
private:
AudioTrackPrivateClient* m_client;
bool m_enabled;
};
}
#endif
#endif