ReactOS 0.4.16-dev-340-g0540c21
audiopolicy.idl
Go to the documentation of this file.
1/*
2 * Core Audio audio policy definitions
3 *
4 * Copyright 2009 Maarten Lankhorst
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 */
21
22import "oaidl.idl";
23import "ocidl.idl";
24import "propidl.idl";
25import "audiosessiontypes.h";
26import "audioclient.idl";
27
28interface IAudioSessionEvents;
29interface IAudioSessionControl;
30interface IAudioSessionControl2;
31interface IAudioSessionManager;
35interface IAudioSessionManager2;
36
37typedef enum AudioSessionDisconnectReason /*[local]*/
38{
46
47[
48 local,
49 uuid(24918acc-64b3-37c1-8ca9-74a66e9957a8),
51 object
52]
54{
56 [string,in] LPCWSTR NewDisplayName,
57 [in] LPCGUID EventContext
58 );
60 [string,in] LPCWSTR NewIconPath,
61 [in] LPCGUID EventContext
62 );
64 [in] float NewVolume,
65 [in] BOOL NewMute,
66 [in] LPCGUID EventContext
67 );
69 [in] DWORD ChannelCount,
70 [size_is(ChannelCount),in] float *NewChannelVolumeArray,
71 [in] DWORD ChangedChannel,
72 [in] LPCGUID EventContext
73 );
75 [in] LPCGUID NewGroupingParam,
76 [in] LPCGUID EventContext
77 );
79 [in] AudioSessionState NewState
80 );
82 [in] AudioSessionDisconnectReason DisconnectReason
83 );
84}
85
86[
87 local,
88 uuid(f4b1a599-7266-4319-a8ca-e70acb11e8cd),
90 object
91]
93{
95 [out] AudioSessionState *pRetVal
96 );
98 [string,out] LPWSTR *pRetVal
99 );
101 [string,in] LPCWSTR DisplayName,
102 [unique,in] LPCGUID EventContext
103 );
105 [string,out] LPWSTR *pRetVal
106 );
108 [string,in] LPCWSTR Value,
109 [unique,in] LPCGUID EventContext
110 );
112 [out] GUID *pRetVal
113 );
115 [in] LPCGUID Override,
116 [unique,in] LPCGUID EventContext
117 );
119 [in] IAudioSessionEvents *NewNotifications
120 );
122 [in] IAudioSessionEvents *NewNotifications
123 );
124}
125
126[
127 local,
128 uuid(bfb7ff88-7239-4fc9-8fa2-07c950be9c6d),
130 object
131]
133{
135 [string,out] LPWSTR *pRetVal
136 );
138 [string,out] LPWSTR *pRetVal
139 );
141 [out] DWORD *pRetVal
142 );
145 [in] BOOL optOut
146 );
147};
148
149[
150 local,
151 uuid(bfa971f1-4d5e-40bb-935e-967039bfbee4),
153 object
154]
156{
158 [in] LPCGUID AudioSessionGuid,
160 [out] IAudioSessionControl **SessionControl
161 );
163 [in] LPCGUID AudioSessionGuid,
165 [out] ISimpleAudioVolume **AudioVolume
166 );
167};
168
169[
170 local,
171 uuid(c3b284d4-6d39-4359-b3cf-b56ddb3bb39c),
173 object
174]
176{
178 [in] LPCWSTR sessionID,
179 [in] UINT32 countCommunicationSessions
180 );
182 [in] LPCWSTR sessionID
183 );
184};
185
186[
187 local,
188 uuid(641dd20b-4d41-49cc-aba3-174b9477bb08),
190 object
191]
193{
195 [in] IAudioSessionControl *NewSession
196 );
197};
198
199[
200 local,
201 uuid(e2f5bb11-0570-40ca-acdd-3aa01277dee8),
203 object
204]
206{
209 );
212 [out] IAudioSessionControl **Session
213 );
214};
215
216[
217 local,
218 uuid(77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f),
220 object
221]
223{
225 [retval,out] IAudioSessionEnumerator **SessionEnum
226 );
228 [in] IAudioSessionNotification *SessionNotification
229 );
231 [in] IAudioSessionNotification *SessionNotification
232 );
234 [string,in] LPCWSTR sessionID,
235 [in] IAudioVolumeDuckNotification *duckNotification
236 );
238 [in] IAudioVolumeDuckNotification *duckNotification
239 );
240};
unsigned int UINT32
AudioSessionDisconnectReason
Definition: audiopolicy.idl:38
@ DisconnectReasonServerShutdown
Definition: audiopolicy.idl:40
@ DisconnectReasonSessionDisconnected
Definition: audiopolicy.idl:43
@ DisconnectReasonFormatChanged
Definition: audiopolicy.idl:41
@ DisconnectReasonDeviceRemoval
Definition: audiopolicy.idl:39
@ DisconnectReasonSessionLogoff
Definition: audiopolicy.idl:42
@ DisconnectReasonExclusiveModeOverride
Definition: audiopolicy.idl:44
enum _AudioSessionState AudioSessionState
coclass PSFactoryBuffer pointer_default(unique)] interface ObjectRpcBaseTypes
Definition: dcom.idl:35
static const WCHAR ca[]
Definition: main.c:455
ULONG SessionCount
Definition: session.c:31
IN PIRP IN PFCB IN ULONG IN ULONG IN ULONG IN ULONG StreamFlags
Definition: fatprocs.h:596
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define local
Definition: zutil.h:30
GLfloat f
Definition: glext.h:7540
GLuint in
Definition: glext.h:9616
HRESULT SetDuckingPreferences([in] BOOL optOut)
HRESULT IsSystemSoundsSession(void)
HRESULT GetSessionInstanceIdentifier([string, out] LPWSTR *pRetVal)
HRESULT GetProcessId([out] DWORD *pRetVal)
HRESULT GetSessionIdentifier([string, out] LPWSTR *pRetVal)
HRESULT SetGroupingParam([in] LPCGUID Override, [unique, in] LPCGUID EventContext)
HRESULT GetIconPath([string, out] LPWSTR *pRetVal)
HRESULT GetDisplayName([string, out] LPWSTR *pRetVal)
HRESULT RegisterAudioSessionNotification([in] IAudioSessionEvents *NewNotifications)
HRESULT GetState([out] AudioSessionState *pRetVal)
HRESULT GetGroupingParam([out] GUID *pRetVal)
HRESULT SetIconPath([string, in] LPCWSTR Value, [unique, in] LPCGUID EventContext)
HRESULT UnregisterAudioSessionNotification([in] IAudioSessionEvents *NewNotifications)
HRESULT SetDisplayName([string, in] LPCWSTR DisplayName, [unique, in] LPCGUID EventContext)
HRESULT GetCount([out] INT *SessionCount)
HRESULT GetSession([in] INT SessionCount, [out] IAudioSessionControl **Session)
HRESULT OnStateChanged([in] AudioSessionState NewState)
HRESULT OnDisplayNameChanged([string, in] LPCWSTR NewDisplayName, [in] LPCGUID EventContext)
HRESULT OnChannelVolumeChanged([in] DWORD ChannelCount, [size_is(ChannelCount), in] float *NewChannelVolumeArray, [in] DWORD ChangedChannel, [in] LPCGUID EventContext)
HRESULT OnIconPathChanged([string, in] LPCWSTR NewIconPath, [in] LPCGUID EventContext)
HRESULT OnGroupingParamChanged([in] LPCGUID NewGroupingParam, [in] LPCGUID EventContext)
HRESULT OnSessionDisconnected([in] AudioSessionDisconnectReason DisconnectReason)
HRESULT OnSimpleVolumeChanged([in] float NewVolume, [in] BOOL NewMute, [in] LPCGUID EventContext)
HRESULT RegisterDuckNotification([string, in] LPCWSTR sessionID, [in] IAudioVolumeDuckNotification *duckNotification)
HRESULT RegisterSessionNotification([in] IAudioSessionNotification *SessionNotification)
HRESULT GetSessionEnumerator([retval, out] IAudioSessionEnumerator **SessionEnum)
HRESULT UnregisterDuckNotification([in] IAudioVolumeDuckNotification *duckNotification)
HRESULT UnregisterSessionNotification([in] IAudioSessionNotification *SessionNotification)
HRESULT GetAudioSessionControl([in] LPCGUID AudioSessionGuid, [in] DWORD StreamFlags, [out] IAudioSessionControl **SessionControl)
HRESULT GetSimpleAudioVolume([in] LPCGUID AudioSessionGuid, [in] DWORD StreamFlags, [out] ISimpleAudioVolume **AudioVolume)
HRESULT OnSessionCreated([in] IAudioSessionControl *NewSession)
HRESULT OnVolumeUnduckNotification([in] LPCWSTR sessionID)
HRESULT OnVolumeDuckNotification([in] LPCWSTR sessionID, [in] UINT32 countCommunicationSessions)
Definition: msctf.idl:550
uint32_t cc
Definition: isohybrid.c:75
#define e
Definition: ke_i.h:82
static CRYPT_DATA_BLOB b3[]
Definition: msg.c:592
static FILE * out
Definition: regtests2xml.c:44
int32_t INT
Definition: typedefs.h:58
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185