Source code of Windows XP (NT5)
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.

206 lines
5.2 KiB

  1. /*++
  2. Copyright (c) 1997-2000 Microsoft Corporation All Rights Reserved
  3. Module Name:
  4. wavtable.h
  5. Abstract:
  6. Declaration of wave miniport tables.
  7. --*/
  8. #ifndef _MSVAD_WAVTABLE_H_
  9. #define _MSVAD_WAVTABLE_H_
  10. //=============================================================================
  11. static
  12. KSDATARANGE_AUDIO PinDataRangesStream[] =
  13. {
  14. {
  15. {
  16. sizeof(KSDATARANGE_AUDIO),
  17. 0,
  18. 0,
  19. 0,
  20. STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
  21. STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
  22. STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
  23. },
  24. MAX_CHANNELS_PCM,
  25. MIN_BITS_PER_SAMPLE_PCM,
  26. MAX_BITS_PER_SAMPLE_PCM,
  27. MIN_SAMPLE_RATE,
  28. MAX_SAMPLE_RATE
  29. },
  30. };
  31. static
  32. PKSDATARANGE PinDataRangePointersStream[] =
  33. {
  34. PKSDATARANGE(&PinDataRangesStream[0])
  35. };
  36. //=============================================================================
  37. static
  38. KSDATARANGE PinDataRangesBridge[] =
  39. {
  40. {
  41. sizeof(KSDATARANGE),
  42. 0,
  43. 0,
  44. 0,
  45. STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
  46. STATICGUIDOF(KSDATAFORMAT_SUBTYPE_ANALOG),
  47. STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE)
  48. }
  49. };
  50. static
  51. PKSDATARANGE PinDataRangePointersBridge[] =
  52. {
  53. &PinDataRangesBridge[0]
  54. };
  55. //=============================================================================
  56. static
  57. PCPIN_DESCRIPTOR MiniportPins[] =
  58. {
  59. // Wave In Streaming Pin (Capture) KSPIN_WAVE_CAPTURE_SINK
  60. {
  61. MAX_OUTPUT_STREAMS,
  62. MAX_OUTPUT_STREAMS,
  63. 0,
  64. NULL,
  65. {
  66. 0,
  67. NULL,
  68. 0,
  69. NULL,
  70. SIZEOF_ARRAY(PinDataRangePointersStream),
  71. PinDataRangePointersStream,
  72. KSPIN_DATAFLOW_OUT,
  73. KSPIN_COMMUNICATION_SINK,
  74. &KSCATEGORY_AUDIO,
  75. &KSAUDFNAME_RECORDING_CONTROL,
  76. 0
  77. }
  78. },
  79. // Wave In Bridge Pin (Capture - From Topology) KSPIN_WAVE_CAPTURE_SOURCE
  80. {
  81. 0,
  82. 0,
  83. 0,
  84. NULL,
  85. {
  86. 0,
  87. NULL,
  88. 0,
  89. NULL,
  90. SIZEOF_ARRAY(PinDataRangePointersBridge),
  91. PinDataRangePointersBridge,
  92. KSPIN_DATAFLOW_IN,
  93. KSPIN_COMMUNICATION_NONE,
  94. &KSCATEGORY_AUDIO,
  95. NULL,
  96. 0
  97. }
  98. },
  99. // Wave Out Streaming Pin (Renderer) KSPIN_WAVE_RENDER_SINK
  100. {
  101. MAX_INPUT_STREAMS,
  102. MAX_INPUT_STREAMS,
  103. 0,
  104. NULL,
  105. {
  106. 0,
  107. NULL,
  108. 0,
  109. NULL,
  110. SIZEOF_ARRAY(PinDataRangePointersStream),
  111. PinDataRangePointersStream,
  112. KSPIN_DATAFLOW_IN,
  113. KSPIN_COMMUNICATION_SINK,
  114. &KSCATEGORY_AUDIO,
  115. &KSAUDFNAME_VOLUME_CONTROL,
  116. 0
  117. }
  118. },
  119. // Wave Out Bridge Pin (Renderer) KSPIN_WAVE_RENDER_SOURCE
  120. {
  121. 0,
  122. 0,
  123. 0,
  124. NULL,
  125. {
  126. 0,
  127. NULL,
  128. 0,
  129. NULL,
  130. SIZEOF_ARRAY(PinDataRangePointersBridge),
  131. PinDataRangePointersBridge,
  132. KSPIN_DATAFLOW_OUT,
  133. KSPIN_COMMUNICATION_NONE,
  134. &KSCATEGORY_AUDIO,
  135. NULL,
  136. 0
  137. }
  138. },
  139. };
  140. //=============================================================================
  141. static
  142. PCNODE_DESCRIPTOR MiniportNodes[] =
  143. {
  144. // KSNODE_WAVE_ADC
  145. {
  146. 0, // Flags
  147. NULL, // AutomationTable
  148. &KSNODETYPE_ADC, // Type
  149. NULL // Name
  150. },
  151. // KSNODE_WAVE_DAC
  152. {
  153. 0, // Flags
  154. NULL, // AutomationTable
  155. &KSNODETYPE_DAC, // Type
  156. NULL // Name
  157. }
  158. };
  159. //=============================================================================
  160. static
  161. PCCONNECTION_DESCRIPTOR MiniportConnections[] =
  162. {
  163. { PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SOURCE, KSNODE_WAVE_ADC, 1 },
  164. { KSNODE_WAVE_ADC, 0, PCFILTER_NODE, KSPIN_WAVE_CAPTURE_SINK },
  165. { PCFILTER_NODE, KSPIN_WAVE_RENDER_SINK, KSNODE_WAVE_DAC, 1 },
  166. { KSNODE_WAVE_DAC, 0, PCFILTER_NODE, KSPIN_WAVE_RENDER_SOURCE },
  167. };
  168. //=============================================================================
  169. static
  170. PCFILTER_DESCRIPTOR MiniportFilterDescriptor =
  171. {
  172. 0, // Version
  173. NULL, // AutomationTable
  174. sizeof(PCPIN_DESCRIPTOR), // PinSize
  175. SIZEOF_ARRAY(MiniportPins), // PinCount
  176. MiniportPins, // Pins
  177. sizeof(PCNODE_DESCRIPTOR), // NodeSize
  178. SIZEOF_ARRAY(MiniportNodes), // NodeCount
  179. MiniportNodes, // Nodes
  180. SIZEOF_ARRAY(MiniportConnections), // ConnectionCount
  181. MiniportConnections, // Connections
  182. 0, // CategoryCount
  183. NULL // Categories - NULL->use defaults (AUDIO RENDER CAPTURE)
  184. };
  185. #endif