1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set ts=2 sw=2 et tw=78: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 
7 #ifndef mozilla_dom_AudioTrackList_h
8 #define mozilla_dom_AudioTrackList_h
9 
10 #include "MediaTrack.h"
11 #include "MediaTrackList.h"
12 
13 namespace mozilla {
14 namespace dom {
15 
16 class AudioTrack;
17 
18 class AudioTrackList : public MediaTrackList {
19  public:
AudioTrackList(nsIGlobalObject * aOwnerObject,HTMLMediaElement * aMediaElement)20   AudioTrackList(nsIGlobalObject* aOwnerObject, HTMLMediaElement* aMediaElement)
21       : MediaTrackList(aOwnerObject, aMediaElement) {}
22 
23   JSObject* WrapObject(JSContext* aCx,
24                        JS::Handle<JSObject*> aGivenProto) override;
25 
26   AudioTrack* operator[](uint32_t aIndex);
27 
28   // WebIDL
29   AudioTrack* IndexedGetter(uint32_t aIndex, bool& aFound);
30 
31   AudioTrack* GetTrackById(const nsAString& aId);
32 
33  protected:
AsAudioTrackList()34   AudioTrackList* AsAudioTrackList() override { return this; }
35 };
36 
37 }  // namespace dom
38 }  // namespace mozilla
39 
40 #endif  // mozilla_dom_AudioTrackList_h
41