Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.3 KiB

  1. //==========================================================================;
  2. //
  3. // WDMXBar.H
  4. // WDM Analog/Video CrossBar MiniDriver.
  5. // CWDMAVXBar Class definition.
  6. // Copyright (c) 1996 - 1997 ATI Technologies Inc. All Rights Reserved.
  7. //
  8. //==========================================================================;
  9. #ifndef _WDMXBAR_H_
  10. #define _WDMXBAR_H_
  11. #include "i2script.h"
  12. #include "aticonfg.h"
  13. #define KSPROPERTIES_AVXBAR_NUMBER_SET 1 // CrossBar with no TVAudio
  14. #define KSPROPERTIES_AVXBAR_NUMBER_CROSSBAR ( KSPROPERTY_CROSSBAR_ROUTE + 1)
  15. typedef struct
  16. {
  17. UINT AudioVideoPinType;
  18. ULONG nRelatedPinNumber; // for all pins
  19. ULONG nConnectedToPin; // for output pins only
  20. PKSPIN_MEDIUM pMedium; // describes hardware connectivity
  21. } XBAR_PIN_INFORMATION, * PXBAR_PIN_INFORMATION;
  22. class CWDMAVXBar
  23. {
  24. public:
  25. CWDMAVXBar ( PPORT_CONFIGURATION_INFORMATION pConfigInfo, CI2CScript * pCScript, PUINT puiError);
  26. ~CWDMAVXBar ();
  27. PVOID operator new ( size_t size_t, PVOID pAllocation);
  28. // Attributes
  29. private:
  30. // WDM global topology headers
  31. GUID m_wdmAVXBarTopologyCategory;
  32. KSTOPOLOGY m_wdmAVXBarTopology;
  33. // WDM global property headers
  34. KSPROPERTY_ITEM m_wdmAVXBarPropertiesCrossBar[KSPROPERTIES_AVXBAR_NUMBER_CROSSBAR];
  35. KSPROPERTY_SET m_wdmAVXBarPropertySet[KSPROPERTIES_AVXBAR_NUMBER_SET];
  36. // WDM global stream headers
  37. HW_STREAM_HEADER m_wdmAVXBarStreamHeader;
  38. // configuration properties
  39. CATIHwConfiguration m_CATIConfiguration;
  40. ULONG m_nNumberOfVideoInputs;
  41. ULONG m_nNumberOfVideoOutputs;
  42. ULONG m_nNumberOfAudioInputs;
  43. ULONG m_nNumberOfAudioOutputs;
  44. // power management configuration
  45. DEVICE_POWER_STATE m_ulPowerState;
  46. // pins information
  47. PKSPIN_MEDIUM m_pXBarPinsMediumInfo;
  48. PBOOL m_pXBarPinsDirectionInfo;
  49. PXBAR_PIN_INFORMATION m_pXBarInputPinsInfo;
  50. PXBAR_PIN_INFORMATION m_pXBarOutputPinsInfo;
  51. // I2C provider properties
  52. CI2CScript * m_pI2CScript;
  53. // Implementation
  54. public:
  55. BOOL AdapterUnInitialize ( PHW_STREAM_REQUEST_BLOCK pSrb);
  56. BOOL AdapterGetStreamInfo ( PHW_STREAM_REQUEST_BLOCK pSrb);
  57. BOOL AdapterQueryUnload ( PHW_STREAM_REQUEST_BLOCK pSrb);
  58. BOOL AdapterGetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
  59. BOOL AdapterSetProperty ( PHW_STREAM_REQUEST_BLOCK pSrb);
  60. NTSTATUS AdapterCompleteInitialization ( PHW_STREAM_REQUEST_BLOCK pSrb);
  61. NTSTATUS AdapterSetPowerState ( PHW_STREAM_REQUEST_BLOCK pSrb);
  62. // the functions for asynchronous operations completion
  63. void UpdateAudioConnectionAfterChange( void);
  64. private:
  65. void SetWDMAVXBarKSProperties ( void);
  66. void SetWDMAVXBarKSTopology ( void);
  67. };
  68. #endif // _WDMXBAR_H_