spatialaudioclient.h 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. /*** Autogenerated by WIDL 7.7 from include/spatialaudioclient.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __spatialaudioclient_h__
  14. #define __spatialaudioclient_h__
  15. /* Forward declarations */
  16. #ifndef __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
  17. #define __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
  18. typedef interface ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStreamNotify;
  19. #ifdef __cplusplus
  20. interface ISpatialAudioObjectRenderStreamNotify;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IAudioFormatEnumerator_FWD_DEFINED__
  24. #define __IAudioFormatEnumerator_FWD_DEFINED__
  25. typedef interface IAudioFormatEnumerator IAudioFormatEnumerator;
  26. #ifdef __cplusplus
  27. interface IAudioFormatEnumerator;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __ISpatialAudioClient_FWD_DEFINED__
  31. #define __ISpatialAudioClient_FWD_DEFINED__
  32. typedef interface ISpatialAudioClient ISpatialAudioClient;
  33. #ifdef __cplusplus
  34. interface ISpatialAudioClient;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __ISpatialAudioObjectBase_FWD_DEFINED__
  38. #define __ISpatialAudioObjectBase_FWD_DEFINED__
  39. typedef interface ISpatialAudioObjectBase ISpatialAudioObjectBase;
  40. #ifdef __cplusplus
  41. interface ISpatialAudioObjectBase;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __ISpatialAudioObject_FWD_DEFINED__
  45. #define __ISpatialAudioObject_FWD_DEFINED__
  46. typedef interface ISpatialAudioObject ISpatialAudioObject;
  47. #ifdef __cplusplus
  48. interface ISpatialAudioObject;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
  52. #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
  53. typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
  54. #ifdef __cplusplus
  55. interface ISpatialAudioObjectRenderStreamBase;
  56. #endif /* __cplusplus */
  57. #endif
  58. #ifndef __ISpatialAudioObjectRenderStream_FWD_DEFINED__
  59. #define __ISpatialAudioObjectRenderStream_FWD_DEFINED__
  60. typedef interface ISpatialAudioObjectRenderStream ISpatialAudioObjectRenderStream;
  61. #ifdef __cplusplus
  62. interface ISpatialAudioObjectRenderStream;
  63. #endif /* __cplusplus */
  64. #endif
  65. /* Headers for imported files */
  66. #include <unknwn.h>
  67. #include <audioclient.h>
  68. #include <propsys.h>
  69. #ifdef __cplusplus
  70. extern "C" {
  71. #endif
  72. typedef enum AudioObjectType {
  73. AudioObjectType_None = 0,
  74. AudioObjectType_Dynamic = 0x1,
  75. AudioObjectType_FrontLeft = 0x2,
  76. AudioObjectType_FrontRight = 0x4,
  77. AudioObjectType_FrontCenter = 0x8,
  78. AudioObjectType_LowFrequency = 0x10,
  79. AudioObjectType_SideLeft = 0x20,
  80. AudioObjectType_SideRight = 0x40,
  81. AudioObjectType_BackLeft = 0x80,
  82. AudioObjectType_BackRight = 0x100,
  83. AudioObjectType_TopFrontLeft = 0x200,
  84. AudioObjectType_TopFrontRight = 0x400,
  85. AudioObjectType_TopBackLeft = 0x800,
  86. AudioObjectType_TopBackRight = 0x1000,
  87. AudioObjectType_BottomFrontLeft = 0x2000,
  88. AudioObjectType_BottomFrontRight = 0x4000,
  89. AudioObjectType_BottomBackLeft = 0x8000,
  90. AudioObjectType_BottomBackRight = 0x10000,
  91. AudioObjectType_BackCenter = 0x20000
  92. } AudioObjectType;
  93. #define SPTLAUDCLNT_E_DESTROYED AUDCLNT_ERR(0x100)
  94. #define SPTLAUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x101)
  95. #define SPTLAUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x102)
  96. #define SPTLAUDCLNT_E_NO_MORE_OBJECTS AUDCLNT_ERR(0x103)
  97. #define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED AUDCLNT_ERR(0x104)
  98. #define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS AUDCLNT_ERR(0x105)
  99. #define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106)
  100. #define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE AUDCLNT_ERR(0x107)
  101. #define SPTLAUDCLNT_E_INVALID_LICENSE AUDCLNT_ERR(0x108)
  102. #define SPTLAUDCLNT_E_STREAM_NOT_STOPPED AUDCLNT_ERR(0x10a)
  103. #define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE AUDCLNT_ERR(0x10b)
  104. #define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE AUDCLNT_ERR(0x10c)
  105. #define SPTLAUDCLNT_E_INTERNAL AUDCLNT_ERR(0x10d)
  106. #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
  107. #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
  108. typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
  109. #ifdef __cplusplus
  110. interface ISpatialAudioObjectRenderStreamBase;
  111. #endif /* __cplusplus */
  112. #endif
  113. /*****************************************************************************
  114. * ISpatialAudioObjectRenderStreamNotify interface
  115. */
  116. #ifndef __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
  117. #define __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
  118. DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50);
  119. #if defined(__cplusplus) && !defined(CINTERFACE)
  120. MIDL_INTERFACE("dddf83e6-68d7-4c70-883f-a1836afb4a50")
  121. ISpatialAudioObjectRenderStreamNotify : public IUnknown
  122. {
  123. virtual HRESULT STDMETHODCALLTYPE OnAvailableDynamicObjectCountChange(
  124. ISpatialAudioObjectRenderStreamBase *stream,
  125. LONGLONG deadline,
  126. UINT32 object_count) = 0;
  127. };
  128. #ifdef __CRT_UUID_DECL
  129. __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50)
  130. #endif
  131. #else
  132. typedef struct ISpatialAudioObjectRenderStreamNotifyVtbl {
  133. BEGIN_INTERFACE
  134. /*** IUnknown methods ***/
  135. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  136. ISpatialAudioObjectRenderStreamNotify *This,
  137. REFIID riid,
  138. void **ppvObject);
  139. ULONG (STDMETHODCALLTYPE *AddRef)(
  140. ISpatialAudioObjectRenderStreamNotify *This);
  141. ULONG (STDMETHODCALLTYPE *Release)(
  142. ISpatialAudioObjectRenderStreamNotify *This);
  143. /*** ISpatialAudioObjectRenderStreamNotify methods ***/
  144. HRESULT (STDMETHODCALLTYPE *OnAvailableDynamicObjectCountChange)(
  145. ISpatialAudioObjectRenderStreamNotify *This,
  146. ISpatialAudioObjectRenderStreamBase *stream,
  147. LONGLONG deadline,
  148. UINT32 object_count);
  149. END_INTERFACE
  150. } ISpatialAudioObjectRenderStreamNotifyVtbl;
  151. interface ISpatialAudioObjectRenderStreamNotify {
  152. CONST_VTBL ISpatialAudioObjectRenderStreamNotifyVtbl* lpVtbl;
  153. };
  154. #ifdef COBJMACROS
  155. #ifndef WIDL_C_INLINE_WRAPPERS
  156. /*** IUnknown methods ***/
  157. #define ISpatialAudioObjectRenderStreamNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  158. #define ISpatialAudioObjectRenderStreamNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  159. #define ISpatialAudioObjectRenderStreamNotify_Release(This) (This)->lpVtbl->Release(This)
  160. /*** ISpatialAudioObjectRenderStreamNotify methods ***/
  161. #define ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) (This)->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count)
  162. #else
  163. /*** IUnknown methods ***/
  164. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_QueryInterface(ISpatialAudioObjectRenderStreamNotify* This,REFIID riid,void **ppvObject) {
  165. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  166. }
  167. static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_AddRef(ISpatialAudioObjectRenderStreamNotify* This) {
  168. return This->lpVtbl->AddRef(This);
  169. }
  170. static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_Release(ISpatialAudioObjectRenderStreamNotify* This) {
  171. return This->lpVtbl->Release(This);
  172. }
  173. /*** ISpatialAudioObjectRenderStreamNotify methods ***/
  174. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(ISpatialAudioObjectRenderStreamNotify* This,ISpatialAudioObjectRenderStreamBase *stream,LONGLONG deadline,UINT32 object_count) {
  175. return This->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count);
  176. }
  177. #endif
  178. #endif
  179. #endif
  180. #endif /* __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ */
  181. typedef struct tagSpatialAudioObjectRenderStreamActivationParams {
  182. const WAVEFORMATEX *ObjectFormat;
  183. AudioObjectType StaticObjectTypeMask;
  184. UINT32 MinDynamicObjectCount;
  185. UINT32 MaxDynamicObjectCount;
  186. AUDIO_STREAM_CATEGORY Category;
  187. HANDLE EventHandle;
  188. ISpatialAudioObjectRenderStreamNotify *NotifyObject;
  189. } SpatialAudioObjectRenderStreamActivationParams;
  190. /*****************************************************************************
  191. * IAudioFormatEnumerator interface
  192. */
  193. #ifndef __IAudioFormatEnumerator_INTERFACE_DEFINED__
  194. #define __IAudioFormatEnumerator_INTERFACE_DEFINED__
  195. DEFINE_GUID(IID_IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d);
  196. #if defined(__cplusplus) && !defined(CINTERFACE)
  197. MIDL_INTERFACE("dcdaa858-895a-4a22-a5eb-67bda506096d")
  198. IAudioFormatEnumerator : public IUnknown
  199. {
  200. virtual HRESULT STDMETHODCALLTYPE GetCount(
  201. UINT32 *count) = 0;
  202. virtual HRESULT STDMETHODCALLTYPE GetFormat(
  203. UINT32 index,
  204. WAVEFORMATEX **format) = 0;
  205. };
  206. #ifdef __CRT_UUID_DECL
  207. __CRT_UUID_DECL(IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d)
  208. #endif
  209. #else
  210. typedef struct IAudioFormatEnumeratorVtbl {
  211. BEGIN_INTERFACE
  212. /*** IUnknown methods ***/
  213. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  214. IAudioFormatEnumerator *This,
  215. REFIID riid,
  216. void **ppvObject);
  217. ULONG (STDMETHODCALLTYPE *AddRef)(
  218. IAudioFormatEnumerator *This);
  219. ULONG (STDMETHODCALLTYPE *Release)(
  220. IAudioFormatEnumerator *This);
  221. /*** IAudioFormatEnumerator methods ***/
  222. HRESULT (STDMETHODCALLTYPE *GetCount)(
  223. IAudioFormatEnumerator *This,
  224. UINT32 *count);
  225. HRESULT (STDMETHODCALLTYPE *GetFormat)(
  226. IAudioFormatEnumerator *This,
  227. UINT32 index,
  228. WAVEFORMATEX **format);
  229. END_INTERFACE
  230. } IAudioFormatEnumeratorVtbl;
  231. interface IAudioFormatEnumerator {
  232. CONST_VTBL IAudioFormatEnumeratorVtbl* lpVtbl;
  233. };
  234. #ifdef COBJMACROS
  235. #ifndef WIDL_C_INLINE_WRAPPERS
  236. /*** IUnknown methods ***/
  237. #define IAudioFormatEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  238. #define IAudioFormatEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
  239. #define IAudioFormatEnumerator_Release(This) (This)->lpVtbl->Release(This)
  240. /*** IAudioFormatEnumerator methods ***/
  241. #define IAudioFormatEnumerator_GetCount(This,count) (This)->lpVtbl->GetCount(This,count)
  242. #define IAudioFormatEnumerator_GetFormat(This,index,format) (This)->lpVtbl->GetFormat(This,index,format)
  243. #else
  244. /*** IUnknown methods ***/
  245. static FORCEINLINE HRESULT IAudioFormatEnumerator_QueryInterface(IAudioFormatEnumerator* This,REFIID riid,void **ppvObject) {
  246. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  247. }
  248. static FORCEINLINE ULONG IAudioFormatEnumerator_AddRef(IAudioFormatEnumerator* This) {
  249. return This->lpVtbl->AddRef(This);
  250. }
  251. static FORCEINLINE ULONG IAudioFormatEnumerator_Release(IAudioFormatEnumerator* This) {
  252. return This->lpVtbl->Release(This);
  253. }
  254. /*** IAudioFormatEnumerator methods ***/
  255. static FORCEINLINE HRESULT IAudioFormatEnumerator_GetCount(IAudioFormatEnumerator* This,UINT32 *count) {
  256. return This->lpVtbl->GetCount(This,count);
  257. }
  258. static FORCEINLINE HRESULT IAudioFormatEnumerator_GetFormat(IAudioFormatEnumerator* This,UINT32 index,WAVEFORMATEX **format) {
  259. return This->lpVtbl->GetFormat(This,index,format);
  260. }
  261. #endif
  262. #endif
  263. #endif
  264. #endif /* __IAudioFormatEnumerator_INTERFACE_DEFINED__ */
  265. /*****************************************************************************
  266. * ISpatialAudioClient interface
  267. */
  268. #ifndef __ISpatialAudioClient_INTERFACE_DEFINED__
  269. #define __ISpatialAudioClient_INTERFACE_DEFINED__
  270. DEFINE_GUID(IID_ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f);
  271. #if defined(__cplusplus) && !defined(CINTERFACE)
  272. MIDL_INTERFACE("bbf8e066-aaaa-49be-9a4d-fd2a858ea27f")
  273. ISpatialAudioClient : public IUnknown
  274. {
  275. virtual HRESULT STDMETHODCALLTYPE GetStaticObjectPosition(
  276. AudioObjectType type,
  277. float *x,
  278. float *y,
  279. float *z) = 0;
  280. virtual HRESULT STDMETHODCALLTYPE GetNativeStaticObjectTypeMask(
  281. AudioObjectType *mask) = 0;
  282. virtual HRESULT STDMETHODCALLTYPE GetMaxDynamicObjectCount(
  283. UINT32 *value) = 0;
  284. virtual HRESULT STDMETHODCALLTYPE GetSupportedAudioObjectFormatEnumerator(
  285. IAudioFormatEnumerator **enumerator) = 0;
  286. virtual HRESULT STDMETHODCALLTYPE GetMaxFrameCount(
  287. const WAVEFORMATEX *format,
  288. UINT32 *count) = 0;
  289. virtual HRESULT STDMETHODCALLTYPE IsAudioObjectFormatSupported(
  290. const WAVEFORMATEX *format) = 0;
  291. virtual HRESULT STDMETHODCALLTYPE IsSpatialAudioStreamAvailable(
  292. REFIID stream_uuid,
  293. const PROPVARIANT *info) = 0;
  294. virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioStream(
  295. const PROPVARIANT *params,
  296. REFIID riid,
  297. void **stream) = 0;
  298. };
  299. #ifdef __CRT_UUID_DECL
  300. __CRT_UUID_DECL(ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f)
  301. #endif
  302. #else
  303. typedef struct ISpatialAudioClientVtbl {
  304. BEGIN_INTERFACE
  305. /*** IUnknown methods ***/
  306. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  307. ISpatialAudioClient *This,
  308. REFIID riid,
  309. void **ppvObject);
  310. ULONG (STDMETHODCALLTYPE *AddRef)(
  311. ISpatialAudioClient *This);
  312. ULONG (STDMETHODCALLTYPE *Release)(
  313. ISpatialAudioClient *This);
  314. /*** ISpatialAudioClient methods ***/
  315. HRESULT (STDMETHODCALLTYPE *GetStaticObjectPosition)(
  316. ISpatialAudioClient *This,
  317. AudioObjectType type,
  318. float *x,
  319. float *y,
  320. float *z);
  321. HRESULT (STDMETHODCALLTYPE *GetNativeStaticObjectTypeMask)(
  322. ISpatialAudioClient *This,
  323. AudioObjectType *mask);
  324. HRESULT (STDMETHODCALLTYPE *GetMaxDynamicObjectCount)(
  325. ISpatialAudioClient *This,
  326. UINT32 *value);
  327. HRESULT (STDMETHODCALLTYPE *GetSupportedAudioObjectFormatEnumerator)(
  328. ISpatialAudioClient *This,
  329. IAudioFormatEnumerator **enumerator);
  330. HRESULT (STDMETHODCALLTYPE *GetMaxFrameCount)(
  331. ISpatialAudioClient *This,
  332. const WAVEFORMATEX *format,
  333. UINT32 *count);
  334. HRESULT (STDMETHODCALLTYPE *IsAudioObjectFormatSupported)(
  335. ISpatialAudioClient *This,
  336. const WAVEFORMATEX *format);
  337. HRESULT (STDMETHODCALLTYPE *IsSpatialAudioStreamAvailable)(
  338. ISpatialAudioClient *This,
  339. REFIID stream_uuid,
  340. const PROPVARIANT *info);
  341. HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioStream)(
  342. ISpatialAudioClient *This,
  343. const PROPVARIANT *params,
  344. REFIID riid,
  345. void **stream);
  346. END_INTERFACE
  347. } ISpatialAudioClientVtbl;
  348. interface ISpatialAudioClient {
  349. CONST_VTBL ISpatialAudioClientVtbl* lpVtbl;
  350. };
  351. #ifdef COBJMACROS
  352. #ifndef WIDL_C_INLINE_WRAPPERS
  353. /*** IUnknown methods ***/
  354. #define ISpatialAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  355. #define ISpatialAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This)
  356. #define ISpatialAudioClient_Release(This) (This)->lpVtbl->Release(This)
  357. /*** ISpatialAudioClient methods ***/
  358. #define ISpatialAudioClient_GetStaticObjectPosition(This,type,x,y,z) (This)->lpVtbl->GetStaticObjectPosition(This,type,x,y,z)
  359. #define ISpatialAudioClient_GetNativeStaticObjectTypeMask(This,mask) (This)->lpVtbl->GetNativeStaticObjectTypeMask(This,mask)
  360. #define ISpatialAudioClient_GetMaxDynamicObjectCount(This,value) (This)->lpVtbl->GetMaxDynamicObjectCount(This,value)
  361. #define ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(This,enumerator) (This)->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator)
  362. #define ISpatialAudioClient_GetMaxFrameCount(This,format,count) (This)->lpVtbl->GetMaxFrameCount(This,format,count)
  363. #define ISpatialAudioClient_IsAudioObjectFormatSupported(This,format) (This)->lpVtbl->IsAudioObjectFormatSupported(This,format)
  364. #define ISpatialAudioClient_IsSpatialAudioStreamAvailable(This,stream_uuid,info) (This)->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info)
  365. #define ISpatialAudioClient_ActivateSpatialAudioStream(This,params,riid,stream) (This)->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream)
  366. #else
  367. /*** IUnknown methods ***/
  368. static FORCEINLINE HRESULT ISpatialAudioClient_QueryInterface(ISpatialAudioClient* This,REFIID riid,void **ppvObject) {
  369. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  370. }
  371. static FORCEINLINE ULONG ISpatialAudioClient_AddRef(ISpatialAudioClient* This) {
  372. return This->lpVtbl->AddRef(This);
  373. }
  374. static FORCEINLINE ULONG ISpatialAudioClient_Release(ISpatialAudioClient* This) {
  375. return This->lpVtbl->Release(This);
  376. }
  377. /*** ISpatialAudioClient methods ***/
  378. static FORCEINLINE HRESULT ISpatialAudioClient_GetStaticObjectPosition(ISpatialAudioClient* This,AudioObjectType type,float *x,float *y,float *z) {
  379. return This->lpVtbl->GetStaticObjectPosition(This,type,x,y,z);
  380. }
  381. static FORCEINLINE HRESULT ISpatialAudioClient_GetNativeStaticObjectTypeMask(ISpatialAudioClient* This,AudioObjectType *mask) {
  382. return This->lpVtbl->GetNativeStaticObjectTypeMask(This,mask);
  383. }
  384. static FORCEINLINE HRESULT ISpatialAudioClient_GetMaxDynamicObjectCount(ISpatialAudioClient* This,UINT32 *value) {
  385. return This->lpVtbl->GetMaxDynamicObjectCount(This,value);
  386. }
  387. static FORCEINLINE HRESULT ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(ISpatialAudioClient* This,IAudioFormatEnumerator **enumerator) {
  388. return This->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator);
  389. }
  390. static FORCEINLINE HRESULT ISpatialAudioClient_GetMaxFrameCount(ISpatialAudioClient* This,const WAVEFORMATEX *format,UINT32 *count) {
  391. return This->lpVtbl->GetMaxFrameCount(This,format,count);
  392. }
  393. static FORCEINLINE HRESULT ISpatialAudioClient_IsAudioObjectFormatSupported(ISpatialAudioClient* This,const WAVEFORMATEX *format) {
  394. return This->lpVtbl->IsAudioObjectFormatSupported(This,format);
  395. }
  396. static FORCEINLINE HRESULT ISpatialAudioClient_IsSpatialAudioStreamAvailable(ISpatialAudioClient* This,REFIID stream_uuid,const PROPVARIANT *info) {
  397. return This->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info);
  398. }
  399. static FORCEINLINE HRESULT ISpatialAudioClient_ActivateSpatialAudioStream(ISpatialAudioClient* This,const PROPVARIANT *params,REFIID riid,void **stream) {
  400. return This->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream);
  401. }
  402. #endif
  403. #endif
  404. #endif
  405. #endif /* __ISpatialAudioClient_INTERFACE_DEFINED__ */
  406. /*****************************************************************************
  407. * ISpatialAudioObjectBase interface
  408. */
  409. #ifndef __ISpatialAudioObjectBase_INTERFACE_DEFINED__
  410. #define __ISpatialAudioObjectBase_INTERFACE_DEFINED__
  411. DEFINE_GUID(IID_ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0);
  412. #if defined(__cplusplus) && !defined(CINTERFACE)
  413. MIDL_INTERFACE("cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0")
  414. ISpatialAudioObjectBase : public IUnknown
  415. {
  416. virtual HRESULT STDMETHODCALLTYPE GetBuffer(
  417. BYTE **buffer,
  418. UINT32 *bytes) = 0;
  419. virtual HRESULT STDMETHODCALLTYPE SetEndOfStream(
  420. UINT32 frames) = 0;
  421. virtual HRESULT STDMETHODCALLTYPE IsActive(
  422. WINBOOL *active) = 0;
  423. virtual HRESULT STDMETHODCALLTYPE GetAudioObjectType(
  424. AudioObjectType *type) = 0;
  425. };
  426. #ifdef __CRT_UUID_DECL
  427. __CRT_UUID_DECL(ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0)
  428. #endif
  429. #else
  430. typedef struct ISpatialAudioObjectBaseVtbl {
  431. BEGIN_INTERFACE
  432. /*** IUnknown methods ***/
  433. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  434. ISpatialAudioObjectBase *This,
  435. REFIID riid,
  436. void **ppvObject);
  437. ULONG (STDMETHODCALLTYPE *AddRef)(
  438. ISpatialAudioObjectBase *This);
  439. ULONG (STDMETHODCALLTYPE *Release)(
  440. ISpatialAudioObjectBase *This);
  441. /*** ISpatialAudioObjectBase methods ***/
  442. HRESULT (STDMETHODCALLTYPE *GetBuffer)(
  443. ISpatialAudioObjectBase *This,
  444. BYTE **buffer,
  445. UINT32 *bytes);
  446. HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
  447. ISpatialAudioObjectBase *This,
  448. UINT32 frames);
  449. HRESULT (STDMETHODCALLTYPE *IsActive)(
  450. ISpatialAudioObjectBase *This,
  451. WINBOOL *active);
  452. HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
  453. ISpatialAudioObjectBase *This,
  454. AudioObjectType *type);
  455. END_INTERFACE
  456. } ISpatialAudioObjectBaseVtbl;
  457. interface ISpatialAudioObjectBase {
  458. CONST_VTBL ISpatialAudioObjectBaseVtbl* lpVtbl;
  459. };
  460. #ifdef COBJMACROS
  461. #ifndef WIDL_C_INLINE_WRAPPERS
  462. /*** IUnknown methods ***/
  463. #define ISpatialAudioObjectBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  464. #define ISpatialAudioObjectBase_AddRef(This) (This)->lpVtbl->AddRef(This)
  465. #define ISpatialAudioObjectBase_Release(This) (This)->lpVtbl->Release(This)
  466. /*** ISpatialAudioObjectBase methods ***/
  467. #define ISpatialAudioObjectBase_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
  468. #define ISpatialAudioObjectBase_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
  469. #define ISpatialAudioObjectBase_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
  470. #define ISpatialAudioObjectBase_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
  471. #else
  472. /*** IUnknown methods ***/
  473. static FORCEINLINE HRESULT ISpatialAudioObjectBase_QueryInterface(ISpatialAudioObjectBase* This,REFIID riid,void **ppvObject) {
  474. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  475. }
  476. static FORCEINLINE ULONG ISpatialAudioObjectBase_AddRef(ISpatialAudioObjectBase* This) {
  477. return This->lpVtbl->AddRef(This);
  478. }
  479. static FORCEINLINE ULONG ISpatialAudioObjectBase_Release(ISpatialAudioObjectBase* This) {
  480. return This->lpVtbl->Release(This);
  481. }
  482. /*** ISpatialAudioObjectBase methods ***/
  483. static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetBuffer(ISpatialAudioObjectBase* This,BYTE **buffer,UINT32 *bytes) {
  484. return This->lpVtbl->GetBuffer(This,buffer,bytes);
  485. }
  486. static FORCEINLINE HRESULT ISpatialAudioObjectBase_SetEndOfStream(ISpatialAudioObjectBase* This,UINT32 frames) {
  487. return This->lpVtbl->SetEndOfStream(This,frames);
  488. }
  489. static FORCEINLINE HRESULT ISpatialAudioObjectBase_IsActive(ISpatialAudioObjectBase* This,WINBOOL *active) {
  490. return This->lpVtbl->IsActive(This,active);
  491. }
  492. static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetAudioObjectType(ISpatialAudioObjectBase* This,AudioObjectType *type) {
  493. return This->lpVtbl->GetAudioObjectType(This,type);
  494. }
  495. #endif
  496. #endif
  497. #endif
  498. #endif /* __ISpatialAudioObjectBase_INTERFACE_DEFINED__ */
  499. /*****************************************************************************
  500. * ISpatialAudioObject interface
  501. */
  502. #ifndef __ISpatialAudioObject_INTERFACE_DEFINED__
  503. #define __ISpatialAudioObject_INTERFACE_DEFINED__
  504. DEFINE_GUID(IID_ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d);
  505. #if defined(__cplusplus) && !defined(CINTERFACE)
  506. MIDL_INTERFACE("dde28967-521b-46e5-8f00-bd6f2bc8ab1d")
  507. ISpatialAudioObject : public ISpatialAudioObjectBase
  508. {
  509. virtual HRESULT STDMETHODCALLTYPE SetPosition(
  510. float x,
  511. float y,
  512. float z) = 0;
  513. virtual HRESULT STDMETHODCALLTYPE SetVolume(
  514. float vol) = 0;
  515. };
  516. #ifdef __CRT_UUID_DECL
  517. __CRT_UUID_DECL(ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d)
  518. #endif
  519. #else
  520. typedef struct ISpatialAudioObjectVtbl {
  521. BEGIN_INTERFACE
  522. /*** IUnknown methods ***/
  523. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  524. ISpatialAudioObject *This,
  525. REFIID riid,
  526. void **ppvObject);
  527. ULONG (STDMETHODCALLTYPE *AddRef)(
  528. ISpatialAudioObject *This);
  529. ULONG (STDMETHODCALLTYPE *Release)(
  530. ISpatialAudioObject *This);
  531. /*** ISpatialAudioObjectBase methods ***/
  532. HRESULT (STDMETHODCALLTYPE *GetBuffer)(
  533. ISpatialAudioObject *This,
  534. BYTE **buffer,
  535. UINT32 *bytes);
  536. HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
  537. ISpatialAudioObject *This,
  538. UINT32 frames);
  539. HRESULT (STDMETHODCALLTYPE *IsActive)(
  540. ISpatialAudioObject *This,
  541. WINBOOL *active);
  542. HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
  543. ISpatialAudioObject *This,
  544. AudioObjectType *type);
  545. /*** ISpatialAudioObject methods ***/
  546. HRESULT (STDMETHODCALLTYPE *SetPosition)(
  547. ISpatialAudioObject *This,
  548. float x,
  549. float y,
  550. float z);
  551. HRESULT (STDMETHODCALLTYPE *SetVolume)(
  552. ISpatialAudioObject *This,
  553. float vol);
  554. END_INTERFACE
  555. } ISpatialAudioObjectVtbl;
  556. interface ISpatialAudioObject {
  557. CONST_VTBL ISpatialAudioObjectVtbl* lpVtbl;
  558. };
  559. #ifdef COBJMACROS
  560. #ifndef WIDL_C_INLINE_WRAPPERS
  561. /*** IUnknown methods ***/
  562. #define ISpatialAudioObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  563. #define ISpatialAudioObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  564. #define ISpatialAudioObject_Release(This) (This)->lpVtbl->Release(This)
  565. /*** ISpatialAudioObjectBase methods ***/
  566. #define ISpatialAudioObject_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
  567. #define ISpatialAudioObject_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
  568. #define ISpatialAudioObject_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
  569. #define ISpatialAudioObject_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
  570. /*** ISpatialAudioObject methods ***/
  571. #define ISpatialAudioObject_SetPosition(This,x,y,z) (This)->lpVtbl->SetPosition(This,x,y,z)
  572. #define ISpatialAudioObject_SetVolume(This,vol) (This)->lpVtbl->SetVolume(This,vol)
  573. #else
  574. /*** IUnknown methods ***/
  575. static FORCEINLINE HRESULT ISpatialAudioObject_QueryInterface(ISpatialAudioObject* This,REFIID riid,void **ppvObject) {
  576. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  577. }
  578. static FORCEINLINE ULONG ISpatialAudioObject_AddRef(ISpatialAudioObject* This) {
  579. return This->lpVtbl->AddRef(This);
  580. }
  581. static FORCEINLINE ULONG ISpatialAudioObject_Release(ISpatialAudioObject* This) {
  582. return This->lpVtbl->Release(This);
  583. }
  584. /*** ISpatialAudioObjectBase methods ***/
  585. static FORCEINLINE HRESULT ISpatialAudioObject_GetBuffer(ISpatialAudioObject* This,BYTE **buffer,UINT32 *bytes) {
  586. return This->lpVtbl->GetBuffer(This,buffer,bytes);
  587. }
  588. static FORCEINLINE HRESULT ISpatialAudioObject_SetEndOfStream(ISpatialAudioObject* This,UINT32 frames) {
  589. return This->lpVtbl->SetEndOfStream(This,frames);
  590. }
  591. static FORCEINLINE HRESULT ISpatialAudioObject_IsActive(ISpatialAudioObject* This,WINBOOL *active) {
  592. return This->lpVtbl->IsActive(This,active);
  593. }
  594. static FORCEINLINE HRESULT ISpatialAudioObject_GetAudioObjectType(ISpatialAudioObject* This,AudioObjectType *type) {
  595. return This->lpVtbl->GetAudioObjectType(This,type);
  596. }
  597. /*** ISpatialAudioObject methods ***/
  598. static FORCEINLINE HRESULT ISpatialAudioObject_SetPosition(ISpatialAudioObject* This,float x,float y,float z) {
  599. return This->lpVtbl->SetPosition(This,x,y,z);
  600. }
  601. static FORCEINLINE HRESULT ISpatialAudioObject_SetVolume(ISpatialAudioObject* This,float vol) {
  602. return This->lpVtbl->SetVolume(This,vol);
  603. }
  604. #endif
  605. #endif
  606. #endif
  607. #endif /* __ISpatialAudioObject_INTERFACE_DEFINED__ */
  608. /*****************************************************************************
  609. * ISpatialAudioObjectRenderStreamBase interface
  610. */
  611. #ifndef __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
  612. #define __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
  613. DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8);
  614. #if defined(__cplusplus) && !defined(CINTERFACE)
  615. MIDL_INTERFACE("feaaf403-c1d8-450d-aa05-e0ccee7502a8")
  616. ISpatialAudioObjectRenderStreamBase : public IUnknown
  617. {
  618. virtual HRESULT STDMETHODCALLTYPE GetAvailableDynamicObjectCount(
  619. UINT32 *count) = 0;
  620. virtual HRESULT STDMETHODCALLTYPE GetService(
  621. REFIID riid,
  622. void **service) = 0;
  623. virtual HRESULT STDMETHODCALLTYPE Start(
  624. ) = 0;
  625. virtual HRESULT STDMETHODCALLTYPE Stop(
  626. ) = 0;
  627. virtual HRESULT STDMETHODCALLTYPE Reset(
  628. ) = 0;
  629. virtual HRESULT STDMETHODCALLTYPE BeginUpdatingAudioObjects(
  630. UINT32 *count,
  631. UINT32 *frames) = 0;
  632. virtual HRESULT STDMETHODCALLTYPE EndUpdatingAudioObjects(
  633. ) = 0;
  634. };
  635. #ifdef __CRT_UUID_DECL
  636. __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8)
  637. #endif
  638. #else
  639. typedef struct ISpatialAudioObjectRenderStreamBaseVtbl {
  640. BEGIN_INTERFACE
  641. /*** IUnknown methods ***/
  642. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  643. ISpatialAudioObjectRenderStreamBase *This,
  644. REFIID riid,
  645. void **ppvObject);
  646. ULONG (STDMETHODCALLTYPE *AddRef)(
  647. ISpatialAudioObjectRenderStreamBase *This);
  648. ULONG (STDMETHODCALLTYPE *Release)(
  649. ISpatialAudioObjectRenderStreamBase *This);
  650. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  651. HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
  652. ISpatialAudioObjectRenderStreamBase *This,
  653. UINT32 *count);
  654. HRESULT (STDMETHODCALLTYPE *GetService)(
  655. ISpatialAudioObjectRenderStreamBase *This,
  656. REFIID riid,
  657. void **service);
  658. HRESULT (STDMETHODCALLTYPE *Start)(
  659. ISpatialAudioObjectRenderStreamBase *This);
  660. HRESULT (STDMETHODCALLTYPE *Stop)(
  661. ISpatialAudioObjectRenderStreamBase *This);
  662. HRESULT (STDMETHODCALLTYPE *Reset)(
  663. ISpatialAudioObjectRenderStreamBase *This);
  664. HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
  665. ISpatialAudioObjectRenderStreamBase *This,
  666. UINT32 *count,
  667. UINT32 *frames);
  668. HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
  669. ISpatialAudioObjectRenderStreamBase *This);
  670. END_INTERFACE
  671. } ISpatialAudioObjectRenderStreamBaseVtbl;
  672. interface ISpatialAudioObjectRenderStreamBase {
  673. CONST_VTBL ISpatialAudioObjectRenderStreamBaseVtbl* lpVtbl;
  674. };
  675. #ifdef COBJMACROS
  676. #ifndef WIDL_C_INLINE_WRAPPERS
  677. /*** IUnknown methods ***/
  678. #define ISpatialAudioObjectRenderStreamBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  679. #define ISpatialAudioObjectRenderStreamBase_AddRef(This) (This)->lpVtbl->AddRef(This)
  680. #define ISpatialAudioObjectRenderStreamBase_Release(This) (This)->lpVtbl->Release(This)
  681. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  682. #define ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
  683. #define ISpatialAudioObjectRenderStreamBase_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
  684. #define ISpatialAudioObjectRenderStreamBase_Start(This) (This)->lpVtbl->Start(This)
  685. #define ISpatialAudioObjectRenderStreamBase_Stop(This) (This)->lpVtbl->Stop(This)
  686. #define ISpatialAudioObjectRenderStreamBase_Reset(This) (This)->lpVtbl->Reset(This)
  687. #define ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
  688. #define ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
  689. #else
  690. /*** IUnknown methods ***/
  691. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_QueryInterface(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **ppvObject) {
  692. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  693. }
  694. static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_AddRef(ISpatialAudioObjectRenderStreamBase* This) {
  695. return This->lpVtbl->AddRef(This);
  696. }
  697. static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_Release(ISpatialAudioObjectRenderStreamBase* This) {
  698. return This->lpVtbl->Release(This);
  699. }
  700. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  701. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count) {
  702. return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
  703. }
  704. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetService(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **service) {
  705. return This->lpVtbl->GetService(This,riid,service);
  706. }
  707. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Start(ISpatialAudioObjectRenderStreamBase* This) {
  708. return This->lpVtbl->Start(This);
  709. }
  710. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Stop(ISpatialAudioObjectRenderStreamBase* This) {
  711. return This->lpVtbl->Stop(This);
  712. }
  713. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Reset(ISpatialAudioObjectRenderStreamBase* This) {
  714. return This->lpVtbl->Reset(This);
  715. }
  716. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count,UINT32 *frames) {
  717. return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
  718. }
  719. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This) {
  720. return This->lpVtbl->EndUpdatingAudioObjects(This);
  721. }
  722. #endif
  723. #endif
  724. #endif
  725. #endif /* __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ */
  726. /*****************************************************************************
  727. * ISpatialAudioObjectRenderStream interface
  728. */
  729. #ifndef __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
  730. #define __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
  731. DEFINE_GUID(IID_ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53);
  732. #if defined(__cplusplus) && !defined(CINTERFACE)
  733. MIDL_INTERFACE("bab5f473-b423-477b-85f5-b5a332a04153")
  734. ISpatialAudioObjectRenderStream : public ISpatialAudioObjectRenderStreamBase
  735. {
  736. virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioObject(
  737. AudioObjectType type,
  738. ISpatialAudioObject **object) = 0;
  739. };
  740. #ifdef __CRT_UUID_DECL
  741. __CRT_UUID_DECL(ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53)
  742. #endif
  743. #else
  744. typedef struct ISpatialAudioObjectRenderStreamVtbl {
  745. BEGIN_INTERFACE
  746. /*** IUnknown methods ***/
  747. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  748. ISpatialAudioObjectRenderStream *This,
  749. REFIID riid,
  750. void **ppvObject);
  751. ULONG (STDMETHODCALLTYPE *AddRef)(
  752. ISpatialAudioObjectRenderStream *This);
  753. ULONG (STDMETHODCALLTYPE *Release)(
  754. ISpatialAudioObjectRenderStream *This);
  755. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  756. HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
  757. ISpatialAudioObjectRenderStream *This,
  758. UINT32 *count);
  759. HRESULT (STDMETHODCALLTYPE *GetService)(
  760. ISpatialAudioObjectRenderStream *This,
  761. REFIID riid,
  762. void **service);
  763. HRESULT (STDMETHODCALLTYPE *Start)(
  764. ISpatialAudioObjectRenderStream *This);
  765. HRESULT (STDMETHODCALLTYPE *Stop)(
  766. ISpatialAudioObjectRenderStream *This);
  767. HRESULT (STDMETHODCALLTYPE *Reset)(
  768. ISpatialAudioObjectRenderStream *This);
  769. HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
  770. ISpatialAudioObjectRenderStream *This,
  771. UINT32 *count,
  772. UINT32 *frames);
  773. HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
  774. ISpatialAudioObjectRenderStream *This);
  775. /*** ISpatialAudioObjectRenderStream methods ***/
  776. HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioObject)(
  777. ISpatialAudioObjectRenderStream *This,
  778. AudioObjectType type,
  779. ISpatialAudioObject **object);
  780. END_INTERFACE
  781. } ISpatialAudioObjectRenderStreamVtbl;
  782. interface ISpatialAudioObjectRenderStream {
  783. CONST_VTBL ISpatialAudioObjectRenderStreamVtbl* lpVtbl;
  784. };
  785. #ifdef COBJMACROS
  786. #ifndef WIDL_C_INLINE_WRAPPERS
  787. /*** IUnknown methods ***/
  788. #define ISpatialAudioObjectRenderStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  789. #define ISpatialAudioObjectRenderStream_AddRef(This) (This)->lpVtbl->AddRef(This)
  790. #define ISpatialAudioObjectRenderStream_Release(This) (This)->lpVtbl->Release(This)
  791. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  792. #define ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
  793. #define ISpatialAudioObjectRenderStream_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
  794. #define ISpatialAudioObjectRenderStream_Start(This) (This)->lpVtbl->Start(This)
  795. #define ISpatialAudioObjectRenderStream_Stop(This) (This)->lpVtbl->Stop(This)
  796. #define ISpatialAudioObjectRenderStream_Reset(This) (This)->lpVtbl->Reset(This)
  797. #define ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
  798. #define ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
  799. /*** ISpatialAudioObjectRenderStream methods ***/
  800. #define ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(This,type,object) (This)->lpVtbl->ActivateSpatialAudioObject(This,type,object)
  801. #else
  802. /*** IUnknown methods ***/
  803. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_QueryInterface(ISpatialAudioObjectRenderStream* This,REFIID riid,void **ppvObject) {
  804. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  805. }
  806. static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_AddRef(ISpatialAudioObjectRenderStream* This) {
  807. return This->lpVtbl->AddRef(This);
  808. }
  809. static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_Release(ISpatialAudioObjectRenderStream* This) {
  810. return This->lpVtbl->Release(This);
  811. }
  812. /*** ISpatialAudioObjectRenderStreamBase methods ***/
  813. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStream* This,UINT32 *count) {
  814. return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
  815. }
  816. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetService(ISpatialAudioObjectRenderStream* This,REFIID riid,void **service) {
  817. return This->lpVtbl->GetService(This,riid,service);
  818. }
  819. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Start(ISpatialAudioObjectRenderStream* This) {
  820. return This->lpVtbl->Start(This);
  821. }
  822. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Stop(ISpatialAudioObjectRenderStream* This) {
  823. return This->lpVtbl->Stop(This);
  824. }
  825. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Reset(ISpatialAudioObjectRenderStream* This) {
  826. return This->lpVtbl->Reset(This);
  827. }
  828. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This,UINT32 *count,UINT32 *frames) {
  829. return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
  830. }
  831. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This) {
  832. return This->lpVtbl->EndUpdatingAudioObjects(This);
  833. }
  834. /*** ISpatialAudioObjectRenderStream methods ***/
  835. static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(ISpatialAudioObjectRenderStream* This,AudioObjectType type,ISpatialAudioObject **object) {
  836. return This->lpVtbl->ActivateSpatialAudioObject(This,type,object);
  837. }
  838. #endif
  839. #endif
  840. #endif
  841. #endif /* __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ */
  842. /* Begin additional prototypes for all interfaces */
  843. /* End additional prototypes */
  844. #ifdef __cplusplus
  845. }
  846. #endif
  847. #endif /* __spatialaudioclient_h__ */