Home | History | Annotate | Download | only in track
      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