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.

1556 lines
52 KiB

  1. //------------------------------------------------------------------------------
  2. // File: BDAMedia.h
  3. //
  4. // Desc: Broadcast Driver Architecture Multimedia Definitions.
  5. //
  6. // Copyright (c) 1996 - 2000, Microsoft Corporation. All rights reserved.
  7. //------------------------------------------------------------------------------
  8. #if !defined(_KSMEDIA_)
  9. #error KSMEDIA.H must be included before BDAMEDIA.H
  10. #endif // !defined(_KSMEDIA_)
  11. #if !defined(_BDATYPES_)
  12. #error BDATYPES.H must be included before BDAMEDIA.H
  13. #endif // !defined(_BDATYPES_)
  14. #if !defined(_BDAMEDIA_)
  15. #define _BDAMEDIA_
  16. #if defined(__cplusplus)
  17. extern "C" {
  18. #endif // defined(__cplusplus)
  19. //===========================================================================
  20. //
  21. // KSProperty Set Structure Definitions for BDA
  22. //
  23. //===========================================================================
  24. typedef struct _KSP_BDA_NODE_PIN {
  25. KSPROPERTY Property;
  26. ULONG ulNodeType;
  27. ULONG ulInputPinId;
  28. ULONG ulOutputPinId;
  29. } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
  30. typedef struct _KSM_BDA_PIN
  31. {
  32. KSMETHOD Method;
  33. union
  34. {
  35. ULONG PinId;
  36. ULONG PinType;
  37. };
  38. ULONG Reserved;
  39. } KSM_BDA_PIN, * PKSM_BDA_PIN;
  40. typedef struct _KSM_BDA_PIN_PAIR
  41. {
  42. KSMETHOD Method;
  43. union
  44. {
  45. ULONG InputPinId;
  46. ULONG InputPinType;
  47. };
  48. union
  49. {
  50. ULONG OutputPinId;
  51. ULONG OutputPinType;
  52. };
  53. } KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR;
  54. typedef struct {
  55. KSP_NODE Property;
  56. ULONG EsPid;
  57. } KSP_NODE_ESPID, *PKSP_NODE_ESPID;
  58. //===========================================================================
  59. //
  60. // BDA Data Range definitions. Includes specifier definitions.
  61. //
  62. //===========================================================================
  63. // Antenna Signal Formats
  64. //
  65. typedef struct tagKS_DATARANGE_BDA_ANTENNA {
  66. KSDATARANGE DataRange;
  67. // Antenna specifier can go here if required
  68. //
  69. } KS_DATARANGE_BDA_ANTENNA, *PKS_DATARANGE_BDA_ANTENNA;
  70. // Transport Formats
  71. //
  72. typedef struct tagBDA_TRANSPORT_INFO {
  73. ULONG ulcbPhyiscalPacket; // Size, in bytes, of a physical packet
  74. // (e.g. Satellite link payload size.
  75. ULONG ulcbPhyiscalFrame; // Size, in bytes, of each physical frame
  76. // 0 indicates no HW requirement
  77. ULONG ulcbPhyiscalFrameAlignment; // Capture buffer alignment in bytes
  78. // 0 and 1 indicate no alignment requirements
  79. REFERENCE_TIME AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
  80. } BDA_TRANSPORT_INFO, *PBDA_TRANSPORT_INFO;
  81. typedef struct tagKS_DATARANGE_BDA_TRANSPORT {
  82. KSDATARANGE DataRange;
  83. BDA_TRANSPORT_INFO BdaTransportInfo;
  84. // Transport specifier can go here if required
  85. //
  86. } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT;
  87. //===========================================================================
  88. // BDA Event Guids
  89. //
  90. // These are sent by the IBroadcastEvent service on the graph.
  91. // To receive,
  92. // 0) Implement IBroadcastEvent in your receiving object - this has one Method on it: Fire()
  93. // 1) QI the graphs service provider for SID_SBroadcastEventService
  94. // for the IID_IBroadcastEvent object
  95. // 2) OR create the event service (CLSID_BroadcastEventService) if not already there
  96. // and register it
  97. // 3) QI that object for it's IConnectionPoint interface (*pCP)
  98. // 4) Advise your object on *pCP (e.g. pCP->Advise(static_cast<IBroadCastEvent*>(this), &dwCookie)
  99. // 5) Unadvise when done..
  100. // 6) Implement IBroadcastEvent::Fire(GUID gEventID)
  101. // Check for relevant event below and deal with it appropriatly...
  102. //===========================================================================
  103. // {9D7E6235-4B7D-425d-A6D1-D717C33B9C4C}
  104. #define STATIC_EVENTID_TuningChanged \
  105. 0x9d7e6235, 0x4b7d, 0x425d, 0xa6, 0xd1, 0xd7, 0x17, 0xc3, 0x3b, 0x9c, 0x4c
  106. DEFINE_GUIDSTRUCT("9D7E6235-4B7D-425d-A6D1-D717C33B9C4C", EVENTID_TuningChanged);
  107. #define EVENTID_TuningChanged DEFINE_GUIDNAMED(EVENTID_TuningChanged)
  108. // {2A65C528-2249-4070-AC16-00390CDFB2DD}
  109. #define STATIC_EVENTID_CADenialCountChanged \
  110. 0x2a65c528, 0x2249, 0x4070, 0xac, 0x16, 0x0, 0x39, 0xc, 0xdf, 0xb2, 0xdd
  111. DEFINE_GUIDSTRUCT("2A65C528-2249-4070-AC16-00390CDFB2DD", EVENTID_CADenialCountChanged);
  112. #define EVENTID_CADenialCountChanged DEFINE_GUIDNAMED(EVENTID_CADenialCountChanged)
  113. // {6D9CFAF2-702D-4b01-8DFF-6892AD20D191}
  114. #define STATIC_EVENTID_SignalStatusChanged \
  115. 0x6d9cfaf2, 0x702d, 0x4b01, 0x8d, 0xff, 0x68, 0x92, 0xad, 0x20, 0xd1, 0x91
  116. DEFINE_GUIDSTRUCT("6D9CFAF2-702D-4b01-8DFF-6892AD20D191", EVENTID_SignalStatusChanged);
  117. #define EVENTID_SignalStatusChanged DEFINE_GUIDNAMED(EVENTID_SignalStatusChanged)
  118. //===========================================================================
  119. //
  120. // BDA Stream Format GUIDs
  121. //
  122. //===========================================================================
  123. #define STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA\
  124. 0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  125. DEFINE_GUIDSTRUCT("71985F41-1CA1-11d3-9CC8-00C04F7971E0", KSDATAFORMAT_TYPE_BDA_ANTENNA);
  126. #define KSDATAFORMAT_TYPE_BDA_ANTENNA DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_ANTENNA)
  127. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT\
  128. 0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78
  129. DEFINE_GUIDSTRUCT("F4AEB342-0329-4fdd-A8FD-4AFF4926C978", KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT);
  130. #define KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT)
  131. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT\
  132. 0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0
  133. DEFINE_GUIDSTRUCT("8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0", KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT);
  134. #define KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT)
  135. #define STATIC_KSDATAFORMAT_TYPE_BDA_IF_SIGNAL\
  136. 0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58
  137. DEFINE_GUIDSTRUCT("61BE0B47-A5EB-499b-9A85-5B16C07F1258", KSDATAFORMAT_TYPE_BDA_IF_SIGNAL);
  138. #define KSDATAFORMAT_TYPE_BDA_IF_SIGNAL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL)
  139. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_SECTIONS\
  140. 0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  141. DEFINE_GUIDSTRUCT("455F176C-4B06-47CE-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPEG2_SECTIONS);
  142. #define KSDATAFORMAT_TYPE_MPEG2_SECTIONS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_SECTIONS)
  143. #define STATIC_KSDATAFORMAT_SUBTYPE_ATSC_SI\
  144. 0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33
  145. DEFINE_GUIDSTRUCT("B3C7397C-D303-414D-B33C-4ED2C9D29733", KSDATAFORMAT_SUBTYPE_ATSC_SI);
  146. #define KSDATAFORMAT_SUBTYPE_ATSC_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ATSC_SI)
  147. #define STATIC_KSDATAFORMAT_SUBTYPE_DVB_SI\
  148. 0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8
  149. DEFINE_GUIDSTRUCT("e9dd31a3-221d-4adb-8532-9af309c1a408", KSDATAFORMAT_SUBTYPE_DVB_SI);
  150. #define KSDATAFORMAT_SUBTYPE_DVB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DVB_SI)
  151. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP\
  152. 0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0
  153. DEFINE_GUIDSTRUCT("762E3F66-336F-48d1-BF83-2B00352C11F0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP);
  154. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP)
  155. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP\
  156. 0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0
  157. DEFINE_GUIDSTRUCT("951727DB-D2CE-4528-96F6-3301FABB2DE0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP);
  158. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP)
  159. //===========================================================================
  160. //
  161. // KSPinName Definitions for BDA
  162. //
  163. //===========================================================================
  164. // Pin name for a BDA transport pin
  165. //
  166. // {78216A81-CFA8-493e-9711-36A61C08BD9D}
  167. //
  168. #define STATIC_PINNAME_BDA_TRANSPORT \
  169. 0x78216a81, 0xcfa8, 0x493e, 0x97, 0x11, 0x36, 0xa6, 0x1c, 0x8, 0xbd, 0x9d
  170. DEFINE_GUIDSTRUCT("78216A81-CFA8-493e-9711-36A61C08BD9D", PINNAME_BDA_TRANSPORT);
  171. #define PINNAME_BDA_TRANSPORT DEFINE_GUIDNAMED(PINNAME_BDA_TRANSPORT)
  172. // Pin name for a BDA analog video pin
  173. //
  174. // {5C0C8281-5667-486c-8482-63E31F01A6E9}
  175. //
  176. #define STATIC_PINNAME_BDA_ANALOG_VIDEO \
  177. 0x5c0c8281, 0x5667, 0x486c, 0x84, 0x82, 0x63, 0xe3, 0x1f, 0x1, 0xa6, 0xe9
  178. DEFINE_GUIDSTRUCT("5C0C8281-5667-486c-8482-63E31F01A6E9", PINNAME_BDA_ANALOG_VIDEO);
  179. #define PINNAME_BDA_ANALOG_VIDEO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_VIDEO)
  180. // Pin name for a BDA analog audio pin
  181. //
  182. // {D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B}
  183. //
  184. #define STATIC_PINNAME_BDA_ANALOG_AUDIO \
  185. 0xd28a580a, 0x9b1f, 0x4b0c, 0x9c, 0x33, 0x9b, 0xf0, 0xa8, 0xea, 0x63, 0x6b
  186. DEFINE_GUIDSTRUCT("D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B", PINNAME_BDA_ANALOG_AUDIO);
  187. #define PINNAME_BDA_ANALOG_AUDIO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_AUDIO)
  188. // Pin name for a BDA FM Radio pin
  189. //
  190. // {D2855FED-B2D3-4eeb-9BD0-193436A2F890}
  191. //
  192. #define STATIC_PINNAME_BDA_FM_RADIO \
  193. 0xd2855fed, 0xb2d3, 0x4eeb, 0x9b, 0xd0, 0x19, 0x34, 0x36, 0xa2, 0xf8, 0x90
  194. DEFINE_GUIDSTRUCT("D2855FED-B2D3-4eeb-9BD0-193436A2F890", PINNAME_BDA_FM_RADIO);
  195. #define PINNAME_BDA_FM_RADIO DEFINE_GUIDNAMED(PINNAME_BDA_FM_RADIO)
  196. // Pin name for a BDA Intermediate Frequency pin
  197. //
  198. // {1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14}
  199. //
  200. #define STATIC_PINNAME_BDA_IF_PIN \
  201. 0x1a9d4a42, 0xf3cd, 0x48a1, 0x9a, 0xea, 0x71, 0xde, 0x13, 0x3c, 0xbe, 0x14
  202. DEFINE_GUIDSTRUCT("1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14", PINNAME_BDA_IF_PIN);
  203. #define PINNAME_BDA_IF_PIN DEFINE_GUIDNAMED(PINNAME_BDA_IF_PIN)
  204. // Pin name for a BDA Open Cable PSIP pin
  205. //
  206. // {297BB104-E5C9-4ACE-B123-95C3CBB24D4F}
  207. //
  208. #define STATIC_PINNAME_BDA_OPENCABLE_PSIP_PIN \
  209. 0x297bb104, 0xe5c9, 0x4ace, 0xb1, 0x23, 0x95, 0xc3, 0xcb, 0xb2, 0x4d, 0x4f
  210. DEFINE_GUIDSTRUCT("297BB104-E5C9-4ACE-B123-95C3CBB24D4F", PINNAME_BDA_OPENCABLE_PSIP_PIN);
  211. #define PINNAME_BDA_OPENCABLE_PSIP_PIN DEFINE_GUIDNAMED(PINNAME_BDA_OPENCABLE_PSIP_PIN)
  212. //===========================================================================
  213. //
  214. // KSProperty Set Definitions for BDA
  215. //
  216. //===========================================================================
  217. //------------------------------------------------------------
  218. //
  219. // BDA Network Ethernet Filter Property Set
  220. //
  221. // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  222. //
  223. #define STATIC_KSPROPSETID_BdaEthernetFilter \
  224. 0x71985f43, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  225. DEFINE_GUIDSTRUCT("71985F43-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaEthernetFilter);
  226. #define KSPROPSETID_BdaEthernetFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaEthernetFilter)
  227. typedef enum {
  228. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE = 0,
  229. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,
  230. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE
  231. } KSPROPERTY_BDA_ETHERNET_FILTER;
  232. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  233. DEFINE_KSPROPERTY_ITEM(\
  234. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE,\
  235. (GetHandler),\
  236. sizeof(KSPROPERTY),\
  237. sizeof(ULONG),\
  238. FALSE,\
  239. NULL, 0, NULL, NULL, 0)
  240. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  241. DEFINE_KSPROPERTY_ITEM(\
  242. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,\
  243. (GetHandler),\
  244. sizeof(KSPROPERTY),\
  245. sizeof(BDA_ETHERNET_ADDRESS_LIST),\
  246. (SetHandler),\
  247. NULL, 0, NULL, NULL, 0)
  248. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  249. DEFINE_KSPROPERTY_ITEM(\
  250. KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE,\
  251. (GetHandler),\
  252. sizeof(KSPROPERTY),\
  253. sizeof(BDA_MULTICAST_MODE),\
  254. (SetHandler),\
  255. NULL, 0, NULL, NULL, 0)
  256. //------------------------------------------------------------
  257. //
  258. // BDA Network IPv4 Filter Property Set
  259. //
  260. // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  261. //
  262. #define STATIC_KSPROPSETID_BdaIPv4Filter \
  263. 0x71985f44, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  264. DEFINE_GUIDSTRUCT("71985F44-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaIPv4Filter);
  265. #define KSPROPSETID_BdaIPv4Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv4Filter)
  266. typedef enum {
  267. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE = 0,
  268. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,
  269. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE
  270. } KSPROPERTY_BDA_IPv4_FILTER;
  271. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  272. DEFINE_KSPROPERTY_ITEM(\
  273. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE,\
  274. (GetHandler),\
  275. sizeof(KSPROPERTY),\
  276. sizeof(ULONG),\
  277. FALSE,\
  278. NULL, 0, NULL, NULL, 0)
  279. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  280. DEFINE_KSPROPERTY_ITEM(\
  281. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,\
  282. (GetHandler),\
  283. sizeof(KSPROPERTY),\
  284. sizeof(BDA_IPv4_ADDRESS_LIST),\
  285. (SetHandler),\
  286. NULL, 0, NULL, NULL, 0)
  287. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  288. DEFINE_KSPROPERTY_ITEM(\
  289. KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE,\
  290. (GetHandler),\
  291. sizeof(KSPROPERTY),\
  292. sizeof(BDA_MULTICAST_MODE),\
  293. (SetHandler),\
  294. NULL, 0, NULL, NULL, 0)
  295. //------------------------------------------------------------
  296. //
  297. // BDA Network IPv6 Filter Property Set
  298. //
  299. // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  300. //
  301. #define STATIC_KSPROPSETID_BdaIPv6Filter \
  302. 0xe1785a74, 0x2a23, 0x4fb3, 0x92, 0x45, 0xa8, 0xf8, 0x80, 0x17, 0xef, 0x33
  303. DEFINE_GUIDSTRUCT("E1785A74-2A23-4fb3-9245-A8F88017EF33", KSPROPSETID_BdaIPv6Filter);
  304. #define KSPROPSETID_BdaIPv6Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv6Filter)
  305. typedef enum {
  306. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE = 0,
  307. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,
  308. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE
  309. } KSPROPERTY_BDA_IPv6_FILTER;
  310. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  311. DEFINE_KSPROPERTY_ITEM(\
  312. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE,\
  313. (GetHandler),\
  314. sizeof(KSPROPERTY),\
  315. sizeof(ULONG),\
  316. FALSE,\
  317. NULL, 0, NULL, NULL, 0)
  318. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  319. DEFINE_KSPROPERTY_ITEM(\
  320. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,\
  321. (GetHandler),\
  322. sizeof(KSPROPERTY),\
  323. sizeof(BDA_IPv6_ADDRESS_LIST),\
  324. (SetHandler),\
  325. NULL, 0, NULL, NULL, 0)
  326. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  327. DEFINE_KSPROPERTY_ITEM(\
  328. KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE,\
  329. (GetHandler),\
  330. sizeof(KSPROPERTY),\
  331. sizeof(BDA_MULTICAST_MODE),\
  332. (SetHandler),\
  333. NULL, 0, NULL, NULL, 0)
  334. //------------------------------------------------------------
  335. //
  336. //
  337. // BDA Signal Statistics Property Set
  338. //
  339. // Used to get signal statistics from a control node or a pin.
  340. // Set NodeId == -1 to get properties from the pin.
  341. //
  342. // {1347D106-CF3A-428a-A5CB-AC0D9A2A4338}
  343. //
  344. #define STATIC_KSPROPSETID_BdaSignalStats \
  345. 0x1347d106, 0xcf3a, 0x428a, 0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38
  346. DEFINE_GUIDSTRUCT("1347D106-CF3A-428a-A5CB-AC0D9A2A4338", KSPROPSETID_BdaSignalStats);
  347. #define KSPROPSETID_BdaSignalStats DEFINE_GUIDNAMED(KSPROPSETID_BdaSignalStats)
  348. typedef enum {
  349. KSPROPERTY_BDA_SIGNAL_STRENGTH = 0,
  350. KSPROPERTY_BDA_SIGNAL_QUALITY,
  351. KSPROPERTY_BDA_SIGNAL_PRESENT,
  352. KSPROPERTY_BDA_SIGNAL_LOCKED,
  353. KSPROPERTY_BDA_SAMPLE_TIME
  354. } KSPROPERTY_BDA_SIGNAL_STATS;
  355. // OPTIONAL
  356. // Carrier strength in mDb (1/1000 of a DB).
  357. //
  358. // A strength of 0 is nominal strength as expected for the given
  359. // type of broadcast network.
  360. //
  361. // Sub-nominal strengths are reported as positive mDb
  362. //
  363. // Super-nominal strengths are reported as negative mDb
  364. //
  365. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(GetHandler, SetHandler)\
  366. DEFINE_KSPROPERTY_ITEM(\
  367. KSPROPERTY_BDA_SIGNAL_STRENGTH,\
  368. (GetHandler),\
  369. sizeof(KSP_NODE),\
  370. sizeof(LONG),\
  371. (SetHandler),\
  372. NULL, 0, NULL, NULL, 0)
  373. // OPTIONAL
  374. // Amount of data successfully extracted from the signal as a percent.
  375. //
  376. // Signal Quality is usually reported by the demodulation node and is
  377. // a representation of how much of the original data could be extracted
  378. // from the signal.
  379. //
  380. // In the case of Analog Signals, this percentage can be
  381. // computed by examining the timing of HSync and VSync as will as by
  382. // looking at information contained in HBlanking and VBlanking intervals.
  383. //
  384. // In the case of Digital Signals, this percentage can be
  385. // computed by examining packet CRCs and FEC confidence values.
  386. //
  387. // 100 percent is ideal.
  388. // 95 percent shows very little (almost unnoticable) artifacts when rendered.
  389. // 90 percent contains few enough artifacts as to be easily viewable.
  390. // 80 percent is the minimum level to be viewable.
  391. // 60 percent is the minimum level to expect data services
  392. // (including EPG) to work.
  393. // 20 percent indicates that the demodulator knows that a properly modulated
  394. // signal exists but can't produce enough data to be useful.
  395. //
  396. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(GetHandler, SetHandler)\
  397. DEFINE_KSPROPERTY_ITEM(\
  398. KSPROPERTY_BDA_SIGNAL_QUALITY,\
  399. (GetHandler),\
  400. sizeof(KSP_NODE),\
  401. sizeof(LONG),\
  402. (SetHandler),\
  403. NULL, 0, NULL, NULL, 0)
  404. // REQUIRED
  405. // True if a signal carrier is present.
  406. //
  407. // Should be returned by the RF tuner node.
  408. //
  409. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(GetHandler, SetHandler)\
  410. DEFINE_KSPROPERTY_ITEM(\
  411. KSPROPERTY_BDA_SIGNAL_PRESENT,\
  412. (GetHandler),\
  413. sizeof(KSP_NODE),\
  414. sizeof(BOOL),\
  415. (SetHandler),\
  416. NULL, 0, NULL, NULL, 0)
  417. // REQUIRED
  418. // True if the signal can be locked.
  419. //
  420. // Ususally represents PLL lock when returned by the RF Tuner Node.
  421. //
  422. // Represents Signal Quality of at least 20% when returned by the
  423. // demodulator node.
  424. //
  425. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(GetHandler, SetHandler)\
  426. DEFINE_KSPROPERTY_ITEM(\
  427. KSPROPERTY_BDA_SIGNAL_LOCKED,\
  428. (GetHandler),\
  429. sizeof(KSP_NODE),\
  430. sizeof(BOOL),\
  431. (SetHandler),\
  432. NULL, 0, NULL, NULL, 0)
  433. // OPTIONAL
  434. // Indicates the sample time overwhich signal level and quality are
  435. // averaged.
  436. //
  437. // Each time a signal statistics property is requested, the node should
  438. // report the average value for the last n milliseconds where n is the
  439. // value set by this property. If no value is set or if the driver does
  440. // not support this property, the driver should default to
  441. // 100 millisecond sample times.
  442. //
  443. // The driver may report values for the most recently completed sample
  444. // period.
  445. //
  446. #define DEFINE_KSPROPERTY_ITEM_BDA_SAMPLE_TIME(GetHandler, SetHandler)\
  447. DEFINE_KSPROPERTY_ITEM(\
  448. KSPROPERTY_BDA_SAMPLE_TIME,\
  449. (GetHandler),\
  450. sizeof(KSP_NODE),\
  451. sizeof(LONG),\
  452. (SetHandler),\
  453. NULL, 0, NULL, NULL, 0)
  454. //------------------------------------------------------------
  455. //
  456. //
  457. // BDA Change Sync Method Set
  458. //
  459. // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  460. //
  461. #define STATIC_KSMETHODSETID_BdaChangeSync \
  462. 0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  463. DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
  464. #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
  465. typedef enum {
  466. KSMETHOD_BDA_START_CHANGES = 0,
  467. KSMETHOD_BDA_CHECK_CHANGES,
  468. KSMETHOD_BDA_COMMIT_CHANGES,
  469. KSMETHOD_BDA_GET_CHANGE_STATE
  470. } KSMETHOD_BDA_CHANGE_SYNC;
  471. #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\
  472. DEFINE_KSMETHOD_ITEM(\
  473. KSMETHOD_BDA_START_CHANGES,\
  474. KSMETHOD_TYPE_NONE,\
  475. (MethodHandler),\
  476. sizeof(KSMETHOD),\
  477. 0,\
  478. SupportHandler)
  479. #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\
  480. DEFINE_KSMETHOD_ITEM(\
  481. KSMETHOD_BDA_CHECK_CHANGES,\
  482. KSMETHOD_TYPE_NONE,\
  483. (MethodHandler),\
  484. sizeof(KSMETHOD),\
  485. 0,\
  486. SupportHandler)
  487. #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\
  488. DEFINE_KSMETHOD_ITEM(\
  489. KSMETHOD_BDA_COMMIT_CHANGES,\
  490. KSMETHOD_TYPE_NONE,\
  491. (MethodHandler),\
  492. sizeof(KSMETHOD),\
  493. 0,\
  494. SupportHandler)
  495. #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\
  496. DEFINE_KSMETHOD_ITEM(\
  497. KSMETHOD_BDA_GET_CHANGE_STATE,\
  498. KSMETHOD_TYPE_READ,\
  499. (MethodHandler),\
  500. sizeof(KSMETHOD),\
  501. 0,\
  502. SupportHandler)
  503. //------------------------------------------------------------
  504. //
  505. //
  506. // BDA Device Configuration Method Set
  507. //
  508. // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  509. //
  510. #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
  511. 0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  512. DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
  513. #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
  514. typedef enum {
  515. KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
  516. KSMETHOD_BDA_DELETE_PIN_FACTORY,
  517. KSMETHOD_BDA_CREATE_TOPOLOGY
  518. } KSMETHOD_BDA_DEVICE_CONFIGURATION;
  519. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
  520. DEFINE_KSMETHOD_ITEM(\
  521. KSMETHOD_BDA_CREATE_PIN_FACTORY,\
  522. KSMETHOD_TYPE_READ,\
  523. (MethodHandler),\
  524. sizeof(KSM_BDA_PIN),\
  525. sizeof(ULONG),\
  526. SupportHandler)
  527. #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
  528. DEFINE_KSMETHOD_ITEM(\
  529. KSMETHOD_BDA_DELETE_PIN_FACTORY,\
  530. KSMETHOD_TYPE_NONE,\
  531. (MethodHandler),\
  532. sizeof(KSM_BDA_PIN),\
  533. 0,\
  534. SupportHandler)
  535. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
  536. DEFINE_KSMETHOD_ITEM(\
  537. KSMETHOD_BDA_CREATE_TOPOLOGY,\
  538. KSMETHOD_TYPE_WRITE,\
  539. (MethodHandler),\
  540. sizeof(KSM_BDA_PIN_PAIR),\
  541. 0,\
  542. SupportHandler)
  543. //------------------------------------------------------------
  544. //
  545. //
  546. // BDA Topology Property Set
  547. //
  548. // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  549. //
  550. #define STATIC_KSPROPSETID_BdaTopology \
  551. 0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  552. DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
  553. #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
  554. typedef enum {
  555. KSPROPERTY_BDA_NODE_TYPES,
  556. KSPROPERTY_BDA_PIN_TYPES,
  557. KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
  558. KSPROPERTY_BDA_NODE_METHODS,
  559. KSPROPERTY_BDA_NODE_PROPERTIES,
  560. KSPROPERTY_BDA_NODE_EVENTS,
  561. KSPROPERTY_BDA_CONTROLLING_PIN_ID,
  562. KSPROPERTY_BDA_NODE_DESCRIPTORS
  563. }KSPROPERTY_BDA_TOPOLOGY;
  564. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
  565. DEFINE_KSPROPERTY_ITEM(\
  566. KSPROPERTY_BDA_NODE_TYPES,\
  567. (GetHandler),\
  568. sizeof(KSPROPERTY),\
  569. 0,\
  570. FALSE,\
  571. NULL, 0, NULL, NULL, 0)
  572. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
  573. DEFINE_KSPROPERTY_ITEM(\
  574. KSPROPERTY_BDA_PIN_TYPES,\
  575. (GetHandler),\
  576. sizeof(KSPROPERTY),\
  577. 0,\
  578. FALSE,\
  579. NULL, 0, NULL, NULL, 0)
  580. #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
  581. DEFINE_KSPROPERTY_ITEM(\
  582. KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
  583. (GetHandler),\
  584. sizeof(KSPROPERTY),\
  585. sizeof( BDA_TEMPLATE_CONNECTION),\
  586. FALSE,\
  587. NULL, 0, NULL, NULL, 0)
  588. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
  589. DEFINE_KSPROPERTY_ITEM(\
  590. KSPROPERTY_BDA_NODE_METHODS,\
  591. (GetHandler),\
  592. sizeof(KSP_NODE),\
  593. 0,\
  594. FALSE,\
  595. NULL, 0, NULL, NULL, 0)
  596. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
  597. DEFINE_KSPROPERTY_ITEM(\
  598. KSPROPERTY_BDA_NODE_PROPERTIES,\
  599. (GetHandler),\
  600. sizeof(KSP_NODE),\
  601. 0,\
  602. FALSE,\
  603. NULL, 0, NULL, NULL, 0)
  604. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
  605. DEFINE_KSPROPERTY_ITEM(\
  606. KSPROPERTY_BDA_NODE_EVENTS,\
  607. (GetHandler),\
  608. sizeof(KSP_NODE),\
  609. 0,\
  610. FALSE,\
  611. NULL, 0, NULL, NULL, 0)
  612. #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
  613. DEFINE_KSPROPERTY_ITEM(\
  614. KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
  615. (GetHandler),\
  616. sizeof(KSP_BDA_NODE_PIN),\
  617. sizeof( ULONG),\
  618. FALSE,\
  619. NULL, 0, NULL, NULL, 0)
  620. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
  621. DEFINE_KSPROPERTY_ITEM(\
  622. KSPROPERTY_BDA_NODE_DESCRIPTORS,\
  623. (GetHandler),\
  624. sizeof(KSPROPERTY),\
  625. 0,\
  626. FALSE,\
  627. NULL, 0, NULL, NULL, 0)
  628. //------------------------------------------------------------
  629. //
  630. //
  631. // BDA Pin Control Property Set
  632. //
  633. // {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
  634. //
  635. #define STATIC_KSPROPSETID_BdaPinControl \
  636. 0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
  637. DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
  638. #define KSPROPSETID_BdaPinControl DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
  639. typedef enum {
  640. KSPROPERTY_BDA_PIN_ID = 0,
  641. KSPROPERTY_BDA_PIN_TYPE
  642. } KSPROPERTY_BDA_PIN_CONTROL;
  643. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)\
  644. DEFINE_KSPROPERTY_ITEM(\
  645. KSPROPERTY_BDA_PIN_ID,\
  646. (GetHandler),\
  647. sizeof( KSPROPERTY),\
  648. sizeof( ULONG),\
  649. FALSE,\
  650. NULL, 0, NULL, NULL, 0)
  651. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)\
  652. DEFINE_KSPROPERTY_ITEM(\
  653. KSPROPERTY_BDA_PIN_TYPE,\
  654. (GetHandler),\
  655. sizeof( KSPROPERTY),\
  656. sizeof( ULONG),\
  657. FALSE,\
  658. NULL, 0, NULL, NULL, 0)
  659. //------------------------------------------------------------
  660. //
  661. //
  662. // BDA Pin Event Set
  663. //
  664. // {104781CD-50BD-40d5-95FB-087E0E86A591}
  665. //
  666. #define STATIC_KSEVENTSETID_BdaPinEvent \
  667. 0x104781cd, 0x50bd, 0x40d5, 0x95, 0xfb, 0x08, 0x7e, 0xe, 0x86, 0xa5, 0x91
  668. DEFINE_GUIDSTRUCT("104781CD-50BD-40d5-95FB-087E0E86A591", KSEVENTSETID_BdaPinEvent);
  669. #define KSEVENTSETID_BdaPinEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaPinEvent)
  670. typedef enum {
  671. KSEVENT_BDA_PIN_CONNECTED = 0,
  672. KSEVENT_BDA_PIN_DISCONNECTED
  673. } KSPROPERTY_BDA_PIN_EVENT;
  674. #define DEFINE_KSEVENT_ITEM_BDA_PIN_CONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  675. DEFINE_KSEVENT_ITEM(\
  676. KSEVENT_BDA_PIN_CONNECTED,\
  677. sizeof( KSEVENTDATA), \
  678. 0, \
  679. (AddHandler),\
  680. (RemoveHandler),\
  681. (SupportHandler)\
  682. )
  683. #define DEFINE_KSEVENT_ITEM_BDA_PIN_DISCONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  684. DEFINE_KSEVENT_ITEM(\
  685. KSEVENT_BDA_PIN_DISCONNECTED,\
  686. sizeof( KSEVENTDATA), \
  687. 0, \
  688. (AddHandler),\
  689. (RemoveHandler),\
  690. (SupportHandler)\
  691. )
  692. //------------------------------------------------------------
  693. //
  694. //
  695. // BDA Void Transform Property Set
  696. //
  697. // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  698. //
  699. #define STATIC_KSPROPSETID_BdaVoidTransform \
  700. 0x71985f46, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  701. DEFINE_GUIDSTRUCT("71985F46-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaVoidTransform);
  702. #define KSPROPSETID_BdaVoidTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaVoidTransform)
  703. typedef enum {
  704. KSPROPERTY_BDA_VOID_TRANSFORM_START = 0,
  705. KSPROPERTY_BDA_VOID_TRANSFORM_STOP
  706. } KSPROPERTY_BDA_VOID_TRANSFORM;
  707. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_START(GetHandler, SetHandler)\
  708. DEFINE_KSPROPERTY_ITEM(\
  709. KSPROPERTY_BDA_VOID_TRANSFORM_START,\
  710. FALSE,\
  711. sizeof(KSPROPERTY),\
  712. 0,\
  713. (SetHandler),\
  714. NULL, 0, NULL, NULL, 0)
  715. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_STOP(GetHandler, SetHandler)\
  716. DEFINE_KSPROPERTY_ITEM(\
  717. KSPROPERTY_BDA_VOID_TRANSFORM_STOP,\
  718. FALSE,\
  719. sizeof(KSPROPERTY),\
  720. 0,\
  721. (SetHandler),\
  722. NULL, 0, NULL, NULL, 0)
  723. //------------------------------------------------------------
  724. //
  725. //
  726. // BDA Null Transform Property Set
  727. //
  728. // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  729. //
  730. #define STATIC_KSPROPSETID_BdaNullTransform \
  731. 0xddf15b0d, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  732. DEFINE_GUIDSTRUCT("DDF15B0D-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaNullTransform);
  733. #define KSPROPSETID_BdaNullTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaNullTransform)
  734. typedef enum {
  735. KSPROPERTY_BDA_NULL_TRANSFORM_START = 0,
  736. KSPROPERTY_BDA_NULL_TRANSFORM_STOP
  737. } KSPROPERTY_BDA_NULL_TRANSFORM;
  738. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_START(GetHandler, SetHandler)\
  739. DEFINE_KSPROPERTY_ITEM(\
  740. KSPROPERTY_BDA_NULL_TRANSFORM_START,\
  741. FALSE,\
  742. sizeof(KSPROPERTY),\
  743. 0,\
  744. (SetHandler),\
  745. NULL, 0, NULL, NULL, 0)
  746. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_STOP(GetHandler, SetHandler)\
  747. DEFINE_KSPROPERTY_ITEM(\
  748. KSPROPERTY_BDA_NULL_TRANSFORM_STOP,\
  749. FALSE,\
  750. sizeof(KSPROPERTY),\
  751. 0,\
  752. (SetHandler),\
  753. NULL, 0, NULL, NULL, 0)
  754. //------------------------------------------------------------
  755. //
  756. //
  757. // BDA Frequency Filter Property Set
  758. //
  759. // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  760. //
  761. #define STATIC_KSPROPSETID_BdaFrequencyFilter \
  762. 0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  763. DEFINE_GUIDSTRUCT("71985F47-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaFrequencyFilter);
  764. #define KSPROPSETID_BdaFrequencyFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaFrequencyFilter)
  765. typedef enum {
  766. KSPROPERTY_BDA_RF_TUNER_FREQUENCY = 0,
  767. KSPROPERTY_BDA_RF_TUNER_POLARITY,
  768. KSPROPERTY_BDA_RF_TUNER_RANGE,
  769. KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,
  770. KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,
  771. KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER
  772. } KSPROPERTY_BDA_FREQUENCY_FILTER;
  773. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY(GetHandler, SetHandler)\
  774. DEFINE_KSPROPERTY_ITEM(\
  775. KSPROPERTY_BDA_RF_TUNER_FREQUENCY,\
  776. (GetHandler),\
  777. sizeof(KSP_NODE),\
  778. sizeof(ULONG),\
  779. (SetHandler),\
  780. NULL, 0, NULL, NULL, 0)
  781. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_POLARITY(GetHandler, SetHandler)\
  782. DEFINE_KSPROPERTY_ITEM(\
  783. KSPROPERTY_BDA_RF_TUNER_POLARITY,\
  784. (GetHandler),\
  785. sizeof(KSP_NODE),\
  786. sizeof(ULONG),\
  787. (SetHandler),\
  788. NULL, 0, NULL, NULL, 0)
  789. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_RANGE(GetHandler, SetHandler)\
  790. DEFINE_KSPROPERTY_ITEM(\
  791. KSPROPERTY_BDA_RF_TUNER_RANGE,\
  792. (GetHandler),\
  793. sizeof(KSP_NODE),\
  794. sizeof(ULONG),\
  795. (SetHandler),\
  796. NULL, 0, NULL, NULL, 0)
  797. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_TRANSPONDER(GetHandler, SetHandler)\
  798. DEFINE_KSPROPERTY_ITEM(\
  799. KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,\
  800. (GetHandler),\
  801. sizeof(KSP_NODE),\
  802. sizeof(ULONG),\
  803. (SetHandler),\
  804. NULL, 0, NULL, NULL, 0)
  805. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_BANDWIDTH(GetHandler, SetHandler)\
  806. DEFINE_KSPROPERTY_ITEM(\
  807. KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,\
  808. (GetHandler),\
  809. sizeof(KSP_NODE),\
  810. sizeof(ULONG),\
  811. (SetHandler),\
  812. NULL, 0, NULL, NULL, 0)
  813. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY_MULTIPLIER(GetHandler, SetHandler)\
  814. DEFINE_KSPROPERTY_ITEM(\
  815. KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER,\
  816. (GetHandler),\
  817. sizeof(KSP_NODE),\
  818. sizeof(ULONG),\
  819. (SetHandler),\
  820. NULL, 0, NULL, NULL, 0)
  821. //------------------------------------------------------------
  822. //
  823. //
  824. // BDA LNB Info Property Set
  825. //
  826. // {992CF102-49F9-4719-A664-C4F23E2408F4}
  827. //
  828. #define STATIC_KSPROPSETID_BdaLNBInfo \
  829. 0x992cf102, 0x49f9, 0x4719, 0xa6, 0x64, 0xc4, 0xf2, 0x3e, 0x24, 0x8, 0xf4
  830. DEFINE_GUIDSTRUCT("992CF102-49F9-4719-A664-C4F23E2408F4", KSPROPSETID_BdaLNBInfo);
  831. #define KSPROPSETID_BdaLNBInfo DEFINE_GUIDNAMED(KSPROPSETID_BdaLNBInfo)
  832. typedef enum {
  833. KSPROPERTY_BDA_LNB_LOF_LOW_BAND = 0,
  834. KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,
  835. KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY
  836. } KSPROPERTY_BDA_LNB_INFO;
  837. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_LOW_BAND(GetHandler, SetHandler)\
  838. DEFINE_KSPROPERTY_ITEM(\
  839. KSPROPERTY_BDA_LNB_LOF_LOW_BAND,\
  840. (GetHandler),\
  841. sizeof(KSP_NODE),\
  842. sizeof(ULONG),\
  843. (SetHandler),\
  844. NULL, 0, NULL, NULL, 0)
  845. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_HIGH_BAND(GetHandler, SetHandler)\
  846. DEFINE_KSPROPERTY_ITEM(\
  847. KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,\
  848. (GetHandler),\
  849. sizeof(KSP_NODE),\
  850. sizeof(ULONG),\
  851. (SetHandler),\
  852. NULL, 0, NULL, NULL, 0)
  853. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_SWITCH_FREQUENCY(GetHandler, SetHandler)\
  854. DEFINE_KSPROPERTY_ITEM(\
  855. KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY,\
  856. (GetHandler),\
  857. sizeof(KSP_NODE),\
  858. sizeof(ULONG),\
  859. (SetHandler),\
  860. NULL, 0, NULL, NULL, 0)
  861. //------------------------------------------------------------
  862. //
  863. //
  864. // BDA Digital Demodulator Property Set
  865. //
  866. // {EF30F379-985B-4d10-B640-A79D5E04E1E0}
  867. //
  868. #define STATIC_KSPROPSETID_BdaDigitalDemodulator \
  869. 0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0
  870. DEFINE_GUIDSTRUCT("EF30F379-985B-4d10-B640-A79D5E04E1E0", KSPROPSETID_BdaDigitalDemodulator);
  871. #define KSPROPSETID_BdaDigitalDemodulator DEFINE_GUIDNAMED(KSPROPSETID_BdaDigitalDemodulator)
  872. typedef enum {
  873. KSPROPERTY_BDA_MODULATION_TYPE = 0,
  874. KSPROPERTY_BDA_INNER_FEC_TYPE,
  875. KSPROPERTY_BDA_INNER_FEC_RATE,
  876. KSPROPERTY_BDA_OUTER_FEC_TYPE,
  877. KSPROPERTY_BDA_OUTER_FEC_RATE,
  878. KSPROPERTY_BDA_SYMBOL_RATE,
  879. KSPROPERTY_BDA_SPECTRAL_INVERSION,
  880. KSPROPERTY_BDA_GUARD_INTERVAL,
  881. KSPROPERTY_BDA_TRANSMISSION_MODE
  882. } KSPROPERTY_BDA_DIGITAL_DEMODULATOR;
  883. #define DEFINE_KSPROPERTY_ITEM_BDA_MODULATION_TYPE(GetHandler, SetHandler)\
  884. DEFINE_KSPROPERTY_ITEM(\
  885. KSPROPERTY_BDA_MODULATION_TYPE,\
  886. (GetHandler),\
  887. sizeof(KSP_NODE),\
  888. sizeof(ModulationType),\
  889. (SetHandler),\
  890. NULL, 0, NULL, NULL, 0)
  891. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_TYPE(GetHandler, SetHandler)\
  892. DEFINE_KSPROPERTY_ITEM(\
  893. KSPROPERTY_BDA_INNER_FEC_TYPE,\
  894. (GetHandler),\
  895. sizeof(KSP_NODE),\
  896. sizeof(FECMethod),\
  897. (SetHandler),\
  898. NULL, 0, NULL, NULL, 0)
  899. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_RATE(GetHandler, SetHandler)\
  900. DEFINE_KSPROPERTY_ITEM(\
  901. KSPROPERTY_BDA_INNER_FEC_RATE,\
  902. (GetHandler),\
  903. sizeof(KSP_NODE),\
  904. sizeof(BinaryConvolutionCodeRate),\
  905. (SetHandler),\
  906. NULL, 0, NULL, NULL, 0)
  907. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_TYPE(GetHandler, SetHandler)\
  908. DEFINE_KSPROPERTY_ITEM(\
  909. KSPROPERTY_BDA_OUTER_FEC_TYPE,\
  910. (GetHandler),\
  911. sizeof(KSP_NODE),\
  912. sizeof(FECMethod),\
  913. (SetHandler),\
  914. NULL, 0, NULL, NULL, 0)
  915. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_RATE(GetHandler, SetHandler)\
  916. DEFINE_KSPROPERTY_ITEM(\
  917. KSPROPERTY_BDA_OUTER_FEC_RATE,\
  918. (GetHandler),\
  919. sizeof(KSP_NODE),\
  920. sizeof(BinaryConvolutionCodeRate),\
  921. (SetHandler),\
  922. NULL, 0, NULL, NULL, 0)
  923. #define DEFINE_KSPROPERTY_ITEM_BDA_SYMBOL_RATE(GetHandler, SetHandler)\
  924. DEFINE_KSPROPERTY_ITEM(\
  925. KSPROPERTY_BDA_SYMBOL_RATE,\
  926. (GetHandler),\
  927. sizeof(KSP_NODE),\
  928. sizeof(ULONG),\
  929. (SetHandler),\
  930. NULL, 0, NULL, NULL, 0)
  931. #define DEFINE_KSPROPERTY_ITEM_BDA_SPECTRAL_INVERSION(GetHandler, SetHandler)\
  932. DEFINE_KSPROPERTY_ITEM(\
  933. KSPROPERTY_BDA_SPECTRAL_INVERSION,\
  934. (GetHandler),\
  935. sizeof(KSP_NODE),\
  936. sizeof(SpectralInversion),\
  937. (SetHandler),\
  938. NULL, 0, NULL, NULL, 0)
  939. #define DEFINE_KSPROPERTY_ITEM_BDA_GUARD_INTERVAL(GetHandler, SetHandler)\
  940. DEFINE_KSPROPERTY_ITEM(\
  941. KSPROPERTY_BDA_GUARD_INTERVAL,\
  942. (GetHandler),\
  943. sizeof(KSP_NODE),\
  944. sizeof(GuardInterval),\
  945. (SetHandler),\
  946. NULL, 0, NULL, NULL, 0)
  947. #define DEFINE_KSPROPERTY_ITEM_BDA_TRANSMISSION_MODE(GetHandler, SetHandler)\
  948. DEFINE_KSPROPERTY_ITEM(\
  949. KSPROPERTY_BDA_TRANSMISSION_MODE,\
  950. (GetHandler),\
  951. sizeof(KSP_NODE),\
  952. sizeof(TransmissionMode),\
  953. (SetHandler),\
  954. NULL, 0, NULL, NULL, 0)
  955. //------------------------------------------------------------
  956. //
  957. //
  958. // BDA Autodemodulate Property Set
  959. //
  960. // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  961. //
  962. #define STATIC_KSPROPSETID_BdaAutodemodulate \
  963. 0xddf15b12, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  964. DEFINE_GUIDSTRUCT("DDF15B12-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaAutodemodulate);
  965. #define KSPROPSETID_BdaAutodemodulate DEFINE_GUIDNAMED(KSPROPSETID_BdaAutodemodulate)
  966. typedef enum {
  967. KSPROPERTY_BDA_AUTODEMODULATE_START = 0,
  968. KSPROPERTY_BDA_AUTODEMODULATE_STOP
  969. } KSPROPERTY_BDA_AUTODEMODULATE;
  970. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_START(GetHandler, SetHandler)\
  971. DEFINE_KSPROPERTY_ITEM(\
  972. KSPROPERTY_BDA_AUTODEMODULATE_START,\
  973. FALSE,\
  974. sizeof(KSP_NODE),\
  975. 0,\
  976. (SetHandler),\
  977. NULL, 0, NULL, NULL, 0)
  978. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_STOP(GetHandler, SetHandler)\
  979. DEFINE_KSPROPERTY_ITEM(\
  980. KSPROPERTY_BDA_AUTODEMODULATE_STOP,\
  981. FALSE,\
  982. sizeof(KSP_NODE),\
  983. 0,\
  984. (SetHandler),\
  985. NULL, 0, NULL, NULL, 0)
  986. //------------------------------------------------------------
  987. //
  988. //
  989. // BDA Table Section Property Set
  990. //
  991. // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  992. //
  993. #define STATIC_KSPROPSETID_BdaTableSection \
  994. 0x516b99c5, 0x971c, 0x4aaf, 0xb3, 0xf3, 0xd9, 0xfd, 0xa8, 0xa1, 0x5e, 0x16
  995. DEFINE_GUIDSTRUCT("516B99C5-971C-4aaf-B3F3-D9FDA8A15E16", KSPROPSETID_BdaTableSection);
  996. #define KSPROPSETID_BdaTableSection DEFINE_GUIDNAMED(KSPROPSETID_BdaTableSection)
  997. typedef enum {
  998. KSPROPERTY_BDA_TABLE_SECTION = 0,
  999. } KSPROPERTY_IDS_BDA_TABLE;
  1000. #define DEFINE_KSPROPERTY_ITEM_BDA_TABLE_SECTION(GetHandler, SetHandler)\
  1001. DEFINE_KSPROPERTY_ITEM(\
  1002. KSPROPERTY_BDA_TABLE_SECTION,\
  1003. (GetHandler),\
  1004. sizeof(KSP_NODE),\
  1005. sizeof(BDA_TABLE_SECTION),\
  1006. (SetHandler),\
  1007. NULL, 0, NULL, NULL, 0)
  1008. //------------------------------------------------------------
  1009. //
  1010. //
  1011. // BDA PID Filter Property Set
  1012. //
  1013. // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  1014. //
  1015. #define STATIC_KSPROPSETID_BdaPIDFilter \
  1016. 0xd0a67d65, 0x8df, 0x4fec, 0x85, 0x33, 0xe5, 0xb5, 0x50, 0x41, 0xb, 0x85
  1017. DEFINE_GUIDSTRUCT("D0A67D65-08DF-4fec-8533-E5B550410B85", KSPROPSETID_BdaPIDFilter);
  1018. #define KSPROPSETID_BdaPIDFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaPIDFilter)
  1019. typedef enum {
  1020. KSPROPERTY_BDA_PIDFILTER_MAP_PIDS = 0,
  1021. KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,
  1022. KSPROPERTY_BDA_PIDFILTER_LIST_PIDS
  1023. } KSPROPERTY_BDA_PIDFILTER;
  1024. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_MAP_PIDS(GetHandler, SetHandler)\
  1025. DEFINE_KSPROPERTY_ITEM(\
  1026. KSPROPERTY_BDA_PIDFILTER_MAP_PIDS,\
  1027. (GetHandler),\
  1028. sizeof(KSP_NODE),\
  1029. sizeof(BDA_PID_MAP),\
  1030. (SetHandler),\
  1031. NULL, 0, NULL, NULL, 0)
  1032. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_UNMAP_PIDS(GetHandler, SetHandler)\
  1033. DEFINE_KSPROPERTY_ITEM(\
  1034. KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,\
  1035. (GetHandler),\
  1036. sizeof(KSP_NODE),\
  1037. sizeof(BDA_PID_UNMAP),\
  1038. (SetHandler),\
  1039. NULL, 0, NULL, NULL, 0)
  1040. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_LIST_PIDS(GetHandler, SetHandler)\
  1041. DEFINE_KSPROPERTY_ITEM(\
  1042. KSPROPERTY_BDA_PIDFILTER_LIST_PIDS,\
  1043. (GetHandler),\
  1044. sizeof(KSP_NODE),\
  1045. 0,\
  1046. (SetHandler),\
  1047. NULL, 0, NULL, NULL, 0)
  1048. //------------------------------------------------------------
  1049. //
  1050. //
  1051. // BDA CA Property Set
  1052. //
  1053. // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  1054. //
  1055. #define STATIC_KSPROPSETID_BdaCA \
  1056. 0xb0693766, 0x5278, 0x4ec6, 0xb9, 0xe1, 0x3c, 0xe4, 0x5, 0x60, 0xef, 0x5a
  1057. DEFINE_GUIDSTRUCT("B0693766-5278-4ec6-B9E1-3CE40560EF5A", KSPROPSETID_BdaCA);
  1058. #define KSPROPSETID_BdaCA DEFINE_GUIDNAMED(KSPROPSETID_BdaCA)
  1059. typedef enum {
  1060. KSPROPERTY_BDA_ECM_MAP_STATUS = 0,
  1061. KSPROPERTY_BDA_CA_MODULE_STATUS,
  1062. KSPROPERTY_BDA_CA_SMART_CARD_STATUS,
  1063. KSPROPERTY_BDA_CA_MODULE_UI,
  1064. KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,
  1065. KSPROPERTY_BDA_CA_REMOVE_PROGRAM
  1066. } KSPROPERTY_BDA_CA;
  1067. #define DEFINE_KSPROPERTY_ITEM_BDA_ECM_MAP_STATUS(GetHandler, SetHandler)\
  1068. DEFINE_KSPROPERTY_ITEM(\
  1069. KSPROPERTY_BDA_ECM_MAP_STATUS,\
  1070. (GetHandler),\
  1071. sizeof(KSP_NODE),\
  1072. sizeof(ULONG),\
  1073. (SetHandler),\
  1074. NULL, 0, NULL, NULL, 0)
  1075. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_STATUS(GetHandler, SetHandler)\
  1076. DEFINE_KSPROPERTY_ITEM(\
  1077. KSPROPERTY_BDA_CA_MODULE_STATUS,\
  1078. (GetHandler),\
  1079. sizeof(KSP_NODE),\
  1080. sizeof(ULONG),\
  1081. (SetHandler),\
  1082. NULL, 0, NULL, NULL, 0)
  1083. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SMART_CARD_STATUS(GetHandler, SetHandler)\
  1084. DEFINE_KSPROPERTY_ITEM(\
  1085. KSPROPERTY_BDA_CA_SMART_CARD_STATUS,\
  1086. (GetHandler),\
  1087. sizeof(KSP_NODE),\
  1088. sizeof(ULONG),\
  1089. (SetHandler),\
  1090. NULL, 0, NULL, NULL, 0)
  1091. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_UI(GetHandler, SetHandler)\
  1092. DEFINE_KSPROPERTY_ITEM(\
  1093. KSPROPERTY_BDA_CA_MODULE_UI,\
  1094. (GetHandler),\
  1095. sizeof(KSP_NODE),\
  1096. sizeof(BDA_CA_MODULE_UI),\
  1097. (SetHandler),\
  1098. NULL, 0, NULL, NULL, 0)
  1099. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SET_PROGRAM_PIDS(GetHandler, SetHandler)\
  1100. DEFINE_KSPROPERTY_ITEM(\
  1101. KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,\
  1102. (GetHandler),\
  1103. sizeof(KSP_NODE),\
  1104. sizeof(BDA_PROGRAM_PID_LIST),\
  1105. (SetHandler),\
  1106. NULL, 0, NULL, NULL, 0)
  1107. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_REMOVE_PROGRAM(GetHandler, SetHandler)\
  1108. DEFINE_KSPROPERTY_ITEM(\
  1109. KSPROPERTY_BDA_CA_REMOVE_PROGRAM,\
  1110. (GetHandler),\
  1111. sizeof(KSP_NODE),\
  1112. sizeof(ULONG),\
  1113. (SetHandler),\
  1114. NULL, 0, NULL, NULL, 0)
  1115. //------------------------------------------------------------
  1116. //
  1117. //
  1118. // BDA CA Event Set
  1119. //
  1120. // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  1121. //
  1122. #define STATIC_KSEVENTSETID_BdaCAEvent \
  1123. 0x488c4ccc, 0xb768, 0x4129, 0x8e, 0xb1, 0xb0, 0xa, 0x7, 0x1f, 0x90, 0x68
  1124. DEFINE_GUIDSTRUCT("488C4CCC-B768-4129-8EB1-B00A071F9068", KSEVENTSETID_BdaCAEvent);
  1125. #define KSEVENTSETID_BdaCAEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaCAEvent)
  1126. typedef enum {
  1127. KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED = 0,
  1128. KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,
  1129. KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,
  1130. KSEVENT_BDA_CA_MODULE_UI_REQUESTED
  1131. } KSPROPERTY_BDA_CA_EVENT;
  1132. #define DEFINE_KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1133. DEFINE_KSEVENT_ITEM(\
  1134. KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED,\
  1135. sizeof( KSEVENTDATA), \
  1136. 0, \
  1137. (AddHandler),\
  1138. (RemoveHandler),\
  1139. (SupportHandler)\
  1140. )
  1141. #define DEFINE_KSEVENT_BDA_CA_MODULE_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1142. DEFINE_KSEVENT_ITEM(\
  1143. KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,\
  1144. sizeof( KSEVENTDATA), \
  1145. 0, \
  1146. (AddHandler),\
  1147. (RemoveHandler),\
  1148. (SupportHandler)\
  1149. )
  1150. #define DEFINE_KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1151. DEFINE_KSEVENT_ITEM(\
  1152. KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,\
  1153. sizeof( KSEVENTDATA), \
  1154. 0, \
  1155. (AddHandler),\
  1156. (RemoveHandler),\
  1157. (SupportHandler)\
  1158. )
  1159. #define DEFINE_KSEVENT_BDA_CA_MODULE_UI_REQUESTED(AddHandler, RemoveHandler, SupportHandler)\
  1160. DEFINE_KSEVENT_ITEM(\
  1161. KSEVENT_BDA_CA_MODULE_UI_REQUESTED,\
  1162. sizeof( KSEVENTDATA), \
  1163. 0, \
  1164. (AddHandler),\
  1165. (RemoveHandler),\
  1166. (SupportHandler)\
  1167. )
  1168. //===========================================================================
  1169. //
  1170. // BDA Filter Categories
  1171. //
  1172. //===========================================================================
  1173. #define STATIC_KSCATEGORY_BDA_RECEIVER_COMPONENT \
  1174. 0xFD0A5AF4, 0xB41D, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1175. DEFINE_GUIDSTRUCT("FD0A5AF4-B41D-11d2-9C95-00C04F7971E0", KSCATEGORY_BDA_RECEIVER_COMPONENT);
  1176. #define KSCATEGORY_BDA_RECEIVER_COMPONENT DEFINE_GUIDNAMED(KSCATEGORY_BDA_RECEIVER_COMPONENT)
  1177. #define STATIC_KSCATEGORY_BDA_NETWORK_TUNER \
  1178. 0x71985f48, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1179. DEFINE_GUIDSTRUCT("71985F48-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_TUNER);
  1180. #define KSCATEGORY_BDA_NETWORK_TUNER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_TUNER)
  1181. #define STATIC_KSCATEGORY_BDA_NETWORK_EPG \
  1182. 0x71985f49, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1183. DEFINE_GUIDSTRUCT("71985F49-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_EPG);
  1184. #define KSCATEGORY_BDA_NETWORK_EPG DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_EPG)
  1185. #define STATIC_KSCATEGORY_BDA_IP_SINK \
  1186. 0x71985f4aL, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1187. DEFINE_GUIDSTRUCT("71985F4A-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_IP_SINK);
  1188. #define KSCATEGORY_IP_SINK DEFINE_GUIDNAMED(KSCATEGORY_BDA_IP_SINK)
  1189. #define STATIC_KSCATEGORY_BDA_NETWORK_PROVIDER \
  1190. 0x71985f4b, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1191. DEFINE_GUIDSTRUCT("71985F4B-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_PROVIDER);
  1192. #define KSCATEGORY_BDA_NETWORK_PROVIDER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_PROVIDER)
  1193. // {A2E3074F-6C3D-11d3-B653-00C04F79498E}
  1194. #define STATIC_KSCATEGORY_BDA_TRANSPORT_INFORMATION \
  1195. 0xa2e3074f, 0x6c3d, 0x11d3, 0xb6, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0x49, 0x8e
  1196. DEFINE_GUIDSTRUCT("A2E3074F-6C3D-11d3-B653-00C04F79498E", KSCATEGORY_BDA_TRANSPORT_INFORMATION);
  1197. #define KSCATEGORY_BDA_TRANSPORT_INFORMATION DEFINE_GUIDNAMED(KSCATEGORY_BDA_TRANSPORT_INFORMATION)
  1198. //===========================================================================
  1199. //
  1200. // BDA Node Categories
  1201. //
  1202. //===========================================================================
  1203. #define STATIC_KSNODE_BDA_RF_TUNER \
  1204. 0x71985f4c, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1205. DEFINE_GUIDSTRUCT("71985F4C-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_RF_TUNER);
  1206. #define KSNODE_BDA_RF_TUNER DEFINE_GUIDNAMED(KSNODE_BDA_RF_TUNER)
  1207. #define STATIC_KSNODE_BDA_QAM_DEMODULATOR \
  1208. 0x71985f4d, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1209. DEFINE_GUIDSTRUCT("71985F4D-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_QAM_DEMODULATOR);
  1210. #define KSNODE_BDA_QAM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QAM_DEMODULATOR)
  1211. #define STATIC_KSNODE_BDA_QPSK_DEMODULATOR \
  1212. 0x6390c905, 0x27c1, 0x4d67, 0xbd, 0xb7, 0x77, 0xc5, 0xd, 0x7, 0x93, 0x0
  1213. DEFINE_GUIDSTRUCT("6390C905-27C1-4d67-BDB7-77C50D079300", KSNODE_BDA_QPSK_DEMODULATOR);
  1214. #define KSNODE_BDA_QPSK_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QPSK_DEMODULATOR)
  1215. #define STATIC_KSNODE_BDA_8VSB_DEMODULATOR \
  1216. 0x71985f4f, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1217. DEFINE_GUIDSTRUCT("71985F4F-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_8VSB_DEMODULATOR);
  1218. #define KSNODE_BDA_8VSB_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_8VSB_DEMODULATOR)
  1219. #define STATIC_KSNODE_BDA_COFDM_DEMODULATOR \
  1220. 0x2dac6e05, 0xedbe, 0x4b9c, 0xb3, 0x87, 0x1b, 0x6f, 0xad, 0x7d, 0x64, 0x95
  1221. DEFINE_GUIDSTRUCT("2DAC6E05-EDBE-4b9c-B387-1B6FAD7D6495", KSNODE_BDA_COFDM_DEMODULATOR);
  1222. #define KSNODE_BDA_COFDM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_COFDM_DEMODULATOR)
  1223. #define STATIC_KSNODE_BDA_OPENCABLE_POD \
  1224. 0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1225. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_OPENCABLE_POD);
  1226. #define KSNODE_BDA_OPENCABLE_POD DEFINE_GUIDNAMED(KSNODE_BDA_OPENCABLE_POD)
  1227. #define STATIC_KSNODE_BDA_COMMON_CA_POD \
  1228. 0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1229. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_COMMON_CA_POD);
  1230. #define KSNODE_BDA_COMMON_CA_POD DEFINE_GUIDNAMED(KSNODE_BDA_COMMON_CA_POD)
  1231. #define STATIC_KSNODE_BDA_PID_FILTER \
  1232. 0xf5412789, 0xb0a0, 0x44e1, 0xae, 0x4f, 0xee, 0x99, 0x9b, 0x1b, 0x7f, 0xbe
  1233. DEFINE_GUIDSTRUCT("F5412789-B0A0-44e1-AE4F-EE999B1B7FBE", KSNODE_BDA_PID_FILTER);
  1234. #define KSNODE_BDA_PID_FILTER DEFINE_GUIDNAMED(KSNODE_BDA_PID_FILTER)
  1235. #define STATIC_KSNODE_BDA_IP_SINK \
  1236. 0x71985f4e, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1237. DEFINE_GUIDSTRUCT("71985F4E-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_IP_SINK);
  1238. #define KSNODE_IP_SINK DEFINE_GUIDNAMED(KSNODE_BDA_IP_SINK)
  1239. //===========================================================================
  1240. //
  1241. // IPSink PINNAME GUID
  1242. //
  1243. //===========================================================================
  1244. #define STATIC_PINNAME_IPSINK_INPUT \
  1245. 0x3fdffa70L, 0xac9a, 0x11d2, 0x8f, 0x17, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1246. DEFINE_GUIDSTRUCT("3fdffa70-ac9a-11d2-8f17-00c04f7971e2", PINNAME_IPSINK_INPUT);
  1247. #define PINNAME_IPSINK_INPUT DEFINE_GUIDNAMED(PINNAME_IPSINK_INPUT)
  1248. //===========================================================================
  1249. //
  1250. // BDA IPSink Categories/Types
  1251. //
  1252. //===========================================================================
  1253. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP\
  1254. 0xe25f7b8e, 0xcccc, 0x11d2, 0x8f, 0x25, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1255. DEFINE_GUIDSTRUCT("e25f7b8e-cccc-11d2-8f25-00c04f7971e2", KSDATAFORMAT_TYPE_BDA_IP);
  1256. #define KSDATAFORMAT_TYPE_BDA_IP DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP)
  1257. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP\
  1258. 0x5a9a213c, 0xdb08, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1259. DEFINE_GUIDSTRUCT("5a9a213c-db08-11d2-8f32-00c04f7971e2", KSDATAFORMAT_SUBTYPE_BDA_IP);
  1260. #define KSDATAFORMAT_SUBTYPE_BDA_IP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP)
  1261. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_IP\
  1262. 0x6b891420, 0xdb09, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1263. DEFINE_GUIDSTRUCT("6B891420-DB09-11d2-8F32-00C04F7971E2", KSDATAFORMAT_SPECIFIER_BDA_IP);
  1264. #define KSDATAFORMAT_SPECIFIER_BDA_IP DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_IP)
  1265. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP_CONTROL\
  1266. 0xdadd5799, 0x7d5b, 0x4b63, 0x80, 0xfb, 0xd1, 0x44, 0x2f, 0x26, 0xb6, 0x21
  1267. DEFINE_GUIDSTRUCT("DADD5799-7D5B-4b63-80FB-D1442F26B621", KSDATAFORMAT_TYPE_BDA_IP_CONTROL);
  1268. #define KSDATAFORMAT_TYPE_BDA_IP_CONTROL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP_CONTROL)
  1269. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL\
  1270. 0x499856e8, 0xe85b, 0x48ed, 0x9b, 0xea, 0x41, 0xd, 0xd, 0xd4, 0xef, 0x81
  1271. DEFINE_GUIDSTRUCT("499856E8-E85B-48ed-9BEA-410D0DD4EF81", KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL);
  1272. #define KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL)
  1273. //===========================================================================
  1274. //
  1275. // MPE PINNAME GUID
  1276. //
  1277. //===========================================================================
  1278. #define STATIC_PINNAME_MPE \
  1279. 0xc1b06d73L, 0x1dbb, 0x11d3, 0x8f, 0x46, 0x00, 0xC0, 0x4f, 0x79, 0x71, 0xE2
  1280. DEFINE_GUIDSTRUCT("C1B06D73-1DBB-11d3-8F46-00C04F7971E2", PINNAME_MPE);
  1281. #define PINNAME_MPE DEFINE_GUIDNAMED(PINNAME_MPE)
  1282. /////////////////////////////////////////////////////////////
  1283. //
  1284. // BDA MPE Categories/Types
  1285. //
  1286. #define STATIC_KSDATAFORMAT_TYPE_MPE \
  1287. 0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  1288. DEFINE_GUIDSTRUCT("455F176C-4B06-47ce-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPE);
  1289. #define KSDATAFORMAT_TYPE_MPE DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPE)
  1290. #if defined(__cplusplus)
  1291. }
  1292. #endif // defined(__cplusplus)
  1293. #endif // !defined(_BDAMEDIA_)