[PATCH 2/6] includes: Add audiopolicy idl
Maarten Lankhorst (none)
mlankhorst at patser.
Tue Nov 10 02:27:43 CST 2009
---
.gitignore | 1 +
include/Makefile.in | 1 +
include/audiopolicy.idl | 250 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 252 insertions(+), 0 deletions(-)
create mode 100644 include/audiopolicy.idl
diff --git a/.gitignore b/.gitignore
index 49b4021..e1cef95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,6 +127,7 @@ include/activscp.h
include/amstream.h
include/amvideo.h
include/audioclient.h
+include/audiopolicy.h
include/austream.h
include/bits.h
include/bits1_5.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 169f13a..b812b16 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -16,6 +16,7 @@ PUBLIC_IDL_H_SRCS = \
amvideo.idl \
austream.idl \
audioclient.idl \
+ audiopolicy.idl \
bits.idl \
bits1_5.idl \
comcat.idl \
diff --git a/include/audiopolicy.idl b/include/audiopolicy.idl
new file mode 100644
index 0000000..0b58ea9
--- /dev/null
+++ b/include/audiopolicy.idl
@@ -0,0 +1,250 @@
+/*
+ * 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
+ *
+ */
+
+cpp_quote("#ifndef __audiopolicy_h__")
+cpp_quote("#define __audiopolicy_h__")
+
+cpp_quote("#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)")
+cpp_quote("#include <windows.h>")
+cpp_quote("#include <ole2.h>")
+cpp_quote("#endif")
+
+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] GUID *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 OnVolumeUndockNotification(
+ [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
+ );
+};
+
+cpp_quote("#endif /*__audiopolicy_h__*/")
--
1.6.5.2
--------------010900010501010606070806--
More information about the wine-patches
mailing list