diff options
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl | 745 |
1 files changed, 745 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl b/src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl new file mode 100644 index 00000000..413f636d --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl @@ -0,0 +1,745 @@ +/* + * Core Audio device topology 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. + */ + +interface IPart; +interface IControlInterface; +interface IDeviceTopology; +interface IControlChangeNotify; + +import "oaidl.idl"; +import "ocidl.idl"; +import "propidl.idl"; + +cpp_quote("#ifndef E_NOTFOUND") +cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)") +cpp_quote("#endif") + +cpp_quote("#define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 0x64726148 /* 'draH' */") +cpp_quote("DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xe2c2e9de, 0x09b1, 0x4b04,0x84,0xe5, 0x07, 0x93, 0x12, 0x25, 0xee, 0x04);") + +cpp_quote("#define _IKsControl_") +cpp_quote("#include <ks.h>") +cpp_quote("#include <ksmedia.h>") +cpp_quote("#ifndef _KS_") + +typedef struct { + ULONG FormatSize; + ULONG Flags; + ULONG SampleSize; + ULONG Reserved; + GUID MajorFormat; + GUID SubFormat; + GUID Specifier; +} KSDATAFORMAT; + +typedef KSDATAFORMAT *PKSDATAFORMAT; + +typedef struct +{ + union + { + struct { + GUID Set; + ULONG Id; + ULONG Flags; + }; + LONGLONG Alignment; + }; +} KSIDENTIFIER; + +typedef KSIDENTIFIER KSPROPERTY, *PKSPROPERTY; +typedef KSIDENTIFIER KSMETHOD, *PKSMETHOD; +typedef KSIDENTIFIER KSEVENT, *PKSEVENT; + +typedef enum +{ + eConnTypeUnknown = 0, + eConnType3Point5mm, + eConnTypeQuarter, + eConnTypeAtapiInternal, + eConnTypeRCA, + eConnTypeOptical, + eConnTypeOtherDigital, + eConnTypeOtherAnalog, + eConnTypeMultichannelAnalogDIN, + eConnTypeXlrProfessional, + eConnTypeRj11Modem, + eConnTypeCombination +} EPcxConnectionType; + +typedef enum +{ + eGeoLocRear = 1, + eGeoLocFront, + eGeoLocLeft, + eGeoLocRight, + eGeoLocTop, + eGeoLocBottom, + eGeoLocRearPanel, + eGeoLocRiser, + eGeoLocInsideMobileLid, + eGeoLocDrivebay, + eGeoLocHDMI, + eGeoLocOutsideMobileLid, + eGeoLocATAPI, + eGeoLocReserved5, + eGeoLocReserved6 +} EPcxGeoLocation; + +typedef enum +{ + eGenLocPrimaryBox = 0, + eGenLocInternal, + eGenLocSeparate, + eGenLocOther +} EPcxGenLocation; + +typedef enum +{ + ePortConnJack = 0, + ePortConnIntegratedDevice, + ePortConnBothIntegratedAndJack, + ePortConnUnknown +} EPxcPortConnection; + +typedef struct +{ + DWORD ChannelMapping; + COLORREF Color; + EPcxConnectionType ConnectionType; + EPcxGeoLocation GeoLocation; + EPcxGenLocation GenLocation; + EPxcPortConnection PortConnection; + BOOL IsConnected; +} KSJACK_DESCRIPTION; + +typedef KSJACK_DESCRIPTION *PKSJACK_DESCRIPTION; + +typedef struct _LUID +{ + DWORD LowPart; + LONG HighPart; +} LUID; + +typedef struct _LUID *PLUID; + +typedef enum +{ + KSJACK_SINK_CONNECTIONTYPE_HDMI = 0, + KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT +} KSJACK_SINK_CONNECTIONTYPE; + +typedef struct _tagKSJACK_SINK_INFORMATION +{ + KSJACK_SINK_CONNECTIONTYPE ConnType; + WORD ManufacturerId; + WORD ProductId; + WORD AudioLatency; + BOOL HDCPCapable; + BOOL AICapable; + UCHAR SinkDescriptionLength; + WCHAR SinkDescription[32]; + LUID PortId; +} KSJACK_SINK_INFORMATION; + +typedef struct _tagKSJACK_DESCRIPTION2 +{ + DWORD DeviceStateInfo; + DWORD JackCapabilities; +} KSJACK_DESCRIPTION2; + +typedef struct _tagKSJACK_DESCRIPTION2 *PKSJACK_DESCRIPTION2; + +cpp_quote("#endif") + +typedef enum +{ + In = 0, + Out +} DataFlow; + +typedef enum +{ + Connector = 0, + Subunit +} PartType; + +typedef enum +{ + Unknown_Connector = 0, + Physical_Internal, + Physical_External, + Software_IO, + Software_Fixed, + Network +} ConnectorType; + +[ + pointer_default(unique), + nonextensible, + uuid(28f54685-06fd-11d2-b27a-00a0c9223196), + local, + object +] +interface IKsControl : IUnknown +{ + HRESULT KsProperty( + [in] PKSPROPERTY Property, + [in] ULONG PropertyLength, + [in,out] void *PropertyData, + [in] ULONG DataLength, + [out] ULONG *BytesReturned + ); + HRESULT KsMethod( + [in] PKSMETHOD Method, + [in] ULONG MethodLength, + [in,out] void *MethodData, + [in] ULONG DataLength, + [out] ULONG *BytesReturned + ); + HRESULT KsEvent( + [in] PKSEVENT Event, + [in] ULONG EventLength, + [in,out] void *EventData, + [in] ULONG DataLength, + [out] ULONG *BytesReturned + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(c2f8e001-f205-4bc9-99bc-c13b1e048ccb), + local, + object +] +interface IPerChannelDbLevel : IUnknown +{ + HRESULT GetChannelCount( + [out] UINT *pcChannels + ); + HRESULT GetLevelRange( + [in] UINT nChannel, + [out] float *pfMinLevelDB, + [out] float *pfMaxLevelDB, + [out] float *pfStepping + ); + HRESULT GetLevel( + [in] UINT nChannel, + [out] float *pfLevelDB + ); + HRESULT SetLevel( + [in] UINT nChannel, + [in] float fLevelDB, + [in,unique] LPCGUID pguidEventContext + ); + HRESULT SetLevelUniform( + [in] float fLevelDB, + [in,unique] LPCGUID pguidEventContext + ); + HRESULT SetLevelAllChannels( + [size_is(cChannels),in] float *aLevelsDB, + [in] ULONG cChannels, + [in] LPCGUID pguidEventContext + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc), + local, + object +] +interface IAudioVolumeLevel : IPerChannelDbLevel +{ + /* Empty */ +} + +[ + pointer_default(unique), + nonextensible, + uuid(bb11c46f-ec28-493c-b88a-5db88062ce98), + local, + object +] +interface IAudioChannelConfig : IUnknown +{ + HRESULT SetChannelConfig( + [in] DWORD dwConfig, + [in] LPCGUID pguidEventContext + ); + HRESULT GetChannelConfig( + [in] DWORD dwConfig, + [retval,out] DWORD *pdwConfig + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(7d8b1437-dd53-4350-9c1b-1ee2890bf938), + local, + object +] +interface IAudioLoudness : IUnknown +{ + HRESULT GetEnabled( + [out] BOOL *pbEnabled + ); + HRESULT SetEnabled( + [in] BOOL bEnabled, + [in] LPCGUID pguidEventContext + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(4f03dc02-5e6e-4653-8f72-a030c123d598), + local, + object +] +interface IAudioInputSelector : IUnknown +{ + HRESULT GetSelection( + [out] UINT *pnIdSelected + ); + HRESULT SetSelection( + [in] UINT nIdSelect, + [unique,in] LPCGUID pguidEventContext + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab), + local, + object +] +interface IAudioOutputSelector : IUnknown +{ + HRESULT GetSelection( + [out] UINT *pnIdSelected + ); + HRESULT SetSelection( + [in] UINT nIdSelect, + [unique,in] LPCGUID pguidEventContext + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab), + local, + object +] +interface IAudioMute : IUnknown +{ + HRESULT SetMute( + [in] BOOL bMute, + [unique,in] LPCGUID pguidEventContext + ); + HRESULT GetMute( + [out] BOOL *pbMute + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(a2b1a1d9-4db3-425d-a2b2-bd335cb3e2e5), + local, + object +] +interface IAudioBass : IPerChannelDbLevel +{ + /* Empty */ +} + +[ + pointer_default(unique), + nonextensible, + uuid(5e54b6d7-b44b-40d9-9a9e-e691d9ce6edf), + local, + object +] +interface IAudioMidRange : IPerChannelDbLevel +{ + /* Empty */ +} + +[ + pointer_default(unique), + nonextensible, + uuid(0a717812-694e-4907-b74b-bafa5cfdca7b), + local, + object +] +interface IAudioTreble : IPerChannelDbLevel +{ + /* Empty */ +} + +[ + pointer_default(unique), + nonextensible, + uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab), + local, + object +] +interface IAudioAutoGainControl : IUnknown +{ + HRESULT GetEnabled( + [in] BOOL bEnabled, + [unique,in] LPCGUID pguidEventContext + ); + HRESULT GetMute( + [out] BOOL *pbEnabled + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(dd79923c-0599-45e0-b8b6-c8df7db6e796), + local, + object +] +interface IAudioPeakMeter : IUnknown +{ + HRESULT GetChannelCount( + [out] UINT *pcChannels + ); + HRESULT GetLevel( + [in] UINT nChannel, + [out] float *pfLevel + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(3b22bcbf-2586-4af0-8583-205d391b807c), + local, + object +] +interface IDeviceSpecificProperty : IUnknown +{ + HRESULT GetType( + [out] VARTYPE *pVType + ); + HRESULT GetValue( + [out] VARTYPE *pvType, + [out,in] DWORD *pcbValue + ); + HRESULT SetValue( + [in] void *pvValue, + [in] DWORD cbValue, + [in] LPCGUID pguidEventContext + ); + HRESULT Get4BRange( + [out] LONG *plMin, + [out] LONG *plMax, + [out] LONG *plStepping + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(3cb4a69d-bb6f-4d2b-95b7-452d2c155db5), + local, + object +] +interface IKsFormatSupport : IUnknown +{ + HRESULT IsFormatSupported( + [size_is(cbFormat),in] PKSDATAFORMAT pKsFormat, + [in] DWORD cbFormat, + [out] BOOL *pbSupported + ); + HRESULT GetDevicePreferredFormat( + [out] PKSDATAFORMAT *ppKsFormat + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(4509f757-2d46-4637-8e62-ce7db944f57b), + local, + object +] +interface IKsJackDescription : IUnknown +{ + HRESULT GetJackCount( + [out] UINT *pcJacks + ); + HRESULT GetJackDescription( + [in] UINT nJack, + [out] KSJACK_DESCRIPTION *pDescription + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(478f3a9b-e0c9-4827-9228-6f5505ffe76a), + local, + object +] +interface IKsJackDescription2 : IUnknown +{ + HRESULT GetJackCount( + [out] UINT *pcJacks + ); + HRESULT GetJackDescription2( + [in] UINT nJack, + [out] KSJACK_DESCRIPTION2 *pDescription2 + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(d9bd72ed-290f-4581-9ff3-61027a8fe532), + local, + object +] +interface IKsJackSinkInformation : IUnknown +{ + HRESULT GetJackSinkInformation( + [out] KSJACK_SINK_INFORMATION *pJackSinkInformation + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(6daa848c-5eb0-45cc-aea5-998a2cda1ffb), + local, + object +] +interface IPartsList : IUnknown +{ + HRESULT GetCount( + [out] UINT *pCount + ); + HRESULT GetPart( + [in] UINT nIndex, + [out] IPart **ppPart + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(ae2de0e4-5bca-4f2d-aa46-5d13f8fdb3a9), + local, + object +] +interface IPart : IUnknown +{ + HRESULT GetName( + [out] LPWSTR *ppwstrName + ); + HRESULT GetLocalId( + [out] UINT *pnId + ); + HRESULT GetGlobalId( + [out] LPWSTR *ppwstrGlobalId + ); + HRESULT GetPartType( + [out] PartType *pPartType + ); + HRESULT GetSubType( + [out] GUID *pSubType + ); + HRESULT GetControlInterfaceCount( + [out] UINT *pCount + ); + HRESULT GetControlInterface( + [in] UINT nIndex, + [out] IControlInterface **ppInterfaceDesc + ); + HRESULT EnumPartsIncoming( + [out] IPartsList **ppParts + ); + HRESULT EnumPartsOutgoing( + [out] IPartsList **ppParts + ); + HRESULT GetTopologyObjects( + [out] IDeviceTopology **ppTopology + ); + HRESULT Activate( + [in] DWORD dwClsContext, + [in] REFIID refiid, + [iid_is(refiid),out] void **ppvObject + ); + HRESULT RegisterControlChangeCallback( + [in] REFGUID riid, + [in] IControlChangeNotify *pNotify + ); + HRESULT UnregisterControlChangeCallback( + [in] IControlChangeNotify *pNotify + ); +}; + +[ + pointer_default(unique), + nonextensible, + uuid(9c2c4058-23f5-41de-877a-df3af236a09e), + local, + object +] +interface IConnector : IUnknown +{ + HRESULT GetType( + [out] ConnectorType *pType + ); + HRESULT GetDataFlow( + [out] DataFlow *pFlow + ); + HRESULT ConnectTo( + [in] IConnector *pConnectTo + ); + HRESULT Disconnect(void); + HRESULT IsConnected( + [out] BOOL *pbConnected + ); + HRESULT GetConnectedTo( + [out] IConnector **ppConTo + ); + HRESULT GetConnectorIdConnectedTo( + [out] LPWSTR *ppwstrConnectorId + ); + HRESULT GetDeviceIdConnectedTo( + [out] LPWSTR *ppwstrDeviceId + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(82149a85-dba6-4487-86bb-ea8f7fefcc71), + local, + object +] +interface ISubUnit: IUnknown +{ + /* Empty IUnknown interface.. */ +} + +[ + pointer_default(unique), + nonextensible, + uuid(45d37c3f-5140-444a-ae24-400789f3cbf3), + local, + object +] +interface IControlInterface : IUnknown +{ + HRESULT GetName( + [out] LPWSTR *ppwstrName + ); + HRESULT GetIID( + [out] GUID *pIID + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(a09513ed-c709-4d21-bd7b-5f34c47f3947), + local, + object +] +interface IControlChangeNotify : IUnknown +{ + HRESULT OnNotify( + [in] DWORD dwSenderProcessId, + [in] LPCGUID ppguidEventContext + ); +} + +[ + pointer_default(unique), + nonextensible, + uuid(2a07407e-6497-4a18-9787-32f79bd0d98f), + local, + object +] +interface IDeviceTopology : IUnknown +{ + HRESULT GetConnectorCount( + [out] UINT *pCount + ); + HRESULT GetConnector( + [in] UINT nIndex, + [out] IConnector **ppConnector + ); + HRESULT GetSubunitCount( + [out] UINT *pCount + ); + HRESULT GetSubunit( + [in] UINT nIndex, + [out] ISubUnit **ppConnector + ); + HRESULT GetPartById( + [in] UINT nId, + [out] IPart **ppPart + ); + HRESULT GetDeviceId( + [out] LPWSTR *ppwstrDeviceId + ); + HRESULT GetSignalPath( + [in] IPart *pIPartFrom, + [in] IPart *pIPartTo, + [in] BOOL bRejectMixedPaths, + [out] IPartsList **ppParts + ); +} + +[ + version(1.0) +] +library DevTopologyLib +{ + [ + uuid(1df639d0-5ec1-47aa-9379-828dc1aa8c59), + ] + coclass DeviceTopology + { + interface IDeviceTopology; + } +} |