headers: Update to curerent Wine version.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/include/spatialaudioclient.h b/mingw-w64-headers/include/spatialaudioclient.h
index 372dcd9..e47ae9c 100644
--- a/mingw-w64-headers/include/spatialaudioclient.h
+++ b/mingw-w64-headers/include/spatialaudioclient.h
@@ -18,6 +18,14 @@
/* Forward declarations */
+#ifndef __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStreamNotify;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamNotify;
+#endif /* __cplusplus */
+#endif
+
#ifndef __IAudioFormatEnumerator_FWD_DEFINED__
#define __IAudioFormatEnumerator_FWD_DEFINED__
typedef interface IAudioFormatEnumerator IAudioFormatEnumerator;
@@ -34,6 +42,38 @@
#endif /* __cplusplus */
#endif
+#ifndef __ISpatialAudioObjectBase_FWD_DEFINED__
+#define __ISpatialAudioObjectBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectBase ISpatialAudioObjectBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectBase;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObject_FWD_DEFINED__
+#define __ISpatialAudioObject_FWD_DEFINED__
+typedef interface ISpatialAudioObject ISpatialAudioObject;
+#ifdef __cplusplus
+interface ISpatialAudioObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamBase;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObjectRenderStream_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStream_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStream ISpatialAudioObjectRenderStream;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStream;
+#endif /* __cplusplus */
+#endif
+
/* Headers for imported files */
#include <unknwn.h>
@@ -65,6 +105,117 @@
AudioObjectType_BottomBackRight = 0x10000,
AudioObjectType_BackCenter = 0x20000
} AudioObjectType;
+#define SPTLAUDCLNT_E_DESTROYED AUDCLNT_ERR(0x100)
+#define SPTLAUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x101)
+#define SPTLAUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x102)
+#define SPTLAUDCLNT_E_NO_MORE_OBJECTS AUDCLNT_ERR(0x103)
+#define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED AUDCLNT_ERR(0x104)
+#define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS AUDCLNT_ERR(0x105)
+#define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106)
+#define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE AUDCLNT_ERR(0x107)
+#define SPTLAUDCLNT_E_INVALID_LICENSE AUDCLNT_ERR(0x108)
+#define SPTLAUDCLNT_E_STREAM_NOT_STOPPED AUDCLNT_ERR(0x10a)
+#define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE AUDCLNT_ERR(0x10b)
+#define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE AUDCLNT_ERR(0x10c)
+#define SPTLAUDCLNT_E_INTERNAL AUDCLNT_ERR(0x10d)
+#ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamBase;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStreamNotify interface
+ */
+#ifndef __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dddf83e6-68d7-4c70-883f-a1836afb4a50")
+ISpatialAudioObjectRenderStreamNotify : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE OnAvailableDynamicObjectCountChange(
+ ISpatialAudioObjectRenderStreamBase *stream,
+ LONGLONG deadline,
+ UINT32 object_count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamNotifyVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ISpatialAudioObjectRenderStreamNotify *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ISpatialAudioObjectRenderStreamNotify *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ISpatialAudioObjectRenderStreamNotify *This);
+
+ /*** ISpatialAudioObjectRenderStreamNotify methods ***/
+ HRESULT (STDMETHODCALLTYPE *OnAvailableDynamicObjectCountChange)(
+ ISpatialAudioObjectRenderStreamNotify *This,
+ ISpatialAudioObjectRenderStreamBase *stream,
+ LONGLONG deadline,
+ UINT32 object_count);
+
+ END_INTERFACE
+} ISpatialAudioObjectRenderStreamNotifyVtbl;
+
+interface ISpatialAudioObjectRenderStreamNotify {
+ CONST_VTBL ISpatialAudioObjectRenderStreamNotifyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStreamNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStreamNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStreamNotify_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamNotify methods ***/
+#define ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) (This)->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_QueryInterface(ISpatialAudioObjectRenderStreamNotify* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_AddRef(ISpatialAudioObjectRenderStreamNotify* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_Release(ISpatialAudioObjectRenderStreamNotify* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamNotify methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(ISpatialAudioObjectRenderStreamNotify* This,ISpatialAudioObjectRenderStreamBase *stream,LONGLONG deadline,UINT32 object_count) {
+ return This->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ */
+
+typedef struct tagSpatialAudioObjectRenderStreamActivationParams {
+ const WAVEFORMATEX *ObjectFormat;
+ AudioObjectType StaticObjectTypeMask;
+ UINT32 MinDynamicObjectCount;
+ UINT32 MaxDynamicObjectCount;
+ AUDIO_STREAM_CATEGORY Category;
+ HANDLE EventHandle;
+ ISpatialAudioObjectRenderStreamNotify *NotifyObject;
+} SpatialAudioObjectRenderStreamActivationParams;
/*****************************************************************************
* IAudioFormatEnumerator interface
*/
@@ -323,6 +474,525 @@
#endif /* __ISpatialAudioClient_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * ISpatialAudioObjectBase interface
+ */
+#ifndef __ISpatialAudioObjectBase_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectBase_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0")
+ISpatialAudioObjectBase : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+ BYTE **buffer,
+ UINT32 *bytes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEndOfStream(
+ UINT32 frames) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsActive(
+ WINBOOL *active) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAudioObjectType(
+ AudioObjectType *type) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0)
+#endif
+#else
+typedef struct ISpatialAudioObjectBaseVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ISpatialAudioObjectBase *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ISpatialAudioObjectBase *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ISpatialAudioObjectBase *This);
+
+ /*** ISpatialAudioObjectBase methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ ISpatialAudioObjectBase *This,
+ BYTE **buffer,
+ UINT32 *bytes);
+
+ HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
+ ISpatialAudioObjectBase *This,
+ UINT32 frames);
+
+ HRESULT (STDMETHODCALLTYPE *IsActive)(
+ ISpatialAudioObjectBase *This,
+ WINBOOL *active);
+
+ HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
+ ISpatialAudioObjectBase *This,
+ AudioObjectType *type);
+
+ END_INTERFACE
+} ISpatialAudioObjectBaseVtbl;
+
+interface ISpatialAudioObjectBase {
+ CONST_VTBL ISpatialAudioObjectBaseVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectBase_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectBase_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectBase methods ***/
+#define ISpatialAudioObjectBase_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
+#define ISpatialAudioObjectBase_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
+#define ISpatialAudioObjectBase_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
+#define ISpatialAudioObjectBase_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_QueryInterface(ISpatialAudioObjectBase* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectBase_AddRef(ISpatialAudioObjectBase* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectBase_Release(ISpatialAudioObjectBase* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetBuffer(ISpatialAudioObjectBase* This,BYTE **buffer,UINT32 *bytes) {
+ return This->lpVtbl->GetBuffer(This,buffer,bytes);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_SetEndOfStream(ISpatialAudioObjectBase* This,UINT32 frames) {
+ return This->lpVtbl->SetEndOfStream(This,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_IsActive(ISpatialAudioObjectBase* This,WINBOOL *active) {
+ return This->lpVtbl->IsActive(This,active);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetAudioObjectType(ISpatialAudioObjectBase* This,AudioObjectType *type) {
+ return This->lpVtbl->GetAudioObjectType(This,type);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ISpatialAudioObjectBase_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObject interface
+ */
+#ifndef __ISpatialAudioObject_INTERFACE_DEFINED__
+#define __ISpatialAudioObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dde28967-521b-46e5-8f00-bd6f2bc8ab1d")
+ISpatialAudioObject : public ISpatialAudioObjectBase
+{
+ virtual HRESULT STDMETHODCALLTYPE SetPosition(
+ float x,
+ float y,
+ float z) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetVolume(
+ float vol) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d)
+#endif
+#else
+typedef struct ISpatialAudioObjectVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ISpatialAudioObject *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ISpatialAudioObject *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ISpatialAudioObject *This);
+
+ /*** ISpatialAudioObjectBase methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+ ISpatialAudioObject *This,
+ BYTE **buffer,
+ UINT32 *bytes);
+
+ HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
+ ISpatialAudioObject *This,
+ UINT32 frames);
+
+ HRESULT (STDMETHODCALLTYPE *IsActive)(
+ ISpatialAudioObject *This,
+ WINBOOL *active);
+
+ HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
+ ISpatialAudioObject *This,
+ AudioObjectType *type);
+
+ /*** ISpatialAudioObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPosition)(
+ ISpatialAudioObject *This,
+ float x,
+ float y,
+ float z);
+
+ HRESULT (STDMETHODCALLTYPE *SetVolume)(
+ ISpatialAudioObject *This,
+ float vol);
+
+ END_INTERFACE
+} ISpatialAudioObjectVtbl;
+
+interface ISpatialAudioObject {
+ CONST_VTBL ISpatialAudioObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObject_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectBase methods ***/
+#define ISpatialAudioObject_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
+#define ISpatialAudioObject_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
+#define ISpatialAudioObject_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
+#define ISpatialAudioObject_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
+/*** ISpatialAudioObject methods ***/
+#define ISpatialAudioObject_SetPosition(This,x,y,z) (This)->lpVtbl->SetPosition(This,x,y,z)
+#define ISpatialAudioObject_SetVolume(This,vol) (This)->lpVtbl->SetVolume(This,vol)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_QueryInterface(ISpatialAudioObject* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObject_AddRef(ISpatialAudioObject* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObject_Release(ISpatialAudioObject* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_GetBuffer(ISpatialAudioObject* This,BYTE **buffer,UINT32 *bytes) {
+ return This->lpVtbl->GetBuffer(This,buffer,bytes);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_SetEndOfStream(ISpatialAudioObject* This,UINT32 frames) {
+ return This->lpVtbl->SetEndOfStream(This,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_IsActive(ISpatialAudioObject* This,WINBOOL *active) {
+ return This->lpVtbl->IsActive(This,active);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_GetAudioObjectType(ISpatialAudioObject* This,AudioObjectType *type) {
+ return This->lpVtbl->GetAudioObjectType(This,type);
+}
+/*** ISpatialAudioObject methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_SetPosition(ISpatialAudioObject* This,float x,float y,float z) {
+ return This->lpVtbl->SetPosition(This,x,y,z);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_SetVolume(ISpatialAudioObject* This,float vol) {
+ return This->lpVtbl->SetVolume(This,vol);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ISpatialAudioObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStreamBase interface
+ */
+#ifndef __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("feaaf403-c1d8-450d-aa05-e0ccee7502a8")
+ISpatialAudioObjectRenderStreamBase : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE GetAvailableDynamicObjectCount(
+ UINT32 *count) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetService(
+ REFIID riid,
+ void **service) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Start(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Stop(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE BeginUpdatingAudioObjects(
+ UINT32 *count,
+ UINT32 *frames) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EndUpdatingAudioObjects(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamBaseVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ISpatialAudioObjectRenderStreamBase *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ /*** ISpatialAudioObjectRenderStreamBase methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
+ ISpatialAudioObjectRenderStreamBase *This,
+ UINT32 *count);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ ISpatialAudioObjectRenderStreamBase *This,
+ REFIID riid,
+ void **service);
+
+ HRESULT (STDMETHODCALLTYPE *Start)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ HRESULT (STDMETHODCALLTYPE *Stop)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
+ ISpatialAudioObjectRenderStreamBase *This,
+ UINT32 *count,
+ UINT32 *frames);
+
+ HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
+ ISpatialAudioObjectRenderStreamBase *This);
+
+ END_INTERFACE
+} ISpatialAudioObjectRenderStreamBaseVtbl;
+
+interface ISpatialAudioObjectRenderStreamBase {
+ CONST_VTBL ISpatialAudioObjectRenderStreamBaseVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStreamBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStreamBase_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStreamBase_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+#define ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
+#define ISpatialAudioObjectRenderStreamBase_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
+#define ISpatialAudioObjectRenderStreamBase_Start(This) (This)->lpVtbl->Start(This)
+#define ISpatialAudioObjectRenderStreamBase_Stop(This) (This)->lpVtbl->Stop(This)
+#define ISpatialAudioObjectRenderStreamBase_Reset(This) (This)->lpVtbl->Reset(This)
+#define ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
+#define ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_QueryInterface(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_AddRef(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_Release(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count) {
+ return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetService(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **service) {
+ return This->lpVtbl->GetService(This,riid,service);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Start(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Stop(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Reset(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count,UINT32 *frames) {
+ return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This) {
+ return This->lpVtbl->EndUpdatingAudioObjects(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStream interface
+ */
+#ifndef __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bab5f473-b423-477b-85f5-b5a332a04153")
+ISpatialAudioObjectRenderStream : public ISpatialAudioObjectRenderStreamBase
+{
+ virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioObject(
+ AudioObjectType type,
+ ISpatialAudioObject **object) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ ISpatialAudioObjectRenderStream *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ ISpatialAudioObjectRenderStream *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ ISpatialAudioObjectRenderStream *This);
+
+ /*** ISpatialAudioObjectRenderStreamBase methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
+ ISpatialAudioObjectRenderStream *This,
+ UINT32 *count);
+
+ HRESULT (STDMETHODCALLTYPE *GetService)(
+ ISpatialAudioObjectRenderStream *This,
+ REFIID riid,
+ void **service);
+
+ HRESULT (STDMETHODCALLTYPE *Start)(
+ ISpatialAudioObjectRenderStream *This);
+
+ HRESULT (STDMETHODCALLTYPE *Stop)(
+ ISpatialAudioObjectRenderStream *This);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ ISpatialAudioObjectRenderStream *This);
+
+ HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
+ ISpatialAudioObjectRenderStream *This,
+ UINT32 *count,
+ UINT32 *frames);
+
+ HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
+ ISpatialAudioObjectRenderStream *This);
+
+ /*** ISpatialAudioObjectRenderStream methods ***/
+ HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioObject)(
+ ISpatialAudioObjectRenderStream *This,
+ AudioObjectType type,
+ ISpatialAudioObject **object);
+
+ END_INTERFACE
+} ISpatialAudioObjectRenderStreamVtbl;
+
+interface ISpatialAudioObjectRenderStream {
+ CONST_VTBL ISpatialAudioObjectRenderStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStream_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+#define ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
+#define ISpatialAudioObjectRenderStream_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
+#define ISpatialAudioObjectRenderStream_Start(This) (This)->lpVtbl->Start(This)
+#define ISpatialAudioObjectRenderStream_Stop(This) (This)->lpVtbl->Stop(This)
+#define ISpatialAudioObjectRenderStream_Reset(This) (This)->lpVtbl->Reset(This)
+#define ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
+#define ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
+/*** ISpatialAudioObjectRenderStream methods ***/
+#define ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(This,type,object) (This)->lpVtbl->ActivateSpatialAudioObject(This,type,object)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_QueryInterface(ISpatialAudioObjectRenderStream* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_AddRef(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_Release(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStream* This,UINT32 *count) {
+ return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetService(ISpatialAudioObjectRenderStream* This,REFIID riid,void **service) {
+ return This->lpVtbl->GetService(This,riid,service);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Start(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Stop(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Reset(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This,UINT32 *count,UINT32 *frames) {
+ return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This) {
+ return This->lpVtbl->EndUpdatingAudioObjects(This);
+}
+/*** ISpatialAudioObjectRenderStream methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(ISpatialAudioObjectRenderStream* This,AudioObjectType type,ISpatialAudioObject **object) {
+ return This->lpVtbl->ActivateSpatialAudioObject(This,type,object);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif /* __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/include/spatialaudioclient.idl b/mingw-w64-headers/include/spatialaudioclient.idl
index 16a1541..08c8496 100644
--- a/mingw-w64-headers/include/spatialaudioclient.idl
+++ b/mingw-w64-headers/include/spatialaudioclient.idl
@@ -43,6 +43,47 @@
AudioObjectType_BackCenter = 0x00020000,
} AudioObjectType;
+cpp_quote("#define SPTLAUDCLNT_E_DESTROYED AUDCLNT_ERR(0x100)")
+cpp_quote("#define SPTLAUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x101)")
+cpp_quote("#define SPTLAUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x102)")
+cpp_quote("#define SPTLAUDCLNT_E_NO_MORE_OBJECTS AUDCLNT_ERR(0x103)")
+cpp_quote("#define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED AUDCLNT_ERR(0x104)")
+cpp_quote("#define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS AUDCLNT_ERR(0x105)")
+cpp_quote("#define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106)")
+cpp_quote("#define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE AUDCLNT_ERR(0x107)")
+cpp_quote("#define SPTLAUDCLNT_E_INVALID_LICENSE AUDCLNT_ERR(0x108)")
+cpp_quote("#define SPTLAUDCLNT_E_STREAM_NOT_STOPPED AUDCLNT_ERR(0x10a)")
+cpp_quote("#define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE AUDCLNT_ERR(0x10b)")
+cpp_quote("#define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE AUDCLNT_ERR(0x10c)")
+cpp_quote("#define SPTLAUDCLNT_E_INTERNAL AUDCLNT_ERR(0x10d)")
+
+interface ISpatialAudioObjectRenderStreamBase;
+
+[
+ object,
+ uuid(dddf83e6-68d7-4c70-883f-a1836afb4a50),
+ pointer_default(unique),
+ local
+]
+interface ISpatialAudioObjectRenderStreamNotify : IUnknown
+{
+ HRESULT OnAvailableDynamicObjectCountChange(
+ [in] ISpatialAudioObjectRenderStreamBase *stream,
+ [in] LONGLONG deadline,
+ [in] UINT32 object_count);
+}
+
+typedef struct tagSpatialAudioObjectRenderStreamActivationParams
+{
+ const WAVEFORMATEX *ObjectFormat;
+ AudioObjectType StaticObjectTypeMask;
+ UINT32 MinDynamicObjectCount;
+ UINT32 MaxDynamicObjectCount;
+ AUDIO_STREAM_CATEGORY Category;
+ HANDLE EventHandle;
+ ISpatialAudioObjectRenderStreamNotify *NotifyObject;
+} SpatialAudioObjectRenderStreamActivationParams;
+
[
object,
uuid(dcdaa858-895a-4a22-a5eb-67bda506096d),
@@ -98,3 +139,83 @@
[in] REFIID riid,
[out, iid_is(riid)] void **stream);
}
+
+[
+ object,
+ uuid(cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0),
+ pointer_default(unique),
+ local
+]
+interface ISpatialAudioObjectBase : IUnknown
+{
+ HRESULT GetBuffer(
+ [out] BYTE **buffer,
+ [out] UINT32 *bytes);
+
+ HRESULT SetEndOfStream(
+ [in] UINT32 frames);
+
+ HRESULT IsActive(
+ [out] BOOL *active);
+
+ HRESULT GetAudioObjectType(
+ [out] AudioObjectType *type);
+}
+
+[
+ object,
+ uuid(dde28967-521b-46e5-8f00-bd6f2bc8ab1d),
+ pointer_default(unique),
+ local
+]
+interface ISpatialAudioObject : ISpatialAudioObjectBase
+{
+ HRESULT SetPosition(
+ [in] float x,
+ [in] float y,
+ [in] float z);
+
+ HRESULT SetVolume(
+ [in] float vol);
+}
+
+[
+ object,
+ uuid(feaaf403-c1d8-450d-aa05-e0ccee7502a8),
+ pointer_default(unique),
+ local
+]
+interface ISpatialAudioObjectRenderStreamBase : IUnknown
+{
+ HRESULT GetAvailableDynamicObjectCount(
+ [out] UINT32 *count);
+
+ HRESULT GetService(
+ [in] REFIID riid,
+ [out] void **service);
+
+ HRESULT Start();
+
+ HRESULT Stop();
+
+ HRESULT Reset();
+
+ HRESULT BeginUpdatingAudioObjects(
+ [out] UINT32 *count,
+ [out] UINT32 *frames);
+
+ HRESULT EndUpdatingAudioObjects();
+}
+
+[
+ object,
+ uuid(bab5f473-b423-477b-85f5-b5a332a04153),
+ pointer_default(unique),
+ local
+]
+interface ISpatialAudioObjectRenderStream : ISpatialAudioObjectRenderStreamBase
+{
+ HRESULT ActivateSpatialAudioObject(
+ [in] AudioObjectType type,
+ [out] ISpatialAudioObject **object);
+}