Line data Source code
1 : /* This Source Code Form is subject to the terms of the Mozilla Public
2 : * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 : * You can obtain one at http://mozilla.org/MPL/2.0/. */
4 :
5 : #ifndef mozilla_dom_MediaDeviceInfo_h
6 : #define mozilla_dom_MediaDeviceInfo_h
7 :
8 : #include "mozilla/ErrorResult.h"
9 : #include "nsISupportsImpl.h"
10 : #include "mozilla/dom/BindingUtils.h"
11 : #include "MediaDeviceInfoBinding.h"
12 : #include "nsPIDOMWindow.h"
13 :
14 : namespace mozilla {
15 : namespace dom {
16 :
17 : #define MOZILLA_DOM_MEDIADEVICEINFO_IMPLEMENTATION_IID \
18 : {0x25091870, 0x84d6, 0x4acf, {0xaf, 0x97, 0x6e, 0xd5, 0x5b, 0xe0, 0x47, 0xb2}}
19 :
20 : class MediaDeviceInfo final : public nsISupports, public nsWrapperCache
21 : {
22 : public:
23 : explicit MediaDeviceInfo(const nsAString& aDeviceId,
24 : MediaDeviceKind aKind,
25 : const nsAString& aLabel,
26 : const nsAString& aGroupId = nsString());
27 :
28 : NS_DECL_CYCLE_COLLECTING_ISUPPORTS
29 0 : NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(MediaDeviceInfo)
30 : NS_DECLARE_STATIC_IID_ACCESSOR(MOZILLA_DOM_MEDIADEVICEINFO_IMPLEMENTATION_IID)
31 :
32 : JSObject*
33 : WrapObject(JSContext* cx, JS::Handle<JSObject*> aGivenProto) override;
34 :
35 : nsISupports* GetParentObject();
36 :
37 : void GetDeviceId(nsString& retval);
38 : MediaDeviceKind Kind();
39 : void GetLabel(nsString& retval);
40 : void GetGroupId(nsString& retval);
41 :
42 : private:
43 : MediaDeviceKind mKind;
44 : nsString mDeviceId;
45 : nsString mLabel;
46 : nsString mGroupId;
47 :
48 0 : virtual ~MediaDeviceInfo() {}
49 : };
50 :
51 : NS_DEFINE_STATIC_IID_ACCESSOR(MediaDeviceInfo,
52 : MOZILLA_DOM_MEDIADEVICEINFO_IMPLEMENTATION_IID)
53 :
54 : } // namespace dom
55 : } // namespace mozilla
56 :
57 : #endif // mozilla_dom_MediaDeviceInfo_h
|