VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl@ 53201

最後變更 在這個檔案從53201是 53201,由 vboxsync 提交於 10 年 前

Devices/Main: vmsvga updates

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 6.0 KB
 
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;
32interface IAudioVolumeDuckNotification;
33interface IAudioSessionNotification;
34interface IAudioSessionEnumerator;
35interface IAudioSessionManager2;
36
37typedef enum AudioSessionDisconnectReason /*[local]*/
38{
39 DisconnectReasonDeviceRemoval = 0,
40 DisconnectReasonServerShutdown,
41 DisconnectReasonFormatChanged,
42 DisconnectReasonSessionLogoff,
43 DisconnectReasonSessionDisconnected,
44 DisconnectReasonExclusiveModeOverride,
45} AudioSessionDisconnectReason;
46
47[
48 local,
49 uuid(24918acc-64b3-37c1-8ca9-74a66e9957a8),
50 pointer_default(unique),
51 object
52]
53interface IAudioSessionEvents : IUnknown
54{
55 HRESULT OnDisplayNameChanged(
56 [string,in] LPCWSTR NewDisplayName,
57 [in] LPCGUID EventContext
58 );
59 HRESULT OnIconPathChanged(
60 [string,in] LPCWSTR NewIconPath,
61 [in] LPCGUID EventContext
62 );
63 HRESULT OnSimpleVolumeChanged(
64 [in] float NewVolume,
65 [in] BOOL NewMute,
66 [in] LPCGUID EventContext
67 );
68 HRESULT OnChannelVolumeChanged(
69 [in] DWORD ChannelCount,
70 [size_is(ChannelCount),in] float *NewChannelVolumeArray,
71 [in] DWORD ChangedChannel,
72 [in] LPCGUID EventContext
73 );
74 HRESULT OnGroupingParamChanged(
75 [in] LPCGUID NewGroupingParam,
76 [in] LPCGUID EventContext
77 );
78 HRESULT OnStateChanged(
79 [in] AudioSessionState NewState
80 );
81 HRESULT OnSessionDisconnected(
82 [in] AudioSessionDisconnectReason DisconnectReason
83 );
84}
85
86[
87 local,
88 uuid(f4b1a599-7266-4319-a8ca-e70acb11e8cd),
89 pointer_default(unique),
90 object
91]
92interface IAudioSessionControl : IUnknown
93{
94 HRESULT GetState(
95 [out] AudioSessionState *pRetVal
96 );
97 HRESULT GetDisplayName(
98 [string,out] LPWSTR *pRetVal
99 );
100 HRESULT SetDisplayName(
101 [string,in] LPCWSTR DisplayName,
102 [unique,in] LPCGUID EventContext
103 );
104 HRESULT GetIconPath(
105 [string,out] LPWSTR *pRetVal
106 );
107 HRESULT SetIconPath(
108 [string,in] LPCWSTR Value,
109 [unique,in] LPCGUID EventContext
110 );
111 HRESULT GetGroupingParam(
112 [out] GUID *pRetVal
113 );
114 HRESULT SetGroupingParam(
115 [in] LPCGUID Override,
116 [unique,in] LPCGUID EventContext
117 );
118 HRESULT RegisterAudioSessionNotification(
119 [in] IAudioSessionEvents *NewNotifications
120 );
121 HRESULT UnregisterAudioSessionNotification(
122 [in] IAudioSessionEvents *NewNotifications
123 );
124}
125
126[
127 local,
128 uuid(bfb7ff88-7239-4fc9-8fa2-07c950be9c6d),
129 pointer_default(unique),
130 object
131]
132interface IAudioSessionControl2 : IAudioSessionControl
133{
134 HRESULT GetSessionIdentifier(
135 [string,out] LPWSTR *pRetVal
136 );
137 HRESULT GetSessionInstanceIdentifier(
138 [string,out] LPWSTR *pRetVal
139 );
140 HRESULT GetProcessId(
141 [out] DWORD *pRetVal
142 );
143 HRESULT IsSystemSoundsSession(void);
144 HRESULT SetDuckingPreferences(
145 [in] BOOL optOut
146 );
147};
148
149[
150 local,
151 uuid(bfa971f1-4d5e-40bb-935e-967039bfbee4),
152 pointer_default(unique),
153 object
154]
155interface IAudioSessionManager : IUnknown
156{
157 HRESULT GetAudioSessionControl(
158 [in] LPCGUID AudioSessionGuid,
159 [in] DWORD StreamFlags,
160 [out] IAudioSessionControl **SessionControl
161 );
162 HRESULT GetSimpleAudioVolume(
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),
172 pointer_default(unique),
173 object
174]
175interface IAudioVolumeDuckNotification : IUnknown
176{
177 HRESULT OnVolumeDuckNotification(
178 [in] LPCWSTR sessionID,
179 [in] UINT32 countCommunicationSessions
180 );
181 HRESULT OnVolumeUnduckNotification(
182 [in] LPCWSTR sessionID
183 );
184};
185
186[
187 local,
188 uuid(641dd20b-4d41-49cc-aba3-174b9477bb08),
189 pointer_default(unique),
190 object
191]
192interface IAudioSessionNotification : IUnknown
193{
194 HRESULT OnSessionCreated(
195 [in] IAudioSessionControl *NewSession
196 );
197};
198
199[
200 local,
201 uuid(e2f5bb11-0570-40ca-acdd-3aa01277dee8),
202 pointer_default(unique),
203 object
204]
205interface IAudioSessionEnumerator : IUnknown
206{
207 HRESULT GetCount(
208 [out] INT *SessionCount
209 );
210 HRESULT GetSession(
211 [in] INT SessionCount,
212 [out] IAudioSessionControl **Session
213 );
214};
215
216[
217 local,
218 uuid(77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f),
219 pointer_default(unique),
220 object
221]
222interface IAudioSessionManager2 : IAudioSessionManager
223{
224 HRESULT GetSessionEnumerator(
225 [retval,out] IAudioSessionEnumerator **SessionEnum
226 );
227 HRESULT RegisterSessionNotification(
228 [in] IAudioSessionNotification *SessionNotification
229 );
230 HRESULT UnregisterSessionNotification(
231 [in] IAudioSessionNotification *SessionNotification
232 );
233 HRESULT RegisterDuckNotification(
234 [string,in] LPCWSTR sessionID,
235 [in] IAudioVolumeDuckNotification *duckNotification
236 );
237 HRESULT UnregisterDuckNotification(
238 [in] IAudioVolumeDuckNotification *duckNotification
239 );
240};
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette