Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / html / track / AudioTrack.h
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
11 namespace blink {
12
13 class AudioTrack final : public TrackBase, public ScriptWrappable {
14     DEFINE_WRAPPERTYPEINFO();
15 public:
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
33 private:
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
43 DEFINE_TRACK_TYPE_CASTS(AudioTrack, TrackBase::AudioTrack);
44
45 } // namespace blink
46
47 #endif // AudioTrack_h