source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/endpointvolume.idl@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.9 KB
RevLine 
[1166]1/*
2 * Copyright (C) 2009 Maarten Lankhorst
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19import "unknwn.idl";
20import "devicetopology.idl";
21
22typedef struct AUDIO_VOLUME_NOTIFICATION_DATA
23{
24 GUID guidEventContext;
25 BOOL bMuted;
26 FLOAT fMasterVolume;
27 UINT nChannels;
28 FLOAT afChannelVolumes[1];
29} AUDIO_VOLUME_NOTIFICATION_DATA;
30
31cpp_quote("typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;")
32
33cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_VOLUME 0x1")
34cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_MUTE 0x2")
35cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_METER 0x4")
36
37interface IAudioEndpointVolumeCallback;
38interface IAudioEndpointVolume;
39interface IAudioEndpointVolumeEx;
40interface IAudioMeterInformation;
41
42[
43 pointer_default(unique),
44 nonextensible,
45 uuid(657804fa-d6ad-4496-8a60-352752af4f89),
46 local,
47 object
48]
49interface IAudioEndpointVolumeCallback : IUnknown
50{
51 HRESULT OnNotify(
52 AUDIO_VOLUME_NOTIFICATION_DATA *pNotify
53 );
54}
55
56[
57 pointer_default(unique),
58 nonextensible,
59 uuid(5cdf2c82-841e-4546-9722-0cf74078229a),
60 local,
61 object
62]
63interface IAudioEndpointVolume : IUnknown
64{
65 HRESULT RegisterControlChangeNotify(
66 [in] IAudioEndpointVolumeCallback *pNotify
67 );
68 HRESULT UnregisterControlChangeNotify(
69 [in] IAudioEndpointVolumeCallback *pNotify
70 );
71 HRESULT GetChannelCount(
72 [out] UINT *pnChannelCount
73 );
74 HRESULT SetMasterVolumeLevel(
75 [in] FLOAT fLevelDB,
76 [unique,in] LPCGUID pguidEventContext
77 );
78 HRESULT SetMasterVolumeLevelScalar(
79 [in] FLOAT fLevel,
80 [unique,in] LPCGUID pguidEventContext
81 );
82 HRESULT GetMasterVolumeLevel(
83 [out] FLOAT *fLevelDB
84 );
85 HRESULT GetMasterVolumeLevelScalar(
86 [out] FLOAT *fLevel
87 );
88 HRESULT SetChannelVolumeLevel(
89 [in] UINT nChannel,
90 [in] FLOAT fLevelDB,
91 [unique,in] LPCGUID pguidEventContext
92 );
93 HRESULT SetChannelVolumeLevelScalar(
94 [in] UINT nChannel,
95 [in] FLOAT fLevel,
96 [unique,in] LPCGUID pguidEventContext
97 );
98 HRESULT GetChannelVolumeLevel(
99 [in] UINT nChannel,
100 [out] FLOAT *fLevelDB
101 );
102 HRESULT GetChannelVolumeLevelScalar(
103 [in] UINT nChannel,
104 [out] FLOAT *fLevel
105 );
106 HRESULT SetMute(
107 [in] BOOL bMute,
108 [unique,in] LPCGUID pguidEventContext
109 );
110 HRESULT GetMute(
111 [out] BOOL *bMute
112 );
113 HRESULT GetVolumeStepInfo(
114 [out] UINT *pnStep,
115 [out] UINT *pnStepCount
116 );
117 HRESULT VolumeStepUp(
118 [unique,in] LPCGUID pguidEventContext
119 );
120 HRESULT VolumeStepDown(
121 [unique,in] LPCGUID pguidEventContext
122 );
123 HRESULT QueryHardwareSupport(
124 [out] DWORD *pdwHardwareSupportMask
125 );
126 HRESULT GetVolumeRange(
127 [out] FLOAT *pflVolumeMindB,
128 [out] FLOAT *pflVolumeMaxdB,
129 [out] FLOAT *pflVolumeIncrementdB
130 );
131}
132
133[
134 pointer_default(unique),
135 nonextensible,
136 uuid(66e11784-f695-4f28-a505-a7080081a78f),
137 local,
138 object
139]
140interface IAudioEndpointVolumeEx : IAudioEndpointVolume
141{
142 HRESULT GetVolumeRangeChannel(
143 [in] UINT iChannel,
144 [out] FLOAT *pflVolumeMindB,
145 [out] FLOAT *pflVolumeMaxdB,
146 [out] FLOAT *pflVolumeIncrementdB
147 );
148}
Note: See TracBrowser for help on using the repository browser.