2 * Copyright 2021 Andrew Eikum for CodeWeavers
3 * Copyright 2020 RĂ©mi Bernon for CodeWeavers
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #pragma winrt ns_prefix
24 import
"inspectable.idl";
25 import
"eventtoken.idl";
26 import
"windows.foundation.idl";
31 typedef enum AudioDeviceRole AudioDeviceRole
;
32 interface IDefaultAudioDeviceChangedEventArgs
;
33 interface IMediaDeviceStatics
;
34 runtimeclass DefaultAudioCaptureDeviceChangedEventArgs
;
35 runtimeclass DefaultAudioRenderDeviceChangedEventArgs
;
36 runtimeclass MediaDevice
;
45 interface Windows.Foundation.TypedEventHandler
<IInspectable
*, Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs
*>;
46 interface Windows.Foundation.TypedEventHandler
<IInspectable
*, Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs
*>;
55 enum AudioDeviceRole
{
67 uuid(110f882f
-1c05
-4657-a18e
-47c9b69f07ab
)
69 interface IDefaultAudioDeviceChangedEventArgs
: IInspectable
71 [propget] HRESULT Id([out] [retval] HSTRING
*value
);
72 [propget] HRESULT Role
([out] [retval] Windows.Media.Devices.AudioDeviceRole
*value
);
76 exclusiveto
(Windows.Media.Devices.MediaDevice
),
77 uuid(aa2d9a40
-909f
-4bba
-bf8b
-0c0d296f14f0
)
79 interface IMediaDeviceStatics
: IInspectable
81 HRESULT GetAudioCaptureSelector
([out] [retval] HSTRING
*value
);
82 HRESULT GetAudioRenderSelector
([out] [retval] HSTRING
*value
);
83 HRESULT GetVideoCaptureSelector
([out] [retval] HSTRING
*value
);
84 HRESULT GetDefaultAudioCaptureId
([in] Windows.Media.Devices.AudioDeviceRole role
, [out] [retval] HSTRING
*value
);
85 HRESULT GetDefaultAudioRenderId
([in] Windows.Media.Devices.AudioDeviceRole role
, [out] [retval] HSTRING
*value
);
87 [eventadd
] HRESULT DefaultAudioCaptureDeviceChanged
(
88 [in] Windows.Foundation.TypedEventHandler
<IInspectable
*, Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs
*> *handler
,
89 [out, retval] EventRegistrationToken
* token
);
90 [eventremove
] HRESULT DefaultAudioCaptureDeviceChanged
(
91 [in] EventRegistrationToken token
);
93 [eventadd
] HRESULT DefaultAudioRenderDeviceChanged
(
94 [in] Windows.Foundation.TypedEventHandler
<IInspectable
*, Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs
*> *handler
,
95 [out, retval] EventRegistrationToken
* token
);
96 [eventremove
] HRESULT DefaultAudioRenderDeviceChanged
(
97 [in] EventRegistrationToken token
);
101 activatable
(Windows.Foundation.UniversalApiContract
, 1.0),
102 marshaling_behavior
(agile
),
103 static
(Windows.Media.Devices.IMediaDeviceStatics
, Windows.Foundation.UniversalApiContract
, 1.0),
105 runtimeclass MediaDevice
110 marshaling_behavior
(agile
)
112 runtimeclass DefaultAudioRenderDeviceChangedEventArgs
114 [default] interface Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs
;
118 marshaling_behavior
(agile
)
120 runtimeclass DefaultAudioCaptureDeviceChangedEventArgs
122 [default] interface Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs
;