From da4793738bc086a4162f36d1839b5b9ea70b3592 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <nathbap...@gmail.com> Date: Tue, 15 Dec 2020 12:01:11 +0530 Subject: [PATCH] headers: Add IAudioClient3 and IAudioAmbisonicsControl in AudioClient.idl.
Signed-off-by: Biswapriyo Nath <nathbap...@gmail.com> --- mingw-w64-headers/include/audioclient.idl | 51 ++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/mingw-w64-headers/include/audioclient.idl b/mingw-w64-headers/include/audioclient.idl index f7a0a66..73c2f9d 100644 --- a/mingw-w64-headers/include/audioclient.idl +++ b/mingw-w64-headers/include/audioclient.idl @@ -60,12 +60,26 @@ enum _AUDCLNT_BUFFERFLAGS { AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4 }; -typedef enum AUDCLNT_STREAMOPTIONS { +typedef [v1_enum] enum AUDCLNT_STREAMOPTIONS { AUDCLNT_STREAMOPTIONS_NONE = 0x0, AUDCLNT_STREAMOPTIONS_RAW = 0x1, AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2, AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4 } AUDCLNT_STREAMOPTIONS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);") + +typedef enum AMBISONICS_TYPE { + AMBISONICS_TYPE_FULL3D = 0x0 +} AMBISONICS_TYPE; + +typedef enum AMBISONICS_CHANNEL_ORDERING { + AMBISONICS_CHANNEL_ORDERING_ACN = 0x0 +} AMBISONICS_CHANNEL_ORDERING; + +typedef enum AMBISONICS_NORMALIZATION { + AMBISONICS_NORMALIZATION_SN3D = 0x0, + AMBISONICS_NORMALIZATION_N3D = 0x1 +} AMBISONICS_NORMALIZATION; cpp_quote("") typedef struct AudioClientProperties { @@ -75,6 +89,21 @@ typedef struct AudioClientProperties { AUDCLNT_STREAMOPTIONS Options; } AudioClientProperties; +typedef struct AudioClient3ActivationParams { + GUID tracingContextId; +} AudioClient3ActivationParams; + +typedef struct AMBISONICS_PARAMS { + UINT32 u32Size; + UINT32 u32Version; + AMBISONICS_TYPE u32Type; + AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering; + AMBISONICS_NORMALIZATION u32Normalization; + UINT32 u32Order; + UINT32 u32NumChannels; + UINT32 *pu32ChannelMap; +} AMBISONICS_PARAMS; + cpp_quote("") [object, local, uuid (1cb9ad4c-DBFA-4c32-B178-C2F568A703B2), pointer_default (unique)] interface IAudioClient : IUnknown { @@ -100,6 +129,13 @@ interface IAudioClient2 : IAudioClient { HRESULT GetBufferSizeLimits ([in] const WAVEFORMATEX *pFormat,[in] WINBOOL bEventDriven,[in] REFERENCE_TIME *phnsMinBufferDuration,[in] REFERENCE_TIME *phnsMaxBufferDuration); } +[object, local, uuid (7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42), pointer_default (unique)] +interface IAudioClient3 : IAudioClient2 { + HRESULT GetSharedModeEnginePeriod ([in] const WAVEFORMATEX *pFormat, [out] UINT32 *pDefaultPeriodInFrames, [out] UINT32 *pFundamentalPeriodInFrames, [out] UINT32 *pMinPeriodInFrames, [out] UINT32 *pMaxPeriodInFrames); + HRESULT GetCurrentSharedModeEnginePeriod ([out, unique] WAVEFORMATEX **ppFormat, [out] UINT32 *pCurrentPeriodInFrames); + HRESULT InitializeSharedAudioStream ([in] DWORD StreamFlags, [in] UINT32 PeriodInFrames, [in] const WAVEFORMATEX *pFormat, [in] LPCGUID AudioSessionGuid); +} + cpp_quote("") [object, local, uuid (F294ACFC-3146-4483-A7BF-ADDCA7C260E2), helpstring ("IAudioRenderClient Interface"), pointer_default (unique)] interface IAudioRenderClient : IUnknown { @@ -162,6 +198,14 @@ interface IAudioStreamVolume : IUnknown { HRESULT GetAllVolumes ([in] UINT32 dwCount,[out, size_is (dwCount),] float *pfVolumes); } +[object, local, uuid (28724c91-df35-4856-9f76-d6a26413f3df), pointer_default (unique)] +interface IAudioAmbisonicsControl : IUnknown { + HRESULT SetData([in] const AMBISONICS_PARAMS *pAmbisonicsParams, [in] UINT32 cbAmbisonicsParams); + HRESULT SetHeadTracking([in] WINBOOL bEnableHeadTracking); + HRESULT GetHeadTracking([out] WINBOOL *pbEnableHeadTracking); + HRESULT SetRotation([in] float X, [in] float Y, [in] float Z, [in] float W); +} + cpp_quote("") [object, local, uuid (1c158861-B533-4b30-B1CF-E853E51C59B8), pointer_default (unique)] interface IChannelAudioVolume : IUnknown { @@ -208,6 +252,11 @@ cpp_quote("#define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x23)") cpp_quote("#define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24)") cpp_quote("#define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25)") cpp_quote("#define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26)") +cpp_quote("#define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027)") +cpp_quote("#define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028)") +cpp_quote("#define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029)") +cpp_quote("#define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030)") +cpp_quote("#define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040)") cpp_quote("#define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)") cpp_quote("#define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)") cpp_quote("#define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)") -- 2.29.2
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public