Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / track / VideoTrack.cpp
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 }