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/v8/ScriptWrappable.h" 9 #include "core/html/track/TrackBase.h" 10 11 namespace WebCore { 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 } 47 48 #endif 49