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#ifndef AudioTrack_h
6#define AudioTrack_h
7
8#include "bindings/core/v8/ScriptWrappable.h"
9#include "core/html/track/TrackBase.h"
10
11namespace blink {
12
13class AudioTrack FINAL : public TrackBase, public ScriptWrappable {
14    DEFINE_WRAPPERTYPEINFO();
15public:
16    static PassRefPtrWillBeRawPtr<AudioTrack> create(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool enabled)
17    {
18        return adoptRefWillBeNoop(new AudioTrack(id, kind, label, language, enabled));
19    }
20    virtual ~AudioTrack();
21
22    bool enabled() const { return m_enabled; }
23    void setEnabled(bool);
24
25    // Valid kind keywords.
26    static const AtomicString& alternativeKeyword();
27    static const AtomicString& descriptionsKeyword();
28    static const AtomicString& mainKeyword();
29    static const AtomicString& mainDescriptionsKeyword();
30    static const AtomicString& translationKeyword();
31    static const AtomicString& commentaryKeyword();
32
33private:
34    AudioTrack(const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language, bool enabled);
35
36    // TrackBase
37    virtual bool isValidKind(const AtomicString&) const OVERRIDE;
38    virtual AtomicString defaultKind() const OVERRIDE;
39
40    bool m_enabled;
41};
42
43DEFINE_TRACK_TYPE_CASTS(AudioTrack, TrackBase::AudioTrack);
44
45} // namespace blink
46
47#endif // AudioTrack_h
48