Add missing vtable override specifiers under Source/WebCore/html
[WebKit-https.git] / Source / WebCore / html / track / InbandTextTrack.h
1 /*
2  * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef InbandTextTrack_h
27 #define InbandTextTrack_h
28
29 #if ENABLE(VIDEO_TRACK)
30
31 #include "InbandTextTrackPrivateClient.h"
32 #include "TextTrack.h"
33 #include "TextTrackCueGeneric.h"
34 #include <wtf/RefPtr.h>
35 #include <wtf/TypeCasts.h>
36
37 namespace WebCore {
38
39 class InbandTextTrack : public TextTrack, public InbandTextTrackPrivateClient {
40 public:
41     static PassRefPtr<InbandTextTrack> create(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
42     virtual ~InbandTextTrack();
43
44     virtual bool isClosedCaptions() const override;
45     virtual bool isSDH() const override;
46     virtual bool containsOnlyForcedSubtitles() const override;
47     virtual bool isMainProgramContent() const override;
48     virtual bool isEasyToRead() const override;
49     virtual void setMode(const AtomicString&) override;
50     size_t inbandTrackIndex();
51
52     virtual AtomicString inBandMetadataTrackDispatchType() const override;
53
54     void setPrivate(PassRefPtr<InbandTextTrackPrivate>);
55
56 protected:
57     InbandTextTrack(ScriptExecutionContext*, TextTrackClient*, PassRefPtr<InbandTextTrackPrivate>);
58
59     void setModeInternal(const AtomicString&);
60     void updateKindFromPrivate();
61
62     RefPtr<InbandTextTrackPrivate> m_private;
63
64 private:
65     virtual bool isInband() const override final { return true; }
66     virtual void idChanged(TrackPrivateBase*, const AtomicString&) override;
67     virtual void labelChanged(TrackPrivateBase*, const AtomicString&) override;
68     virtual void languageChanged(TrackPrivateBase*, const AtomicString&) override;
69     virtual void willRemove(TrackPrivateBase*) override;
70
71     virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, const void*, unsigned) override { ASSERT_NOT_REACHED(); }
72
73 #if ENABLE(DATACUE_VALUE)
74     virtual void addDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>, const String&) override { ASSERT_NOT_REACHED(); }
75     virtual void updateDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
76     virtual void removeDataCue(InbandTextTrackPrivate*, const MediaTime&, const MediaTime&, PassRefPtr<SerializedPlatformRepresentation>) override  { ASSERT_NOT_REACHED(); }
77 #endif
78
79     virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override { ASSERT_NOT_REACHED(); }
80     virtual void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
81     virtual void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); }
82
83     virtual void parseWebVTTFileHeader(InbandTextTrackPrivate*, String) override { ASSERT_NOT_REACHED(); }
84     virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const char*, unsigned) override { ASSERT_NOT_REACHED(); }
85     virtual void parseWebVTTCueData(InbandTextTrackPrivate*, const ISOWebVTTCue&) override { ASSERT_NOT_REACHED(); }
86
87     virtual MediaTime startTimeVariance() const override;
88
89 #if USE(PLATFORM_TEXT_TRACK_MENU)
90     virtual InbandTextTrackPrivate* privateTrack() override { return m_private.get(); }
91 #endif
92 };
93
94 } // namespace WebCore
95
96 SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::InbandTextTrack)
97     static bool isType(const WebCore::TextTrack& track) { return track.isInband(); }
98 SPECIALIZE_TYPE_TRAITS_END()
99
100 #endif // ENABLE(VIDEO_TRACK)
101
102 #endif // InbandTextTrack_h