diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
commit | 16f504a9dca3fe3b70568f67b7d41241ae485288 (patch) | |
tree | c60f36ada0496ba928b7161059ba5ab1ab224f9d /src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl | |
parent | Initial commit. (diff) | |
download | virtualbox-upstream.tar.xz virtualbox-upstream.zip |
Adding upstream version 7.0.6-dfsg.upstream/7.0.6-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl new file mode 100644 index 00000000..0aa872d4 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/mmdeviceapi.idl @@ -0,0 +1,259 @@ +/* + * Copyright (C) 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 "unknwn.idl"; +import "propsys.idl"; + +cpp_quote("#ifndef E_NOTFOUND") +cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)") +cpp_quote("#endif") +cpp_quote("#ifndef E_UNSUPPORTED_TYPE") +cpp_quote("#define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)") +cpp_quote("#endif") + + +cpp_quote("#define DEVICE_STATE_ACTIVE 0x1") +cpp_quote("#define DEVICE_STATE_DISABLED 0x2") +cpp_quote("#define DEVICE_STATE_NOTPRESENT 0x4") +cpp_quote("#define DEVICE_STATE_UNPLUGGED 0x8") +cpp_quote("#define DEVICE_STATEMASK_ALL 0xf") + +/* Generic PKEY_AudioEndPoint ID for grepping: {1da5d803-d492-4edd-8c23-e0c0ffee7f0e} */ +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5);") + +cpp_quote("#define ENDPOINT_SYSFX_ENABLED 0") +cpp_quote("#define ENDPOINT_SYSFX_DISABLED 1") + +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);") + +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);") +cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);") + +typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS +{ + DWORD cbDirectXAudioActivationParams; + GUID guidAudioSession; + DWORD dwAudioStreamFlags; +} DIRECTX_AUDIO_ACTIVATION_PARAMS, *PDIRECTX_AUDIO_ACTIVATION_PARAMS; + +typedef enum _EDataFlow +{ + eRender, + eCapture, + eAll, + EDataFlow_enum_count +} EDataFlow; + +typedef enum _ERole +{ + eConsole, + eMultimedia, + eCommunications, + ERole_enum_count +} ERole; + +typedef enum _EndpointFormFactor +{ + RemoteNetworkDevice, + Speakers, + LineLevel, + Headphones, + Microphone, + Headset, + Handset, + UnknownDigitalPassthrough, + SPDIF, + DigitalAudioDisplayDevice, + UnknownFormFactor, + EndpointFormFactor_enum_count +} EndpointFormFactor; + +cpp_quote("#define HDMI DigitalAudioDisplayDevice") + +[ + object, + local, + uuid(7991eec9-7e89-4d85-8390-6c703cec60c0), + nonextensible, + pointer_default(unique) +] +interface IMMNotificationClient : IUnknown +{ + [id(1)] HRESULT OnDeviceStateChanged( + [in] LPCWSTR pwstrDeviceId, + [in] DWORD dwNewState + ); + [id(2)] HRESULT OnDeviceAdded( + [in] LPCWSTR pwstrDeviceId + ); + [id(3)] HRESULT OnDeviceRemoved( + [in] LPCWSTR pwstrDeviceId + ); + [id(4)] HRESULT OnDefaultDeviceChanged( + [in] EDataFlow flow, + [in] ERole role, + [in] LPCWSTR pwstrDeviceId + ); + [id(5)] HRESULT OnPropertyValueChanged( + [in] LPCWSTR pwstrDeviceId, + [in] const PROPERTYKEY key + ); +} + +[ + object, + local, + uuid(d666063f-1587-4e43-81f1-b948e807363f), + nonextensible, + pointer_default(unique) +] +interface IMMDevice : IUnknown +{ + [id(1)] HRESULT Activate( + [in] REFIID iid, + [in] DWORD dwClsCtx, + [in,unique] PROPVARIANT *pActivationParams, + [out,iid_is(iid)] void **ppv + ); + [id(2)] HRESULT OpenPropertyStore( + [in] DWORD stgmAccess, + [out] IPropertyStore **ppProperties + ); + [id(3)] HRESULT GetId( + [out] LPWSTR *ppstrId + ); + [id(4)] HRESULT GetState( + [out] DWORD *pdwState + ); +} + +[ + object, + local, + uuid(0bd7a1be-7a1a-44db-8397-cc5392387b5e), + nonextensible, + pointer_default(unique) +] +interface IMMDeviceCollection : IUnknown +{ + [id(1)] HRESULT GetCount( + [out] UINT *pcDevices + ); + [id(2)] HRESULT Item( + [in] UINT nDevice, + [out] IMMDevice **ppdevice + ); +} + +[ + object, + local, + uuid(1be09788-6894-4089-8586-9a2a6c265ac5), + nonextensible, + pointer_default(unique) +] +interface IMMEndpoint : IUnknown +{ + [id(1)] HRESULT GetDataFlow( + [out] EDataFlow *pDataFlow + ); +} + +[ + object, + local, + uuid(a95664d2-9614-4f35-a746-de8db63617e6), + nonextensible, + pointer_default(unique) +] +interface IMMDeviceEnumerator : IUnknown +{ + [id(1)] HRESULT EnumAudioEndpoints( + [in] EDataFlow dataFlow, + [in] DWORD dwStateMask, + [out] IMMDeviceCollection **ppDevices + ); + [id(2)] HRESULT GetDefaultAudioEndpoint( + [in] EDataFlow dataFlow, + [in] ERole role, + [out] IMMDevice **ppEndpoint + ); + [id(3)] HRESULT GetDevice( + [in] LPCWSTR pwstrId, + [out] IMMDevice **ppDevice + ); + [id(4)] HRESULT RegisterEndpointNotificationCallback( + [in] IMMNotificationClient *pClient + ); + [id(5)] HRESULT UnregisterEndpointNotificationCallback( + [in] IMMNotificationClient *pClient + ); +} + +[ + object, + local, + uuid(3b0d0ea4-d0a9-4b0e-935b-09516746fac0), + nonextensible, + pointer_default(unique) +] +interface IMMDeviceActivator : IUnknown +{ + [id(1)] HRESULT Activate( + [in] REFIID iid, + [in] IMMDevice *pDevice, + [in] PROPVARIANT *pActivationParams, + [out,iid_is(iid)] void **ppv + ); +} + +typedef struct _AudioExtensionParams +{ + LPARAM AddPageParam; + IMMDevice *pEndPoint; + IMMDevice *pPnpInterface; + IMMDevice *pPnpDevnode; +} AudioExtensionParams; + +[ + uuid(2fdaafa3-7523-4f66-9957-9d5e7fe698f6), + version(1.0) +] +library MMDeviceAPILib +{ + [ uuid(bcde0395-e52f-467c-8e3d-c4579291692e) ] coclass MMDeviceEnumerator + { + [default] interface IMMDeviceEnumerator; + } +} |