diff options
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl new file mode 100644 index 00000000..00b55daa --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/audiopolicy.idl @@ -0,0 +1,249 @@ +/* + * Core Audio audio policy definitions + * + * Copyright 2009 Maarten Lankhorst + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +import "oaidl.idl"; +import "ocidl.idl"; +import "propidl.idl"; +import "audiosessiontypes.h"; +import "audioclient.idl"; + +interface IAudioSessionEvents; +interface IAudioSessionControl; +interface IAudioSessionControl2; +interface IAudioSessionManager; +interface IAudioVolumeDuckNotification; +interface IAudioSessionNotification; +interface IAudioSessionEnumerator; +interface IAudioSessionManager2; + +typedef enum AudioSessionDisconnectReason /*[local]*/ +{ + DisconnectReasonDeviceRemoval = 0, + DisconnectReasonServerShutdown, + DisconnectReasonFormatChanged, + DisconnectReasonSessionLogoff, + DisconnectReasonSessionDisconnected, + DisconnectReasonExclusiveModeOverride, +} AudioSessionDisconnectReason; + +[ + local, + uuid(24918acc-64b3-37c1-8ca9-74a66e9957a8), + pointer_default(unique), + object +] +interface IAudioSessionEvents : IUnknown +{ + HRESULT OnDisplayNameChanged( + [string,in] LPCWSTR NewDisplayName, + [in] LPCGUID EventContext + ); + HRESULT OnIconPathChanged( + [string,in] LPCWSTR NewIconPath, + [in] LPCGUID EventContext + ); + HRESULT OnSimpleVolumeChanged( + [in] float NewVolume, + [in] BOOL NewMute, + [in] LPCGUID EventContext + ); + HRESULT OnChannelVolumeChanged( + [in] DWORD ChannelCount, + [size_is(ChannelCount),in] float *NewChannelVolumeArray, + [in] DWORD ChangedChannel, + [in] LPCGUID EventContext + ); + HRESULT OnGroupingParamChanged( + [in] LPCGUID NewGroupingParam, + [in] LPCGUID EventContext + ); + HRESULT OnStateChanged( + [in] AudioSessionState NewState + ); + HRESULT OnSessionDisconnected( + [in] AudioSessionDisconnectReason DisconnectReason + ); +} + +[ + local, + uuid(f4b1a599-7266-4319-a8ca-e70acb11e8cd), + pointer_default(unique), + object +] +interface IAudioSessionControl : IUnknown +{ + HRESULT GetState( + [out] AudioSessionState *pRetVal + ); + HRESULT GetDisplayName( + [string,out] LPWSTR *pRetVal + ); + HRESULT SetDisplayName( + [string,in] LPCWSTR DisplayName, + [unique,in] LPCGUID EventContext + ); + HRESULT GetIconPath( + [string,out] LPWSTR *pRetVal + ); + HRESULT SetIconPath( + [string,in] LPCWSTR Value, + [unique,in] LPCGUID EventContext + ); + HRESULT GetGroupingParam( + [out] GUID *pRetVal + ); + HRESULT SetGroupingParam( + [in] LPCGUID Override, + [unique,in] LPCGUID EventContext + ); + HRESULT RegisterAudioSessionNotification( + [in] IAudioSessionEvents *NewNotifications + ); + HRESULT UnregisterAudioSessionNotification( + [in] IAudioSessionEvents *NewNotifications + ); +} + +[ + local, + uuid(bfb7ff88-7239-4fc9-8fa2-07c950be9c6d), + pointer_default(unique), + object +] +interface IAudioSessionControl2 : IAudioSessionControl +{ + HRESULT GetSessionIdentifier( + [string,out] LPWSTR *pRetVal + ); + HRESULT GetSessionInstanceIdentifier( + [string,out] LPWSTR *pRetVal + ); + HRESULT GetProcessId( + [out] DWORD *pRetVal + ); + HRESULT IsSystemSoundsSession(void); + HRESULT SetDuckingPreferences( + [in] BOOL optOut + ); +}; + +[ + local, + uuid(bfa971f1-4d5e-40bb-935e-967039bfbee4), + pointer_default(unique), + object +] +interface IAudioSessionManager : IUnknown +{ + HRESULT GetAudioSessionControl( + [in] LPCGUID AudioSessionGuid, + [in] DWORD StreamFlags, + [out] IAudioSessionControl **SessionControl + ); + HRESULT GetSimpleAudioVolume( + [in] LPCGUID AudioSessionGuid, + [in] DWORD StreamFlags, + [out] ISimpleAudioVolume **AudioVolume + ); +}; + +[ + local, + uuid(c3b284d4-6d39-4359-b3cf-b56ddb3bb39c), + pointer_default(unique), + object +] +interface IAudioVolumeDuckNotification : IUnknown +{ + HRESULT OnVolumeDuckNotification( + [in] LPCWSTR sessionID, + [in] UINT32 countCommunicationSessions + ); + HRESULT OnVolumeUnduckNotification( + [in] LPCWSTR sessionID + ); +}; + +[ + local, + uuid(641dd20b-4d41-49cc-aba3-174b9477bb08), + pointer_default(unique), + object +] +interface IAudioSessionNotification : IUnknown +{ + HRESULT OnSessionCreated( + [in] IAudioSessionControl *NewSession + ); +}; + +[ + local, + uuid(e2f5bb11-0570-40ca-acdd-3aa01277dee8), + pointer_default(unique), + object +] +interface IAudioSessionEnumerator : IUnknown +{ + HRESULT GetCount( + [out] INT *SessionCount + ); + HRESULT GetSession( + [in] INT SessionCount, + [out] IAudioSessionControl **Session + ); +}; + +[ + local, + uuid(77aa99a0-1bd6-484f-8bc7-2c654c9a9b6f), + pointer_default(unique), + object +] +interface IAudioSessionManager2 : IAudioSessionManager +{ + HRESULT GetSessionEnumerator( + [retval,out] IAudioSessionEnumerator **SessionEnum + ); + HRESULT RegisterSessionNotification( + [in] IAudioSessionNotification *SessionNotification + ); + HRESULT UnregisterSessionNotification( + [in] IAudioSessionNotification *SessionNotification + ); + HRESULT RegisterDuckNotification( + [string,in] LPCWSTR sessionID, + [in] IAudioVolumeDuckNotification *duckNotification + ); + HRESULT UnregisterDuckNotification( + [in] IAudioVolumeDuckNotification *duckNotification + ); +}; |