Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / track / VideoTrack.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef VideoTrack_h
6 #define VideoTrack_h
7
8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "core/html/track/TrackBase.h"
10
11 namespace blink {
12
13 class VideoTrack FINAL : public TrackBase, public ScriptWrappable {
14 public:
15     static PassRefPtrWillBeRawPtr<VideoTrack> create(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool selected)
16     {
17         return adoptRefWillBeRefCountedGarbageCollected(new VideoTrack(id, kind, label, language, selected));
18     }
19     virtual ~VideoTrack();
20
21     bool selected() const { return m_selected; }
22     void setSelected(bool);
23
24     // Set selected to false without notifying the owner media element. Used when
25     // another video track is selected, implicitly deselecting this one.
26     void clearSelected() { m_selected = false; }
27
28     // Valid kind keywords.
29     static const AtomicString& alternativeKeyword();
30     static const AtomicString& captionsKeyword();
31     static const AtomicString& mainKeyword();
32     static const AtomicString& signKeyword();
33     static const AtomicString& subtitlesKeyword();
34     static const AtomicString& commentaryKeyword();
35
36 private:
37     VideoTrack(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool selected);
38
39     // TrackBase
40     virtual bool isValidKind(const AtomicString&) const OVERRIDE;
41     virtual AtomicString defaultKind() const OVERRIDE;
42
43     bool m_selected;
44 };
45
46 DEFINE_TRACK_TYPE_CASTS(VideoTrack, TrackBase::VideoTrack);
47
48 }
49
50 #endif