| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef __INC_DEVICETOPOLOGY__ |
| #define __INC_DEVICETOPOLOGY__ |
| |
| #if (_WIN32_WINNT >= 0x0600) |
| #include <windef.h> |
| |
| typedef enum _ConnectorType { |
| Unknown_Connector = 0, |
| Physical_Internal, |
| Physical_External, |
| Software_IO, |
| Software_Fixed, |
| Network |
| } ConnectorType; |
| |
| typedef enum _DataFlow { |
| In, |
| Out |
| } DataFlow; |
| |
| typedef enum _PartType { |
| Connector, |
| Subunit |
| } PartType; |
| |
| /* NOTE: EChannelMapping enumeration is obsoleted in Windows/7: |
| * SPEAKER_FRONT_LEFT and friends from ksmedia.h are to |
| * be used as KSJACK_DESCRIPTION->ChannelMapping member |
| * values who also changed to a DWORD. See: |
| * http://msdn.microsoft.com/en-us/library/dd316543(VS.85).aspx |
| */ |
| typedef enum _EChannelMapping { |
| ePcxChanMap_FL_FR = 0, |
| ePcxChanMap_FC_LFE, |
| ePcxChanMap_BL_BR, |
| ePcxChanMap_FLC_FRC, |
| ePcxChanMap_SL_SR, |
| ePcxChanMap_Unknown |
| } EChannelMapping; |
| |
| typedef enum _EPcxConnectionType { |
| eConnTypeUnknown = 0, |
| eConnTypeEighth, |
| eConnType3Point5mm = eConnTypeEighth, |
| eConnTypeQuarter, |
| eConnTypeAtapiInternal, |
| eConnTypeRCA, |
| eConnTypeOptical, |
| eConnTypeOtherDigital, |
| eConnTypeOtherAnalog, |
| eConnTypeMultichannelAnalogDIN, |
| eConnTypeXlrProfessional, |
| eConnTypeRJ11Modem, |
| eConnTypeCombination |
| } EPcxConnectionType; |
| |
| typedef enum _EPcxGeoLocation { |
| eGeoLocRear = 0, |
| eGeoLocFront, |
| eGeoLocLeft, |
| eGeoLocRight, |
| eGeoLocTop, |
| eGeoLocBottom, |
| eGeoLocRearOPanel, |
| eGeoLocRearPanel = eGeoLocRearOPanel, |
| eGeoLocRiser, |
| eGeoLocInsideMobileLid, |
| eGeoLocDrivebay, |
| eGeoLocHDMI, |
| eGeoLocOutsideMobileLid, |
| eGeoLocATAPI |
| } EPcxGeoLocation; |
| |
| typedef enum _EPcxGenLocation { |
| eGenLocPrimaryBox = 0, |
| eGenLocInternal, |
| eGenLocSeperate, |
| eGenLocSeparate = eGenLocSeperate, |
| eGenLocOther |
| } EPcxGenLocation; |
| |
| typedef enum _EPxcPortConnection { |
| ePortConnJack = 0, |
| ePortConnIntegratedDevice, |
| ePortConnBothIntegratedAndJack, |
| ePortConnUnknown |
| } EPxcPortConnection; |
| |
| typedef struct _KSJACK_DESCRIPTION { |
| EChannelMapping ChannelMapping; /* see note up above for EChannelMapping */ |
| COLORREF Color; |
| EPcxConnectionType ConnectionType; |
| EPcxGeoLocation GeoLocation; |
| EPcxGenLocation GenLocation; |
| EPxcPortConnection PortConnection; |
| BOOL IsConnected; |
| } KSJACK_DESCRIPTION, *PKSJACK_DESCRIPTION; |
| |
| #define SPEAKER_FRONT_LEFT 0x1 |
| #define SPEAKER_FRONT_RIGHT 0x2 |
| #define SPEAKER_FRONT_CENTER 0x4 |
| #define SPEAKER_LOW_FREQUENCY 0x8 |
| #define SPEAKER_BACK_LEFT 0x10 |
| #define SPEAKER_BACK_RIGHT 0x20 |
| #define SPEAKER_FRONT_LEFT_OF_CENTER 0x40 |
| #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80 |
| #define SPEAKER_BACK_CENTER 0x100 |
| #define SPEAKER_SIDE_LEFT 0x200 |
| #define SPEAKER_SIDE_RIGHT 0x400 |
| #define SPEAKER_TOP_CENTER 0x800 |
| #define SPEAKER_TOP_FRONT_LEFT 0x1000 |
| #define SPEAKER_TOP_FRONT_CENTER 0x2000 |
| #define SPEAKER_TOP_FRONT_RIGHT 0x4000 |
| #define SPEAKER_TOP_BACK_LEFT 0x8000 |
| #define SPEAKER_TOP_BACK_CENTER 0x10000 |
| #define SPEAKER_TOP_BACK_RIGHT 0x20000 |
| |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| |
| #if (_WIN32_WINNT >= 0x0601) |
| |
| typedef enum _KSJACK_SINK_CONNECTIONTYPE { |
| KSJACK_SINK_CONNECTIONTYPE_HDMI = 0, |
| KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT = 1 |
| } KSJACK_SINK_CONNECTIONTYPE; |
| |
| typedef struct _KSJACK_DESCRIPTION2 { |
| DWORD DeviceStateInfo; |
| DWORD JackCapabilities; |
| } KSJACK_DESCRIPTION2, *PKSJACK_DESCRIPTION2; |
| |
| #define JACKDESC2_PRESENCE_DETECT_CAPABILITY (0x00000001) |
| #define JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY (0x00000002) |
| |
| #define MAX_SINK_DESCRIPTION_NAME_LENGTH 32 |
| |
| typedef struct _KSJACK_SINK_INFORMATION { |
| KSJACK_SINK_CONNECTIONTYPE ConnType; |
| WORD ManufacturerId; |
| WORD ProductId; |
| WORD AudioLatency; |
| WINBOOL HDCPCapable; |
| WINBOOL AICapable; |
| UCHAR SinkDescriptionLength; |
| WCHAR SinkDescription [MAX_SINK_DESCRIPTION_NAME_LENGTH]; |
| LUID PortId; |
| } KSJACK_SINK_INFORMATION, *PKSJACK_SINK_INFORMATION; |
| |
| #endif /*(_WIN32_WINNT >= 0x0601)*/ |
| #endif /*__INC_DEVICETOPOLOGY__*/ |