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