summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/track/InbandTextTrack.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/track/InbandTextTrack.h')
-rw-r--r--Source/WebCore/html/track/InbandTextTrack.h71
1 files changed, 46 insertions, 25 deletions
diff --git a/Source/WebCore/html/track/InbandTextTrack.h b/Source/WebCore/html/track/InbandTextTrack.h
index 1e1313bf5..6cf2687bb 100644
--- a/Source/WebCore/html/track/InbandTextTrack.h
+++ b/Source/WebCore/html/track/InbandTextTrack.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2012-2017 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -23,49 +23,70 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef InbandTextTrack_h
-#define InbandTextTrack_h
+#pragma once
#if ENABLE(VIDEO_TRACK)
#include "InbandTextTrackPrivateClient.h"
#include "TextTrack.h"
-#include "TextTrackCueGeneric.h"
-#include <wtf/RefPtr.h>
namespace WebCore {
-class InbandTextTrack : public TextTrack, public InbandTextTrackPrivateClient {
+class InbandTextTrack : public TextTrack, private InbandTextTrackPrivateClient {
public:
- static PassRefPtr<InbandTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
+ static Ref<InbandTextTrack> create(ScriptExecutionContext&, TextTrackClient&, InbandTextTrackPrivate&);
virtual ~InbandTextTrack();
- virtual bool isClosedCaptions() const override;
- virtual bool isSDH() const override;
- virtual bool containsOnlyForcedSubtitles() const override;
- virtual bool isMainProgramContent() const override;
- virtual bool isEasyToRead() const override;
- virtual void setMode(const AtomicString&) override;
+ bool isClosedCaptions() const override;
+ bool isSDH() const override;
+ bool containsOnlyForcedSubtitles() const override;
+ bool isMainProgramContent() const override;
+ bool isEasyToRead() const override;
+ void setMode(Mode) override;
size_t inbandTrackIndex();
+ AtomicString inBandMetadataTrackDispatchType() const override;
+
+ void setPrivate(InbandTextTrackPrivate&);
+
protected:
- InbandTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
+ InbandTextTrack(ScriptExecutionContext&, TextTrackClient&, InbandTextTrackPrivate&);
+
+ void setModeInternal(Mode);
+ void updateKindFromPrivate();
- RefPtr<InbandTextTrackPrivate> m_private;
+ Ref<InbandTextTrackPrivate> m_private;
private:
+ bool isInband() const final { return true; }
+ void idChanged(const AtomicString&) override;
+ void labelChanged(const AtomicString&) override;
+ void languageChanged(const AtomicString&) override;
+ void willRemove() override;
- virtual void idChanged(TrackPrivateBase*, const String&) override;
- virtual void labelChanged(TrackPrivateBase*, const String&) override;
- virtual void languageChanged(TrackPrivateBase*, const String&) override;
- virtual void willRemove(TrackPrivateBase*) override;
+ void addDataCue(const MediaTime&, const MediaTime&, const void*, unsigned) override { ASSERT_NOT_REACHED(); }
-#if USE(PLATFORM_TEXT_TRACK_MENU)
- virtual InbandTextTrackPrivate* privateTrack() override { return m_private.get(); }
+#if ENABLE(DATACUE_VALUE)
+ void addDataCue(const MediaTime&, const MediaTime&, Ref<SerializedPlatformRepresentation>&&, const String&) override { ASSERT_NOT_REACHED(); }
+ void updateDataCue(const MediaTime&, const MediaTime&, SerializedPlatformRepresentation&) override { ASSERT_NOT_REACHED(); }
+ void removeDataCue(const MediaTime&, const MediaTime&, SerializedPlatformRepresentation&) override { ASSERT_NOT_REACHED(); }
#endif
+
+ void addGenericCue(GenericCueData&) override { ASSERT_NOT_REACHED(); }
+ void updateGenericCue(GenericCueData&) override { ASSERT_NOT_REACHED(); }
+ void removeGenericCue(GenericCueData&) override { ASSERT_NOT_REACHED(); }
+
+ void parseWebVTTFileHeader(String&&) override { ASSERT_NOT_REACHED(); }
+ void parseWebVTTCueData(const char*, unsigned) override { ASSERT_NOT_REACHED(); }
+ void parseWebVTTCueData(const ISOWebVTTCue&) override { ASSERT_NOT_REACHED(); }
+
+ MediaTime startTimeVariance() const override;
};
} // namespace WebCore
-#endif
-#endif
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::InbandTextTrack)
+ static bool isType(const WebCore::TextTrack& track) { return track.isInband(); }
+SPECIALIZE_TYPE_TRAITS_END()
+
+#endif // ENABLE(VIDEO_TRACK)