source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/audiopolicy.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: 5.7 KB
Line 
1/**
2 * Core Audio audio policy definitions
3 *
4 * (c) 2013 Extended by mingw-w64 team
5 * base on version Copyright 2009 Maarten Lankhorst
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 *
21 */
22
23cpp_quote("#include <winapifamily.h>")
24cpp_quote("")
25
26import "oaidl.idl";
27import "ocidl.idl";
28import "propidl.idl";
29import "audiosessiontypes.h";
30import "audioclient.idl";
31
32cpp_quote("")
33cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
34typedef enum AudioSessionDisconnectReason {
35 DisconnectReasonDeviceRemoval,
36 DisconnectReasonServerShutdown,
37 DisconnectReasonFormatChanged,
38 DisconnectReasonSessionLogoff,
39 DisconnectReasonSessionDisconnected,
40 DisconnectReasonExclusiveModeOverride
41} AudioSessionDisconnectReason;
42
43cpp_quote("")
44[object, local, pointer_default (unique), uuid (24918acc-64b3-37c1-8ca9-74a66e9957a8)]
45interface IAudioSessionEvents : IUnknown {
46 HRESULT OnDisplayNameChanged ([in, string]LPCWSTR NewDisplayName,[in] LPCGUID EventContext);
47 HRESULT OnIconPathChanged ([in, string]LPCWSTR NewIconPath,[in] LPCGUID EventContext);
48 HRESULT OnSimpleVolumeChanged ([in] float NewVolume,[in] BOOL NewMute,[in] LPCGUID EventContext);
49 HRESULT OnChannelVolumeChanged ([in] DWORD ChannelCount,[in, size_is (ChannelCount)]float NewChannelVolumeArray[*],[in]DWORD ChangedChannel,[in] LPCGUID EventContext);
50 HRESULT OnGroupingParamChanged ([in] LPCGUID NewGroupingParam,[in] LPCGUID EventContext);
51 HRESULT OnStateChanged ([in] AudioSessionState NewState);
52 HRESULT OnSessionDisconnected ([in] AudioSessionDisconnectReason DisconnectReason);
53};
54
55cpp_quote("")
56[object, local, uuid (F4B1A599-7266-4319-A8CA-E70ACB11E8CD), helpstring ("AudioSession Control Interface"), pointer_default (unique)]
57interface IAudioSessionControl : IUnknown {
58 HRESULT GetState ([out] AudioSessionState *pRetVal);
59 HRESULT GetDisplayName ([out, string] LPWSTR *pRetVal);
60 HRESULT SetDisplayName ([in, string] LPCWSTR Value,[in, unique] LPCGUID EventContext);
61 HRESULT GetIconPath ([out, string] LPWSTR *pRetVal);
62 HRESULT SetIconPath ([in, string] LPCWSTR Value,[in, unique] LPCGUID EventContext);
63 HRESULT GetGroupingParam ([out] GUID *pRetVal);
64 HRESULT SetGroupingParam ([in] LPCGUID Override,[in, unique] LPCGUID EventContext);
65 HRESULT RegisterAudioSessionNotification ([in]IAudioSessionEvents *NewNotifications);
66 HRESULT UnregisterAudioSessionNotification ([in]IAudioSessionEvents *NewNotifications);
67}
68cpp_quote("#endif")
69cpp_quote("")
70cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
71[object, local, uuid (bfb7ff88-7239-4fc9-8fa2-07c950be9c6d), helpstring ("AudioSession Control Extended Interface"), pointer_default (unique)]
72interface IAudioSessionControl2 : IAudioSessionControl {
73 HRESULT GetSessionIdentifier ([out, string] LPWSTR *pRetVal);
74 HRESULT GetSessionInstanceIdentifier ([out, string] LPWSTR *pRetVal);
75 HRESULT GetProcessId ([out] DWORD *pRetVal);
76 HRESULT IsSystemSoundsSession ();
77 HRESULT SetDuckingPreference ([in] BOOL optOut);
78}
79
80cpp_quote("")
81[object, local, uuid (BFA971F1-4d5e-40bb-935e-967039bfbee4), helpstring ("Audio Session Manager Interface"), pointer_default (unique)]
82interface IAudioSessionManager : IUnknown {
83 HRESULT GetAudioSessionControl ([in]LPCGUID AudioSessionGuid,[in] DWORD StreamFlags,[out] IAudioSessionControl **SessionControl);
84 HRESULT GetSimpleAudioVolume ([in]LPCGUID AudioSessionGuid,[in] DWORD StreamFlags,[out] ISimpleAudioVolume **AudioVolume);
85}
86
87cpp_quote("")
88[object, local, uuid (C3B284D4-6d39-4359-B3CF-B56DDB3BB39C), helpstring ("Audio Session Notification Interface"), pointer_default (unique)]
89interface IAudioVolumeDuckNotification : IUnknown {
90 HRESULT OnVolumeDuckNotification ([in] LPCWSTR sessionID,[in] UINT32 countCommunicationSessions);
91 HRESULT OnVolumeUnduckNotification ([in] LPCWSTR sessionID);
92}
93
94cpp_quote("")
95[object, local, uuid (641dd20b-4d41-49cc-ABA3-174b9477bb08), helpstring ("Audio Session Notification Interface"), pointer_default (unique)]
96interface IAudioSessionNotification : IUnknown {
97 HRESULT OnSessionCreated ([in] IAudioSessionControl *NewSession);
98}
99
100cpp_quote("")
101[object, local, uuid (E2F5BB11-0570-40ca-ACDD-3aa01277dee8), helpstring ("Audio Session Enumerator Interface"), pointer_default (unique)]
102interface IAudioSessionEnumerator : IUnknown {
103 HRESULT GetCount ([out] int *SessionCount);
104 HRESULT GetSession ([in] int SessionCount,[out] IAudioSessionControl **Session);
105}
106
107cpp_quote("")
108[object, local, uuid (77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f), helpstring ("Audio Session Manager Extended Interface"), pointer_default (unique)]
109interface IAudioSessionManager2 : IAudioSessionManager {
110 HRESULT GetSessionEnumerator ([out, retval]IAudioSessionEnumerator **SessionEnum);
111 HRESULT RegisterSessionNotification (IAudioSessionNotification *SessionNotification);
112 HRESULT UnregisterSessionNotification (IAudioSessionNotification *SessionNotification);
113 HRESULT RegisterDuckNotification ([in, string] LPCWSTR sessionID,[in]IAudioVolumeDuckNotification *duckNotification);
114 HRESULT UnregisterDuckNotification ([in]IAudioVolumeDuckNotification *duckNotification);
115}
116cpp_quote("#endif")
Note: See TracBrowser for help on using the repository browser.