InbandTextTrackPrivate.h [plain text]
#ifndef InbandTextTrackPrivate_h
#define InbandTextTrackPrivate_h
#if ENABLE(VIDEO_TRACK)
#include "InbandTextTrackPrivateClient.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/RefCounted.h>
#include <wtf/text/AtomicString.h>
namespace WebCore {
class InbandTextTrackPrivate : public RefCounted<InbandTextTrackPrivate> {
WTF_MAKE_NONCOPYABLE(InbandTextTrackPrivate); WTF_MAKE_FAST_ALLOCATED;
public:
static PassRefPtr<InbandTextTrackPrivate> create()
{
return adoptRef(new InbandTextTrackPrivate());
}
virtual ~InbandTextTrackPrivate() { }
void setClient(InbandTextTrackPrivateClient* client) { m_client = client; }
InbandTextTrackPrivateClient* client() { return m_client; }
enum Mode {
Disabled,
Hidden,
Showing
};
virtual void setMode(Mode mode) { m_mode = mode; };
virtual InbandTextTrackPrivate::Mode mode() const { return m_mode; }
enum Kind {
Subtitles,
Captions,
Descriptions,
Chapters,
Metadata,
Forced,
None
};
virtual Kind kind() const { return Subtitles; }
virtual bool isClosedCaptions() const { return false; }
virtual bool isSDH() const { return false; }
virtual bool containsOnlyForcedSubtitles() const { return false; }
virtual bool isMainProgramContent() const { return true; }
virtual bool isEasyToRead() const { return false; }
virtual AtomicString label() const { return emptyAtom; }
virtual AtomicString language() const { return emptyAtom; }
virtual bool isDefault() const { return false; }
virtual int textTrackIndex() const { return 0; }
void willBeRemoved()
{
if (m_client)
m_client->willRemoveTextTrackPrivate(this);
}
protected:
InbandTextTrackPrivate()
: m_client(0)
, m_mode(Disabled)
{
}
private:
InbandTextTrackPrivateClient* m_client;
Mode m_mode;
};
}
#endif
#endif