Maarten Lankhorst : include: Add endpointvolume.idl.

Alexandre Julliard julliard at winehq.org
Wed Dec 16 09:41:38 CST 2009


Module: wine
Branch: master
Commit: cd6d9e8359cc361e996da50d217f9f1f52eb323f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cd6d9e8359cc361e996da50d217f9f1f52eb323f

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Wed Dec 16 10:36:03 2009 +0100

include: Add endpointvolume.idl.

---

 .gitignore                 |    1 +
 include/Makefile.in        |    1 +
 include/endpointvolume.idl |  148 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 150 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index dcf494f..4b1166a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -145,6 +145,7 @@ include/docobj.h
 include/downloadmgr.h
 include/dxgi.h
 include/dxgitype.h
+include/endpointvolume.h
 include/exdisp.h
 include/fusion.h
 include/hlink.h
diff --git a/include/Makefile.in b/include/Makefile.in
index b640428..f957a7b 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -32,6 +32,7 @@ PUBLIC_IDL_H_SRCS = \
 	downloadmgr.idl \
 	dxgi.idl \
 	dxgitype.idl \
+	endpointvolume.idl \
 	exdisp.idl \
 	fusion.idl \
 	hlink.idl \
diff --git a/include/endpointvolume.idl b/include/endpointvolume.idl
new file mode 100644
index 0000000..f58450a
--- /dev/null
+++ b/include/endpointvolume.idl
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 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
+ */
+
+import "unknwn.idl";
+import "devicetopology.idl";
+
+typedef struct AUDIO_VOLUME_NOTIFICATION_DATA
+{
+    GUID guidEventContext;
+    BOOL bMuted;
+    FLOAT fMasterVolume;
+    UINT nChannels;
+    FLOAT afChannelVolumes[1];
+} AUDIO_VOLUME_NOTIFICATION_DATA;
+
+cpp_quote("typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;")
+
+cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_VOLUME 0x1\n")
+cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_MUTE 0x2\n")
+cpp_quote("#define ENDPOINT_HARDWARE_SUPPORT_METER 0x4\n")
+
+interface IAudioEndpointVolumeCallback;
+interface IAudioEndpointVolume;
+interface IAudioEndpointVolumeEx;
+interface IAudioMeterInformation;
+
+[
+    pointer_default(unique),
+    nonextensible,
+    uuid(657804fa-d6ad-4496-8a60-352752af4f89),
+    local,
+    object
+]
+interface IAudioEndpointVolumeCallback : IUnknown
+{
+    HRESULT OnNotify(
+        AUDIO_VOLUME_NOTIFICATION_DATA *pNotify
+    );
+}
+
+[
+    pointer_default(unique),
+    nonextensible,
+    uuid(5cdf2c82-841e-4546-9722-0cf74078229a),
+    local,
+    object
+]
+interface IAudioEndpointVolume : IUnknown
+{
+    HRESULT RegisterControlChangeNotify(
+        [in] IAudioEndpointVolumeCallback *pNotify
+    );
+    HRESULT UnregisterControlChangeNotify(
+        [in] IAudioEndpointVolumeCallback *pNotify
+    );
+    HRESULT GetChannelCount(
+        [out] UINT *pnChannelCount
+    );
+    HRESULT SetMasterVolumeLevel(
+        [in] FLOAT fLevelDB,
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT SetMasterVolumeLevelScalar(
+        [in] FLOAT fLevel,
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT GetMasterVolumeLevel(
+        [out] FLOAT *fLevelDB
+    );
+    HRESULT GetMasterVolumeLevelScalar(
+        [out] FLOAT *fLevel
+    );
+    HRESULT SetChannelVolumeLevel(
+        [in] UINT nChannel,
+        [in] FLOAT fLevelDB,
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT SetChannelVolumeLevelScalar(
+        [in] UINT nChannel,
+        [in] FLOAT fLevel,
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT GetChannelVolumeLevel(
+        [in] UINT nChannel,
+        [out] FLOAT *fLevelDB
+    );
+    HRESULT GetChannelVolumeLevelScalar(
+        [in] UINT nChannel,
+        [out] FLOAT *fLevel
+    );
+    HRESULT SetMute(
+        [in] BOOL bMute,
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT GetMute(
+        [out] BOOL *bMute
+    );
+    HRESULT GetVolumeStepInfo(
+        [out] UINT *pnStep,
+        [out] UINT *pnStepCount
+    );
+    HRESULT VolumeStepUp(
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT VolumeStepDown(
+        [unique,in] LPCGUID pguidEventContext
+    );
+    HRESULT QueryHardwareSupport(
+        [out] DWORD *pdwHardwareSupportMask
+    );
+    HRESULT GetVolumeRange(
+        [out] FLOAT *pflVolumeMindB,
+        [out] FLOAT *pflVolumeMaxdB,
+        [out] FLOAT *pflVolumeIncrementdB
+    );
+}
+
+[
+    pointer_default(unique),
+    nonextensible,
+    uuid(66e11784-f695-4f28-a505-a7080081a78f),
+    local,
+    object
+]
+interface IAudioEndpointVolumeEx : IAudioEndpointVolume
+{
+    HRESULT GetVolumeRangeChannel(
+        [in] UINT iChannel,
+        [out] FLOAT *pflVolumeMindB,
+        [out] FLOAT *pflVolumeMaxdB,
+        [out] FLOAT *pflVolumeIncrementdB
+    );
+}




More information about the wine-cvs mailing list