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 #include "config.h" 6 #include "core/html/track/VideoTrack.h" 7 8 #include "core/html/HTMLMediaElement.h" 9 10 namespace blink { 11 12 VideoTrack::VideoTrack(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool selected) 13 : TrackBase(TrackBase::VideoTrack, label, language, id) 14 , m_selected(selected) 15 { 16 setKind(kind); 17 } 18 19 VideoTrack::~VideoTrack() 20 { 21 } 22 23 void VideoTrack::setSelected(bool selected) 24 { 25 if (selected == m_selected) 26 return; 27 28 m_selected = selected; 29 30 if (mediaElement()) { 31 blink::WebMediaPlayer::TrackId selectedTrackId = trackId(); 32 mediaElement()->selectedVideoTrackChanged(selected ? &selectedTrackId : 0); 33 } 34 } 35 36 const AtomicString& VideoTrack::alternativeKeyword() 37 { 38 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("alternative", AtomicString::ConstructFromLiteral)); 39 return keyword; 40 } 41 42 const AtomicString& VideoTrack::captionsKeyword() 43 { 44 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("captions", AtomicString::ConstructFromLiteral)); 45 return keyword; 46 } 47 48 const AtomicString& VideoTrack::mainKeyword() 49 { 50 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("main", AtomicString::ConstructFromLiteral)); 51 return keyword; 52 } 53 54 const AtomicString& VideoTrack::signKeyword() 55 { 56 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("sign", AtomicString::ConstructFromLiteral)); 57 return keyword; 58 } 59 60 const AtomicString& VideoTrack::subtitlesKeyword() 61 { 62 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("subtitles", AtomicString::ConstructFromLiteral)); 63 return keyword; 64 } 65 66 const AtomicString& VideoTrack::commentaryKeyword() 67 { 68 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("commentary", AtomicString::ConstructFromLiteral)); 69 return keyword; 70 } 71 72 bool VideoTrack::isValidKind(const AtomicString& kind) const 73 { 74 return (kind == alternativeKeyword()) 75 || (kind == captionsKeyword()) 76 || (kind == mainKeyword()) 77 || (kind == signKeyword()) 78 || (kind == subtitlesKeyword()) 79 || (kind == commentaryKeyword()); 80 } 81 82 AtomicString VideoTrack::defaultKind() const 83 { 84 return emptyAtom; 85 } 86 87 } 88