From e0df21fe86ee6b0f396e9c9266923dbde7e940b9 Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov <lyubomir.marinov@jitsi.org> Date: Thu, 6 Dec 2012 08:01:17 +0000 Subject: [PATCH] Fixes a REGDB_E_CLASSNOTREG in jnwincoreaudio. Reported by Vincent Lucas. --- src/native/build.xml | 15 +- src/native/windows/coreaudio/lib/device.c | 13 +- .../coreaudio/lib/include/endpointvolume.h | 908 ------------------ .../coreaudio/lib/include/winapifamily.h | 88 -- 4 files changed, 15 insertions(+), 1009 deletions(-) delete mode 100644 src/native/windows/coreaudio/lib/include/endpointvolume.h delete mode 100644 src/native/windows/coreaudio/lib/include/winapifamily.h diff --git a/src/native/build.xml b/src/native/build.xml index 71c80450..06faec16 100644 --- a/src/native/build.xml +++ b/src/native/build.xml @@ -675,15 +675,22 @@ description="Build jnwincoreaudio shared library for Windows Vista, 7 and 8" if="is.running.windows" depends="init-native"> - <cc outtype="shared" name="g++" - outfile="${native_install_dir}/jnwincoreaudio" objdir="${obj}"> + <cc name="gcc" + objdir="${obj}" + outfile="${native_install_dir}/jnwincoreaudio" + outtype="shared"> - <compilerarg value="-Wall" /> - <compilerarg value="-O2" /> + <compilerarg value="-D_JNI_IMPLEMENTATION_" /> + <compilerarg value="-D_WIN32_WINNT=0x0600" /> + <compilerarg value="-DWINVER=0x0600" /> <compilerarg value="-I${system.JAVA_HOME}/include" /> <compilerarg value="-I${system.JAVA_HOME}/include/win32" /> + <compilerarg value="-O2" /> + <compilerarg value="-Wall" /> + <compilerarg value="-xc++" /> <linkerarg value="-ojnwincoreaudio.dll" /> + <linkerarg value="-Wl,--kill-at" /> <libset libs="ole32" /> <fileset dir="${src}/native/windows/coreaudio/lib" includes="*.c" /> diff --git a/src/native/windows/coreaudio/lib/device.c b/src/native/windows/coreaudio/lib/device.c index b6bac3f7..87bd4409 100644 --- a/src/native/windows/coreaudio/lib/device.c +++ b/src/native/windows/coreaudio/lib/device.c @@ -14,7 +14,7 @@ #include <propkeydef.h> // Must be defined after windows.h #include <commctrl.h> // Must be defined after mmdeviceapi.h -#include "include/endpointvolume.h" // Must be defined after mmdeviceapi.h +#include <endpointvolume.h> // Must be defined after mmdeviceapi.h /** * Functions to list, access and modifies audio devices via coreaudio. @@ -40,9 +40,6 @@ float getDeviceVolume( DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14); // DEVPROP_TYPE_STRING -const IID IID_IAudioEndpointVolume = -{0x5CDF2C82, 0x841E, 0x4546, {0x97, 0x22, 0x0C, 0xF7, 0x40, 0x78, 0x22, 0x9A}}; - /** * Initializes the COM component. This function must be called first in order to * able each following function to work correctly. Once finished, the caller of @@ -92,16 +89,14 @@ IMMDevice * getDevice( const char * deviceUID) { // Gets the enumerator of the system devices. - int err; + HRESULT err; IMMDeviceEnumerator * enumerator = NULL; - const CLSID clsid = __uuidof(MMDeviceEnumerator); - const IID iid = __uuidof(IMMDeviceEnumerator); if((err = CoCreateInstance( - clsid, + CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, - iid, + IID_IMMDeviceEnumerator, (void**) &enumerator)) != S_OK) { diff --git a/src/native/windows/coreaudio/lib/include/endpointvolume.h b/src/native/windows/coreaudio/lib/include/endpointvolume.h deleted file mode 100644 index b423b5a4..00000000 --- a/src/native/windows/coreaudio/lib/include/endpointvolume.h +++ /dev/null @@ -1,908 +0,0 @@ - /* File created by MIDL compiler version 8.00.0595 */ -/* @@MIDL_FILE_HEADING( ) */ - -//#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the <rpcndr.h> version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -/* verify that the <rpcsal.h> version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCSAL_H_VERSION__ -#define __REQUIRED_RPCSAL_H_VERSION__ 100 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of <rpcndr.h> -#endif // __RPCNDR_H_VERSION__ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __endpointvolume_h__ -#define __endpointvolume_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__ -#define __IAudioEndpointVolumeCallback_FWD_DEFINED__ -typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback; - -#endif /* __IAudioEndpointVolumeCallback_FWD_DEFINED__ */ - - -#ifndef __IAudioEndpointVolume_FWD_DEFINED__ -#define __IAudioEndpointVolume_FWD_DEFINED__ -typedef interface IAudioEndpointVolume IAudioEndpointVolume; - -#endif /* __IAudioEndpointVolume_FWD_DEFINED__ */ - - -#ifndef __IAudioEndpointVolumeEx_FWD_DEFINED__ -#define __IAudioEndpointVolumeEx_FWD_DEFINED__ -typedef interface IAudioEndpointVolumeEx IAudioEndpointVolumeEx; - -#endif /* __IAudioEndpointVolumeEx_FWD_DEFINED__ */ - - -#ifndef __IAudioMeterInformation_FWD_DEFINED__ -#define __IAudioMeterInformation_FWD_DEFINED__ -typedef interface IAudioMeterInformation IAudioMeterInformation; - -#endif /* __IAudioMeterInformation_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" -#include "devicetopology.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_endpointvolume_0000_0000 */ -/* [local] */ - -#include "winapifamily.h" -//#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -typedef struct AUDIO_VOLUME_NOTIFICATION_DATA - { - GUID guidEventContext; - BOOL bMuted; - float fMasterVolume; - UINT nChannels; - float afChannelVolumes[ 1 ]; - } AUDIO_VOLUME_NOTIFICATION_DATA; - -typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA; - -#define ENDPOINT_HARDWARE_SUPPORT_VOLUME 0x00000001 -#define ENDPOINT_HARDWARE_SUPPORT_MUTE 0x00000002 -#define ENDPOINT_HARDWARE_SUPPORT_METER 0x00000004 - - -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_s_ifspec; - -#ifndef __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ -#define __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ - -/* interface IAudioEndpointVolumeCallback */ -/* [unique][helpstring][nonextensible][uuid][local][object] */ - - -EXTERN_C const IID IID_IAudioEndpointVolumeCallback; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("657804FA-D6AD-4496-8A60-352752AF4F89") - IAudioEndpointVolumeCallback : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE OnNotify( - PAUDIO_VOLUME_NOTIFICATION_DATA pNotify) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAudioEndpointVolumeCallbackVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAudioEndpointVolumeCallback * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAudioEndpointVolumeCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAudioEndpointVolumeCallback * This); - - HRESULT ( STDMETHODCALLTYPE *OnNotify )( - IAudioEndpointVolumeCallback * This, - PAUDIO_VOLUME_NOTIFICATION_DATA pNotify); - - END_INTERFACE - } IAudioEndpointVolumeCallbackVtbl; - - interface IAudioEndpointVolumeCallback - { - CONST_VTBL struct IAudioEndpointVolumeCallbackVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAudioEndpointVolumeCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAudioEndpointVolumeCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAudioEndpointVolumeCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAudioEndpointVolumeCallback_OnNotify(This,pNotify) \ - ( (This)->lpVtbl -> OnNotify(This,pNotify) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ */ - - -#ifndef __IAudioEndpointVolume_INTERFACE_DEFINED__ -#define __IAudioEndpointVolume_INTERFACE_DEFINED__ - -/* interface IAudioEndpointVolume */ -/* [unique][helpstring][nonextensible][uuid][local][object] */ - - -EXTERN_C const IID IID_IAudioEndpointVolume; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5CDF2C82-841E-4546-9722-0CF74078229A") - IAudioEndpointVolume : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterControlChangeNotify( - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterControlChangeNotify( - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelCount( - /* [annotation][out] */ - _Out_ UINT *pnChannelCount) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevel( - /* [annotation][in] */ - _In_ float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevelScalar( - /* [annotation][in] */ - _In_ float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevel( - /* [annotation][out] */ - _Out_ float *pfLevelDB) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevelScalar( - /* [annotation][out] */ - _Out_ float *pfLevel) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevel( - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevelScalar( - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevel( - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevelDB) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevelScalar( - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevel) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMute( - /* [annotation][in] */ - _In_ BOOL bMute, - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMute( - /* [annotation][out] */ - _Out_ BOOL *pbMute) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeStepInfo( - /* [annotation][out] */ - _Out_ UINT *pnStep, - /* [annotation][out] */ - _Out_ UINT *pnStepCount) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepUp( - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepDown( - /* [unique][in] */ LPCGUID pguidEventContext) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport( - /* [annotation][out] */ - _Out_ DWORD *pdwHardwareSupportMask) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeRange( - /* [annotation][out] */ - _Out_ float *pflVolumeMindB, - /* [annotation][out] */ - _Out_ float *pflVolumeMaxdB, - /* [annotation][out] */ - _Out_ float *pflVolumeIncrementdB) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAudioEndpointVolumeVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAudioEndpointVolume * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAudioEndpointVolume * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAudioEndpointVolume * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ UINT *pnChannelCount); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ float *pfLevelDB); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ float *pfLevel); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevelDB); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevel); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMute )( - IAudioEndpointVolume * This, - /* [annotation][in] */ - _In_ BOOL bMute, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMute )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ BOOL *pbMute); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ UINT *pnStep, - /* [annotation][out] */ - _Out_ UINT *pnStepCount); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )( - IAudioEndpointVolume * This, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )( - IAudioEndpointVolume * This, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ DWORD *pdwHardwareSupportMask); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )( - IAudioEndpointVolume * This, - /* [annotation][out] */ - _Out_ float *pflVolumeMindB, - /* [annotation][out] */ - _Out_ float *pflVolumeMaxdB, - /* [annotation][out] */ - _Out_ float *pflVolumeIncrementdB); - - END_INTERFACE - } IAudioEndpointVolumeVtbl; - - interface IAudioEndpointVolume - { - CONST_VTBL struct IAudioEndpointVolumeVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAudioEndpointVolume_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAudioEndpointVolume_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAudioEndpointVolume_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAudioEndpointVolume_RegisterControlChangeNotify(This,pNotify) \ - ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) ) - -#define IAudioEndpointVolume_UnregisterControlChangeNotify(This,pNotify) \ - ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) ) - -#define IAudioEndpointVolume_GetChannelCount(This,pnChannelCount) \ - ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) ) - -#define IAudioEndpointVolume_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) \ - ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) ) - -#define IAudioEndpointVolume_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) \ - ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) ) - -#define IAudioEndpointVolume_GetMasterVolumeLevel(This,pfLevelDB) \ - ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) ) - -#define IAudioEndpointVolume_GetMasterVolumeLevelScalar(This,pfLevel) \ - ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) ) - -#define IAudioEndpointVolume_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) \ - ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) ) - -#define IAudioEndpointVolume_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) \ - ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) ) - -#define IAudioEndpointVolume_GetChannelVolumeLevel(This,nChannel,pfLevelDB) \ - ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) ) - -#define IAudioEndpointVolume_GetChannelVolumeLevelScalar(This,nChannel,pfLevel) \ - ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) ) - -#define IAudioEndpointVolume_SetMute(This,bMute,pguidEventContext) \ - ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) ) - -#define IAudioEndpointVolume_GetMute(This,pbMute) \ - ( (This)->lpVtbl -> GetMute(This,pbMute) ) - -#define IAudioEndpointVolume_GetVolumeStepInfo(This,pnStep,pnStepCount) \ - ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) ) - -#define IAudioEndpointVolume_VolumeStepUp(This,pguidEventContext) \ - ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) ) - -#define IAudioEndpointVolume_VolumeStepDown(This,pguidEventContext) \ - ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) ) - -#define IAudioEndpointVolume_QueryHardwareSupport(This,pdwHardwareSupportMask) \ - ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) - -#define IAudioEndpointVolume_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) \ - ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAudioEndpointVolume_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_endpointvolume_0000_0002 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -//#pragma endregion -//#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0002_v0_0_s_ifspec; - -#ifndef __IAudioEndpointVolumeEx_INTERFACE_DEFINED__ -#define __IAudioEndpointVolumeEx_INTERFACE_DEFINED__ - -/* interface IAudioEndpointVolumeEx */ -/* [unique][helpstring][nonextensible][uuid][local][object] */ - - -EXTERN_C const IID IID_IAudioEndpointVolumeEx; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("66E11784-F695-4F28-A505-A7080081A78F") - IAudioEndpointVolumeEx : public IAudioEndpointVolume - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeRangeChannel( - /* [in] */ UINT iChannel, - /* [annotation][out] */ - _Out_ float *pflVolumeMindB, - /* [annotation][out] */ - _Out_ float *pflVolumeMaxdB, - /* [annotation][out] */ - _Out_ float *pflVolumeIncrementdB) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAudioEndpointVolumeExVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAudioEndpointVolumeEx * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAudioEndpointVolumeEx * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAudioEndpointVolumeEx * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ IAudioEndpointVolumeCallback *pNotify); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ UINT *pnChannelCount); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ float *pfLevelDB); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ float *pfLevel); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevelDB, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ UINT nChannel, - float fLevel, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevelDB); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ UINT nChannel, - /* [annotation][out] */ - _Out_ float *pfLevel); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMute )( - IAudioEndpointVolumeEx * This, - /* [annotation][in] */ - _In_ BOOL bMute, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMute )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ BOOL *pbMute); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ UINT *pnStep, - /* [annotation][out] */ - _Out_ UINT *pnStepCount); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )( - IAudioEndpointVolumeEx * This, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )( - IAudioEndpointVolumeEx * This, - /* [unique][in] */ LPCGUID pguidEventContext); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ DWORD *pdwHardwareSupportMask); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )( - IAudioEndpointVolumeEx * This, - /* [annotation][out] */ - _Out_ float *pflVolumeMindB, - /* [annotation][out] */ - _Out_ float *pflVolumeMaxdB, - /* [annotation][out] */ - _Out_ float *pflVolumeIncrementdB); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRangeChannel )( - IAudioEndpointVolumeEx * This, - /* [in] */ UINT iChannel, - /* [annotation][out] */ - _Out_ float *pflVolumeMindB, - /* [annotation][out] */ - _Out_ float *pflVolumeMaxdB, - /* [annotation][out] */ - _Out_ float *pflVolumeIncrementdB); - - END_INTERFACE - } IAudioEndpointVolumeExVtbl; - - interface IAudioEndpointVolumeEx - { - CONST_VTBL struct IAudioEndpointVolumeExVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAudioEndpointVolumeEx_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAudioEndpointVolumeEx_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAudioEndpointVolumeEx_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAudioEndpointVolumeEx_RegisterControlChangeNotify(This,pNotify) \ - ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) ) - -#define IAudioEndpointVolumeEx_UnregisterControlChangeNotify(This,pNotify) \ - ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) ) - -#define IAudioEndpointVolumeEx_GetChannelCount(This,pnChannelCount) \ - ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) ) - -#define IAudioEndpointVolumeEx_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) \ - ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) \ - ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_GetMasterVolumeLevel(This,pfLevelDB) \ - ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) ) - -#define IAudioEndpointVolumeEx_GetMasterVolumeLevelScalar(This,pfLevel) \ - ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) ) - -#define IAudioEndpointVolumeEx_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) \ - ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) \ - ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_GetChannelVolumeLevel(This,nChannel,pfLevelDB) \ - ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) ) - -#define IAudioEndpointVolumeEx_GetChannelVolumeLevelScalar(This,nChannel,pfLevel) \ - ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) ) - -#define IAudioEndpointVolumeEx_SetMute(This,bMute,pguidEventContext) \ - ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_GetMute(This,pbMute) \ - ( (This)->lpVtbl -> GetMute(This,pbMute) ) - -#define IAudioEndpointVolumeEx_GetVolumeStepInfo(This,pnStep,pnStepCount) \ - ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) ) - -#define IAudioEndpointVolumeEx_VolumeStepUp(This,pguidEventContext) \ - ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_VolumeStepDown(This,pguidEventContext) \ - ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) ) - -#define IAudioEndpointVolumeEx_QueryHardwareSupport(This,pdwHardwareSupportMask) \ - ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) - -#define IAudioEndpointVolumeEx_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) \ - ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) - - -#define IAudioEndpointVolumeEx_GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) \ - ( (This)->lpVtbl -> GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAudioEndpointVolumeEx_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_endpointvolume_0000_0003 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -//#pragma endregion -//#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0003_v0_0_s_ifspec; - -#ifndef __IAudioMeterInformation_INTERFACE_DEFINED__ -#define __IAudioMeterInformation_INTERFACE_DEFINED__ - -/* interface IAudioMeterInformation */ -/* [unique][helpstring][nonextensible][uuid][local][object] */ - - -EXTERN_C const IID IID_IAudioMeterInformation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C02216F6-8C67-4B5B-9D00-D008E73E0064") - IAudioMeterInformation : public IUnknown - { - public: - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPeakValue( - /* [out] */ float *pfPeak) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeteringChannelCount( - /* [annotation][out] */ - _Out_ UINT *pnChannelCount) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelsPeakValues( - /* [in] */ UINT32 u32ChannelCount, - /* [size_is][out] */ float *afPeakValues) = 0; - - virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport( - /* [annotation][out] */ - _Out_ DWORD *pdwHardwareSupportMask) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IAudioMeterInformationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAudioMeterInformation * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAudioMeterInformation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAudioMeterInformation * This); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPeakValue )( - IAudioMeterInformation * This, - /* [out] */ float *pfPeak); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeteringChannelCount )( - IAudioMeterInformation * This, - /* [annotation][out] */ - _Out_ UINT *pnChannelCount); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelsPeakValues )( - IAudioMeterInformation * This, - /* [in] */ UINT32 u32ChannelCount, - /* [size_is][out] */ float *afPeakValues); - - /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )( - IAudioMeterInformation * This, - /* [annotation][out] */ - _Out_ DWORD *pdwHardwareSupportMask); - - END_INTERFACE - } IAudioMeterInformationVtbl; - - interface IAudioMeterInformation - { - CONST_VTBL struct IAudioMeterInformationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAudioMeterInformation_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IAudioMeterInformation_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IAudioMeterInformation_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IAudioMeterInformation_GetPeakValue(This,pfPeak) \ - ( (This)->lpVtbl -> GetPeakValue(This,pfPeak) ) - -#define IAudioMeterInformation_GetMeteringChannelCount(This,pnChannelCount) \ - ( (This)->lpVtbl -> GetMeteringChannelCount(This,pnChannelCount) ) - -#define IAudioMeterInformation_GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) \ - ( (This)->lpVtbl -> GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) ) - -#define IAudioMeterInformation_QueryHardwareSupport(This,pdwHardwareSupportMask) \ - ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IAudioMeterInformation_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_endpointvolume_0000_0004 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -//#pragma endregion - - -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0004_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/src/native/windows/coreaudio/lib/include/winapifamily.h b/src/native/windows/coreaudio/lib/include/winapifamily.h deleted file mode 100644 index bb1f3c18..00000000 --- a/src/native/windows/coreaudio/lib/include/winapifamily.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - -Copyright (c) Microsoft Corporation. All rights reserved. - -Module Name: - - winapifamily.h - -Abstract: - - Master include file for API family partitioning. - -*/ - -#ifndef _INC_WINAPIFAMILY -#define _INC_WINAPIFAMILY - -#if defined(_MSC_VER) && !defined(MOFCOMP_PASS) -#pragma once -#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS) - -/* - * Windows APIs can be placed in a partition represented by one of the below bits. The - * WINAPI_FAMILY value determines which partitions are available to the client code. - */ - -#define WINAPI_PARTITION_DESKTOP 0x00000001 -#define WINAPI_PARTITION_APP 0x00000002 - -/* - * A family may be defined as the union of multiple families. WINAPI_FAMILY should be set - * to one of these values. - */ -#define WINAPI_FAMILY_APP WINAPI_PARTITION_APP -#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP) - -/* - * A constant that specifies which code is available to the program's target runtime platform. - * By default we use the 'desktop app' family which places no restrictions on the API surface. - * To restrict the API surface to just the App API surface, define WINAPI_FAMILY to WINAPI_FAMILY_APP. - */ -#ifndef WINAPI_FAMILY -#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP -#endif - -/* Macro to determine if a partition is enabled */ -#define WINAPI_FAMILY_PARTITION(Partition) ((WINAPI_FAMILY & Partition) == Partition) - -/* Macro to determine if only one partition is enabled from a set */ -#define WINAPI_FAMILY_ONE_PARTITION(PartitionSet, Partition) ((WINAPI_FAMILY & PartitionSet) == Partition) - -/* - * Macro examples: - * The following examples are typical macro usage for enabling/restricting access to header code based - * on the target runtime platform. The examples assume a correct setting of the WINAPI_FAMILY macro. - * - * App programs: - * Explicitly set WINAPI_FAMILY to WINAPI_PARTITION_APP (cannot access DESKTOP partition) - * Desktop programs: - * Leave WINAPI_FAMILY set to the default above (currently WINAPI_FAMILY_DESKTOP_APP) - * - * Note: Other families and partitions may be added in the future. - * - * - * The WINAPI_FAMILY_PARTITION macro: - * Code-block is available to programs that have access to specified partition. - * - * Example: Available to App and Desktop programs - * #if WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_APP ) - * - * Example: Available to Desktop programs - * #if WINAPI_FAMILY_PARTITION( WINAPI_PARTITION_DESKTOP ) - * - * - * The WINAPI_FAMILY_ONE_PARTITION macro: - * Code-block is available to programs that have access to specified parition, but not others in the partition set. - * - * Example: Available only to App programs - * #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY, WINAPI_PARTITION_APP ) - * - * Example: Available only to Desktop programs - * #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY, WINAPI_PARTITION_DESKTOP ) - * - * Example: Available to App, but not Desktop programs - * #if WINAPI_FAMILY_ONE_PARTITION( WINAPI_FAMILY_DESKTOP_APP, WINAPI_PARTITION_APP ) - */ - -#endif /* !_INC_WINAPIFAMILY */ -- GitLab