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