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.

134 lines
6.0 KiB

  1. //==========================================================================;
  2. //
  3. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. // PURPOSE.
  7. //
  8. // Copyright (c) 1992 - 1996 Microsoft Corporation. All Rights Reserved.
  9. //
  10. //==========================================================================;
  11. //
  12. // This file defines interconnections between components via Mediums
  13. //
  14. #ifdef DEFINE_MEDIUMS
  15. #define MEDIUM_DECL static
  16. #else
  17. #define MEDIUM_DECL extern
  18. #endif
  19. /* -----------------------------------------------------------
  20. Topology of all devices:
  21. PinDir FilterPin# M_GUID#
  22. TVTuner
  23. TVTunerVideo out 0 0
  24. TVTunerAudio out 1 1
  25. TVTunerRadioAudio out 2 2
  26. IntermediateFreq out 3 6
  27. TVAudio
  28. TVTunerAudio in 0 1
  29. TVAudio out 1 3
  30. Crossbar
  31. TVTunerVideo in 0 0
  32. TVAudio in 5 3
  33. TVTunerRadioAudio in 6 2
  34. AnalogVideoIn out 9 4
  35. AudioOut out 10 NULL
  36. Capture
  37. AnalogVideoIn in 0 4
  38. All other pins are marked as promiscuous connections via GUID_NULL
  39. ------------------------------------------------------------------ */
  40. // Define the GUIDs which will be used to create the Mediums
  41. #define M_GUID0 0x8dad65e0, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  42. #define M_GUID1 0x8dad65e1, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  43. #define M_GUID2 0x8dad65e2, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  44. #define M_GUID3 0x8dad65e3, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  45. #define M_GUID4 0x8dad65e4, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  46. #define M_GUID5 0x8dad65e5, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  47. #define M_NOCONNECT 0x8dad65e6, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  48. #define M_NOCONNECT2 0x8dad65e7, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  49. #define M_GUID6 0x8dad65e8, 0x122b, 0x11d1, 0x90, 0x5f, 0x0, 0x0, 0xc0, 0xcc, 0x16, 0xba
  50. // Note: To allow multiple instances of the same piece of hardware,
  51. // set the first ULONG after the GUID in the Medium to a unique value.
  52. // -----------------------------------------------
  53. MEDIUM_DECL KSPIN_MEDIUM TVTunerMediums[] = {
  54. {M_GUID0, 0, 0}, // Pin 0 AnalogVideoOut
  55. {M_GUID1, 0, 0}, // Pin 1 AnalogAudioOut
  56. {M_GUID2, 0, 0}, // Pin 2 FMAudioOut
  57. {M_GUID6, 0, 0}, // Pin 3 IntermediateFreqOut
  58. };
  59. MEDIUM_DECL BOOL TVTunerPinDirection [] = {
  60. TRUE, // Output Pin 0
  61. TRUE, // Output Pin 1
  62. TRUE, // Output Pin 2
  63. TRUE, // Output Pin 3
  64. };
  65. // -----------------------------------------------
  66. MEDIUM_DECL KSPIN_MEDIUM TVAudioMediums[] = {
  67. {M_GUID1, 0, 0}, // Pin 0
  68. {M_GUID3, 0, 0}, // Pin 1
  69. };
  70. MEDIUM_DECL BOOL TVAudioPinDirection [] = {
  71. FALSE, // Input Pin 0
  72. TRUE, // Output Pin 1
  73. };
  74. // -----------------------------------------------
  75. MEDIUM_DECL KSPIN_MEDIUM CrossbarMediums[] = {
  76. {M_GUID0, 0, 0}, // Input Pin 0, KS_PhysConn_Video_Tuner,
  77. {M_NOCONNECT, 0, 0}, // Input Pin 1 KS_PhysConn_Video_Composite,
  78. {M_NOCONNECT, 0, 0}, // Input Pin 2 KS_PhysConn_Video_SVideo,
  79. {M_NOCONNECT, 0, 0}, // Input Pin 3 KS_PhysConn_Video_Tuner,
  80. {M_NOCONNECT, 0, 0}, // Input Pin 4 KS_PhysConn_Video_Composite,
  81. {M_GUID3, 0, 0}, // Input Pin 5 KS_PhysConn_Audio_Tuner,
  82. {M_GUID2, 0, 0}, // Input Pin 6 KS_PhysConn_Audio_Line,
  83. {M_NOCONNECT, 0, 0}, // Input Pin 7 KS_PhysConn_Audio_Tuner,
  84. {M_NOCONNECT, 0, 0}, // Input Pin 8 KS_PhysConn_Audio_Line,
  85. {M_GUID4, 0, 0}, // Output Pin 9 KS_PhysConn_Video_VideoDecoder,
  86. {STATIC_GUID_NULL, 0, 0}, // Output Pin 10 KS_PhysConn_Audio_AudioDecoder,
  87. };
  88. MEDIUM_DECL BOOL CrossbarPinDirection [] = {
  89. FALSE, // Input Pin 0, KS_PhysConn_Video_Tuner,
  90. FALSE, // Input Pin 1 KS_PhysConn_Video_Composite,
  91. FALSE, // Input Pin 2 KS_PhysConn_Video_SVideo,
  92. FALSE, // Input Pin 3 KS_PhysConn_Video_Tuner,
  93. FALSE, // Input Pin 4 KS_PhysConn_Video_Composite,
  94. FALSE, // Input Pin 5 KS_PhysConn_Audio_Tuner,
  95. FALSE, // Input Pin 6 KS_PhysConn_Audio_Line,
  96. FALSE, // Input Pin 7 KS_PhysConn_Audio_Tuner,
  97. FALSE, // Input Pin 8 KS_PhysConn_Audio_Line,
  98. TRUE, // Output Pin 9 KS_PhysConn_Video_VideoDecoder,
  99. TRUE, // Output Pin 10 KS_PhysConn_Audio_AudioDecoder,
  100. };
  101. // -----------------------------------------------
  102. MEDIUM_DECL KSPIN_MEDIUM CaptureMediums[] = {
  103. {STATIC_GUID_NULL, 0, 0}, // Pin 0 Capture
  104. {STATIC_GUID_NULL, 0, 0}, // Pin 1 Preview
  105. {M_GUID4, 0, 0}, // Pin 2 Analog Video In
  106. };
  107. MEDIUM_DECL BOOL CapturePinDirection [] = {
  108. TRUE, // Output Pin 0
  109. TRUE, // Output Pin 1
  110. FALSE, // Input Pin 2
  111. };