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 10namespace blink { 11 12VideoTrack::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 19VideoTrack::~VideoTrack() 20{ 21} 22 23void 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 36const AtomicString& VideoTrack::alternativeKeyword() 37{ 38 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("alternative", AtomicString::ConstructFromLiteral)); 39 return keyword; 40} 41 42const AtomicString& VideoTrack::captionsKeyword() 43{ 44 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("captions", AtomicString::ConstructFromLiteral)); 45 return keyword; 46} 47 48const AtomicString& VideoTrack::mainKeyword() 49{ 50 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("main", AtomicString::ConstructFromLiteral)); 51 return keyword; 52} 53 54const AtomicString& VideoTrack::signKeyword() 55{ 56 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("sign", AtomicString::ConstructFromLiteral)); 57 return keyword; 58} 59 60const AtomicString& VideoTrack::subtitlesKeyword() 61{ 62 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("subtitles", AtomicString::ConstructFromLiteral)); 63 return keyword; 64} 65 66const AtomicString& VideoTrack::commentaryKeyword() 67{ 68 DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("commentary", AtomicString::ConstructFromLiteral)); 69 return keyword; 70} 71 72bool 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 82AtomicString VideoTrack::defaultKind() const 83{ 84 return emptyAtom; 85} 86 87} 88