diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:17:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:17:27 +0000 |
commit | f215e02bf85f68d3a6106c2a1f4f7f063f819064 (patch) | |
tree | 6bb5b92c046312c4e95ac2620b10ddf482d3fa8b /src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl | |
parent | Initial commit. (diff) | |
download | virtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.tar.xz virtualbox-f215e02bf85f68d3a6106c2a1f4f7f063f819064.zip |
Adding upstream version 7.0.14-dfsg.upstream/7.0.14-dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl new file mode 100644 index 00000000..6d9a6cb7 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/audioclient.idl @@ -0,0 +1,336 @@ +/* + * Core Audio audioclient definitions + * + * Copyright 2009 Maarten Lankhorst + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +import "wtypes.idl"; +import "unknwn.idl"; +import "audiosessiontypes.h"; + +/* Forward declarations */ +interface IAudioClient; +interface IAudioRenderClient; +interface IAudioCaptureClient; +interface IAudioClock; +interface IAudioClock2; +interface IAudioClockAdjustment; +interface ISimpleAudioVolume; +interface IAudioStreamVolume; +interface IChannelAudioVolume; + +cpp_quote("#if 0") +typedef struct WAVEFORMATEX /*[hidden,restricted]*/ +{ + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; +} WAVEFORMATEX; +cpp_quote("#else") +cpp_quote("#include <mmreg.h>") +cpp_quote("#endif") + +cpp_quote("#if 0") +typedef LONGLONG /*[hidden,restricted]*/ REFERENCE_TIME; +cpp_quote("#else") +cpp_quote("#define _IKsControl_") +cpp_quote("#include <ks.h>") +cpp_quote("#include <ksmedia.h>") +cpp_quote("#endif") + +enum _AUDCLNT_BUFFERFLAGS +{ + AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1, + AUDCLNT_BUFFERFLAGS_SILENT = 0x2, + AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4 +}; + +[ + local, + pointer_default(unique), + uuid(1cb9ad4c-dbfa-4c32-b178-c2f568a703b2), + object, +] +interface IAudioClient : IUnknown +{ + HRESULT Initialize( + [in] AUDCLNT_SHAREMODE ShareMode, + [in] DWORD StreamFlags, + [in] REFERENCE_TIME hnsBufferDuration, + [in] REFERENCE_TIME hnsPeriodicity, + [in] const WAVEFORMATEX *pFormat, + [in] LPCGUID AudioSessionGuid + ); + HRESULT GetBufferSize( + [out] UINT32 *pNumBufferFrames + ); + HRESULT GetStreamLatency( + [out] REFERENCE_TIME *phnsLatency + ); + HRESULT GetCurrentPadding( + [out] UINT32 *pNumPaddingFrames + ); + HRESULT IsFormatSupported( + [in] AUDCLNT_SHAREMODE ShareMode, + [in] const WAVEFORMATEX *pFormat, + [out,unique] WAVEFORMATEX **ppClosestMatch + ); + HRESULT GetMixFormat( + [out] WAVEFORMATEX **ppDeviceFormat + ); + HRESULT GetDevicePeriod( + [out] REFERENCE_TIME *phnsDefaultDevicePeriod, + [out] REFERENCE_TIME *phnsMinimumDevicePeriod + ); + HRESULT Start(void); + HRESULT Stop(void); + HRESULT Reset(void); + HRESULT SetEventHandle([in] HANDLE eventHandle); + HRESULT GetService( + [in] REFIID riid, + [iid_is(riid),out] void **ppv + ); +} + +[ + local, + pointer_default(unique), + uuid(f294acfc-3146-4483-a7bf-addca7c260e2), + object, +] +interface IAudioRenderClient : IUnknown +{ + HRESULT GetBuffer( + [in] UINT32 NumFramesRequested, + [out] BYTE **ppData + ); + HRESULT ReleaseBuffer( + [in] UINT32 NumFramesWritten, + [in] DWORD dwFlags + ); +} + +[ + local, + pointer_default(unique), + uuid(c8adbd64-e71e-48a0-a4de-185c395cd317), + object, +] +interface IAudioCaptureClient : IUnknown +{ + HRESULT GetBuffer( + [out] BYTE **ppData, + [out] UINT32 *pNumFramesToRead, + [out] DWORD *pdwFlags, + [unique,out] UINT64 *pu64DevicePosition, + [unique,out] UINT64 *pu64QPCPosition + ); + HRESULT ReleaseBuffer( + [in] UINT32 NumFramesRead + ); + HRESULT GetNextPacketSize( + [out] UINT32 *pNumFramesInNextPacket + ); +} + +cpp_quote("#define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001") + +[ + local, + pointer_default(unique), + uuid("cd63314f-3fba-4a1b-812c-ef96358728e7"), + object, +] +interface IAudioClock : IUnknown +{ + HRESULT GetFrequency( + [out] UINT64 *pu64Frequency + ); + HRESULT GetPosition( + [out] UINT64 *pu64Position, + [out,unique] UINT64 *pu64QPCPosition + ); + HRESULT GetCharacteristics( + [out] DWORD *pdwCharacteristics + ); +} + +[ + local, + pointer_default(unique), + uuid("6f49ff73-6727-49ac-a008-d98cf5e70048"), + object, +] +interface IAudioClock2 : IUnknown +{ + HRESULT GetPosition( + [out] UINT64 *DevicePosition, + [out,unique] UINT64 *QPCPosition + ); +} + +[ + local, + pointer_default(unique), + uuid("f6e4c0a0-46d9-4fb9-be21-57a3ef2b626c"), + object, +] +interface IAudioClockAdjustment : IUnknown +{ + HRESULT SetSampleRate( + [in] float flSampleRate + ); +} + +[ + local, + pointer_default(unique), + uuid("87ce5498-68d6-44e5-9215-6da47ef883d8"), + object, +] +interface ISimpleAudioVolume : IUnknown +{ + HRESULT SetMasterVolume( + [in] float fLevel, + [unique,in] LPCGUID EventContext + ); + HRESULT GetMasterVolume( + [out] float *pfLevel + ); + HRESULT SetMute( + [in] const BOOL bMute, + [unique,in] LPCGUID EventContext + ); + HRESULT GetMute( + [out] BOOL *pbMute + ); +} + +[ + local, + pointer_default(unique), + uuid("93014887-242d-4068-8a15-cf5e93b90fe3"), + object, +] +interface IAudioStreamVolume : IUnknown +{ + HRESULT GetChannelCount( + [out] UINT32 *pdwCount + ); + HRESULT SetChannelVolume( + [in] UINT32 dwIndex, + [in] const float fLevel + ); + HRESULT GetChannelVolume( + [in] UINT32 dwIndex, + [out] float *pfLevel + ); + HRESULT SetAllVolumes( + [in] UINT32 dwCount, + [size_is(dwCount),in] const float *pfVolumes + ); + HRESULT GetAllVolumes( + [in] UINT32 dwCount, + [size_is(dwCount),out] float *pfVolumes + ); +} + +[ + local, + pointer_default(unique), + uuid("1c158861-b533-4b30-b1cf-e853e51c59b8"), + object, +] +interface IChannelAudioVolume : IUnknown +{ + HRESULT GetChannelCount( + [out] UINT32 *pdwCount + ); + HRESULT SetChannelVolume( + [in] UINT32 dwIndex, + [in] const float fLevel, + [unique,in] LPCGUID EventContext + ); + HRESULT GetChannelVolume( + [in] UINT32 dwIndex, + [out] float *pfLevel + ); + HRESULT SetAllVolumes( + [in] UINT32 dwCount, + [size_is(dwCount),in] const float *pfVolumes, + [unique,in] LPCGUID EventContext + ); + HRESULT GetAllVolumes( + [in] UINT32 dwCount, + [size_is(dwCount),out] float *pfVolumes + ); +} + +cpp_quote("#define FACILIY_AUDCLNT 0x889") +cpp_quote("#define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILIY_AUDCLNT, n)") +cpp_quote("#define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILIY_AUDCLNT, n)") +cpp_quote("#define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(1)") +cpp_quote("#define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(2)") +cpp_quote("#define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(3)") +cpp_quote("#define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(4)") +cpp_quote("#define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(5)") +cpp_quote("#define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(6)") +cpp_quote("#define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(7)") +cpp_quote("#define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(8)") +cpp_quote("#define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(9)") +cpp_quote("#define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x0a)") +cpp_quote("#define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x0b)") +cpp_quote("#define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x0c)") +/* Not defined? cpp_quote("#define AUDCLNT_E_UNKNOWN_XXX1 AUDCLNT_ERR(0x0d)") */ +cpp_quote("#define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x0e)") +cpp_quote("#define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x0f)") +cpp_quote("#define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x10)") +cpp_quote("#define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x11)") +cpp_quote("#define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x12)") +cpp_quote("#define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x13)") +cpp_quote("#define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x14)") +cpp_quote("#define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x15)") +cpp_quote("#define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x16)") +cpp_quote("#define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x17)") +cpp_quote("#define AUDCLNT_E_BUFFER_ERROR AUDCLNT_ERR(0x18)") +cpp_quote("#define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x19)") +/* Hex fail */ +cpp_quote("#define AUDCLNT_E_INVALID_DEVICE_PERIOD AUDCLNT_ERR(0x20)") +cpp_quote("#define AUDCLNT_E_INVALID_STREAM_FLAG AUDCLNT_ERR(0x021)") +cpp_quote("#define AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE AUDCLNT_ERR(0x022)") +cpp_quote("#define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x023)") +cpp_quote("#define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x024)") +cpp_quote("#define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x025)") +cpp_quote("#define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x026)") + +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)") |