2 * Copyright 2020 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 import
"audioclient.idl";
23 typedef [v1_enum] enum AudioObjectType
25 AudioObjectType_None
= 0,
26 AudioObjectType_Dynamic
= 0x00000001,
27 AudioObjectType_FrontLeft
= 0x00000002,
28 AudioObjectType_FrontRight
= 0x00000004,
29 AudioObjectType_FrontCenter
= 0x00000008,
30 AudioObjectType_LowFrequency
= 0x00000010,
31 AudioObjectType_SideLeft
= 0x00000020,
32 AudioObjectType_SideRight
= 0x00000040,
33 AudioObjectType_BackLeft
= 0x00000080,
34 AudioObjectType_BackRight
= 0x00000100,
35 AudioObjectType_TopFrontLeft
= 0x00000200,
36 AudioObjectType_TopFrontRight
= 0x00000400,
37 AudioObjectType_TopBackLeft
= 0x00000800,
38 AudioObjectType_TopBackRight
= 0x00001000,
39 AudioObjectType_BottomFrontLeft
= 0x00002000,
40 AudioObjectType_BottomFrontRight
= 0x00004000,
41 AudioObjectType_BottomBackLeft
= 0x00008000,
42 AudioObjectType_BottomBackRight
= 0x00010000,
43 AudioObjectType_BackCenter
= 0x00020000,
48 uuid(dcdaa858
-895a
-4a22
-a5eb
-67bda506096d
),
49 pointer_default(unique),
52 interface IAudioFormatEnumerator
: IUnknown
59 [out] WAVEFORMATEX
**format
);
64 uuid(bbf8e066
-aaaa
-49be
-9a4d
-fd2a858ea27f
),
65 pointer_default(unique),
68 interface ISpatialAudioClient
: IUnknown
70 HRESULT GetStaticObjectPosition
(
71 [in] AudioObjectType type
,
76 HRESULT GetNativeStaticObjectTypeMask
(
77 [out] AudioObjectType
*mask
);
79 HRESULT GetMaxDynamicObjectCount
(
82 HRESULT GetSupportedAudioObjectFormatEnumerator
(
83 [out] IAudioFormatEnumerator
**enumerator
);
85 HRESULT GetMaxFrameCount
(
86 [in] WAVEFORMATEX
const *format
,
89 HRESULT IsAudioObjectFormatSupported
(
90 [in] WAVEFORMATEX
const *format
);
92 HRESULT IsSpatialAudioStreamAvailable
(
93 [in] REFIID stream_uuid
,
94 [in] PROPVARIANT
const *info
);
96 HRESULT ActivateSpatialAudioStream
(
97 [in] PROPVARIANT
const *params
,
99 [out, iid_is(riid
)] void **stream
);