ReactOS  0.4.13-dev-1158-g658d5a3
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 
22 import "oaidl.idl";
23 import "ocidl.idl";
24 import "propidl.idl";
25 import "audiosessiontypes.h";
26 import "audioclient.idl";
27 
28 interface IAudioSessionEvents;
29 interface IAudioSessionControl;
30 interface IAudioSessionControl2;
31 interface IAudioSessionManager;
34 interface IAudioSessionEnumerator;
35 interface IAudioSessionManager2;
36 
37 typedef 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,
159  [in] DWORD StreamFlags,
160  [out] IAudioSessionControl **SessionControl
161  );
163  [in] LPCGUID AudioSessionGuid,
164  [in] DWORD StreamFlags,
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 {
208  [out] INT *SessionCount
209  );
211  [in] INT SessionCount,
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 };
HRESULT SetIconPath([string, in] LPCWSTR Value, [unique, in] LPCGUID EventContext)
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
HRESULT RegisterSessionNotification([in] IAudioSessionNotification *SessionNotification)
HRESULT UnregisterSessionNotification([in] IAudioSessionNotification *SessionNotification)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HRESULT SetGroupingParam([in] LPCGUID Override, [unique, in] LPCGUID EventContext)
HRESULT GetSessionInstanceIdentifier([string, out] LPWSTR *pRetVal)
HRESULT GetSimpleAudioVolume([in] LPCGUID AudioSessionGuid, [in] DWORD StreamFlags, [out] ISimpleAudioVolume **AudioVolume)
HRESULT OnGroupingParamChanged([in] LPCGUID NewGroupingParam, [in] LPCGUID EventContext)
HRESULT OnVolumeUnduckNotification([in] LPCWSTR sessionID)
int32_t INT
Definition: typedefs.h:56
HRESULT OnVolumeDuckNotification([in] LPCWSTR sessionID, [in] UINT32 countCommunicationSessions)
HRESULT UnregisterDuckNotification([in] IAudioVolumeDuckNotification *duckNotification)
HRESULT GetSessionIdentifier([string, out] LPWSTR *pRetVal)
unsigned int UINT32
unsigned int BOOL
Definition: ntddk_ex.h:94
#define e
Definition: ke_i.h:82
HRESULT OnStateChanged([in] AudioSessionState NewState)
AudioSessionDisconnectReason
Definition: audiopolicy.idl:37
HRESULT RegisterAudioSessionNotification([in] IAudioSessionEvents *NewNotifications)
HRESULT GetGroupingParam([out] GUID *pRetVal)
HRESULT GetDisplayName([string, out] LPWSTR *pRetVal)
GLfloat f
Definition: glext.h:7540
HRESULT OnIconPathChanged([string, in] LPCWSTR NewIconPath, [in] LPCGUID EventContext)
LONG HRESULT
Definition: typedefs.h:77
HRESULT GetCount([out] INT *SessionCount)
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT GetAudioSessionControl([in] LPCGUID AudioSessionGuid, [in] DWORD StreamFlags, [out] IAudioSessionControl **SessionControl)
HRESULT GetSessionEnumerator([retval, out] IAudioSessionEnumerator **SessionEnum)
HRESULT GetSession([in] INT SessionCount, [out] IAudioSessionControl **Session)
HRESULT OnSessionCreated([in] IAudioSessionControl *NewSession)
HRESULT OnDisplayNameChanged([string, in] LPCWSTR NewDisplayName, [in] LPCGUID EventContext)
HRESULT OnSimpleVolumeChanged([in] float NewVolume, [in] BOOL NewMute, [in] LPCGUID EventContext)
HRESULT RegisterDuckNotification([string, in] LPCWSTR sessionID, [in] IAudioVolumeDuckNotification *duckNotification)
HRESULT SetDisplayName([string, in] LPCWSTR DisplayName, [unique, in] LPCGUID EventContext)
enum _AudioSessionState AudioSessionState
HRESULT GetIconPath([string, out] LPWSTR *pRetVal)
#define local
Definition: zutil.h:30
uint32_t cc
Definition: isohybrid.c:75
HRESULT GetState([out] AudioSessionState *pRetVal)
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
static CRYPT_DATA_BLOB b3[]
Definition: msg.c:592
HRESULT GetProcessId([out] DWORD *pRetVal)
HRESULT UnregisterAudioSessionNotification([in] IAudioSessionEvents *NewNotifications)
HRESULT SetDuckingPreferences([in] BOOL optOut)
IN PIRP IN PFCB IN ULONG IN ULONG IN ULONG IN ULONG StreamFlags
Definition: fatprocs.h:580
WCHAR * LPWSTR
Definition: xmlstorage.h:184
HRESULT OnSessionDisconnected([in] AudioSessionDisconnectReason DisconnectReason)
static const WCHAR ca[]
Definition: main.c:457
HRESULT OnChannelVolumeChanged([in] DWORD ChannelCount, [size_is(ChannelCount), in] float *NewChannelVolumeArray, [in] DWORD ChangedChannel, [in] LPCGUID EventContext)
HRESULT IsSystemSoundsSession(void)
ULONG SessionCount
Definition: session.c:31
void * object
Definition: jmemsys.h:48