15d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)// found in the LICENSE file. 45d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 55d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)#include "config.h" 65d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)#include "core/html/track/AudioTrack.h" 75d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 85d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)#include "core/html/HTMLMediaElement.h" 95d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 115d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 125d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)AudioTrack::AudioTrack(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool enabled) 135d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) : TrackBase(TrackBase::AudioTrack, label, language, id) 145d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) , m_enabled(enabled) 155d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 165d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) setKind(kind); 175d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 185d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 195d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)AudioTrack::~AudioTrack() 205d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 215d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 225d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 235d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)void AudioTrack::setEnabled(bool enabled) 245d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 255d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) if (enabled == m_enabled) 265d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return; 275d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 285d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) m_enabled = enabled; 295d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 305d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) if (mediaElement()) 315d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) mediaElement()->audioTrackChanged(); 325d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 335d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 345d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::alternativeKeyword() 355d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 365d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("alternative", AtomicString::ConstructFromLiteral)); 375d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 385d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 395d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 405d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::descriptionsKeyword() 415d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 425d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("descriptions", AtomicString::ConstructFromLiteral)); 435d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 445d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 455d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 465d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::mainKeyword() 475d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 485d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("main", AtomicString::ConstructFromLiteral)); 495d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 505d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 515d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 525d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::mainDescriptionsKeyword() 535d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 545d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("main-desc", AtomicString::ConstructFromLiteral)); 555d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 565d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 575d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 585d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::translationKeyword() 595d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 605d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("translation", AtomicString::ConstructFromLiteral)); 615d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 625d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 635d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 645d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)const AtomicString& AudioTrack::commentaryKeyword() 655d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 665d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("commentary", AtomicString::ConstructFromLiteral)); 675d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return keyword; 685d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 695d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 705d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)bool AudioTrack::isValidKind(const AtomicString& kind) const 715d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 725d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return (kind == alternativeKeyword()) 735d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) || (kind == descriptionsKeyword()) 745d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) || (kind == mainKeyword()) 755d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) || (kind == mainDescriptionsKeyword()) 765d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) || (kind == translationKeyword()) 775d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) || (kind == commentaryKeyword()); 785d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 795d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 805d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)AtomicString AudioTrack::defaultKind() const 815d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles){ 825d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) return emptyAtom; 835d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 845d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 855d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)} 86