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.

849 lines
34 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. // Property set for the Video Crossbar
  13. // ------------------------------------------------------------------------
  14. DEFINE_KSPROPERTY_TABLE(XBarProperties)
  15. {
  16. DEFINE_KSPROPERTY_ITEM
  17. (
  18. KSPROPERTY_CROSSBAR_CAPS,
  19. TRUE, // GetSupported or Handler
  20. sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinProperty
  21. sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinData
  22. FALSE, // SetSupported or Handler
  23. NULL, // Values
  24. 0, // RelationsCount
  25. NULL, // Relations
  26. NULL, // SupportHandler
  27. 0 // SerializedSize
  28. ),
  29. DEFINE_KSPROPERTY_ITEM
  30. (
  31. KSPROPERTY_CROSSBAR_CAN_ROUTE,
  32. TRUE, // GetSupported or Handler
  33. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty
  34. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData
  35. FALSE, // SetSupported or Handler
  36. NULL, // Values
  37. 0, // RelationsCount
  38. NULL, // Relations
  39. NULL, // SupportHandler
  40. 0 // SerializedSize
  41. ),
  42. DEFINE_KSPROPERTY_ITEM
  43. (
  44. KSPROPERTY_CROSSBAR_ROUTE,
  45. TRUE, // GetSupported or Handler
  46. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty
  47. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData
  48. TRUE, // SetSupported or Handler
  49. NULL, // Values
  50. 0, // RelationsCount
  51. NULL, // Relations
  52. NULL, // SupportHandler
  53. 0 // SerializedSize
  54. ),
  55. DEFINE_KSPROPERTY_ITEM
  56. (
  57. KSPROPERTY_CROSSBAR_PININFO,
  58. TRUE, // GetSupported or Handler
  59. sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinProperty
  60. sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinData
  61. FALSE, // SetSupported or Handler
  62. NULL, // Values
  63. 0, // RelationsCount
  64. NULL, // Relations
  65. NULL, // SupportHandler
  66. 0 // SerializedSize
  67. ),
  68. };
  69. // ------------------------------------------------------------------------
  70. // Property set for the TVTuner
  71. // ------------------------------------------------------------------------
  72. DEFINE_KSPROPERTY_TABLE(TVTunerProperties)
  73. {
  74. DEFINE_KSPROPERTY_ITEM
  75. (
  76. KSPROPERTY_TUNER_CAPS,
  77. TRUE, // GetSupported or Handler
  78. sizeof(KSPROPERTY_TUNER_CAPS_S), // MinProperty
  79. sizeof(KSPROPERTY_TUNER_CAPS_S), // MinData
  80. FALSE, // SetSupported or Handler
  81. NULL, // Values
  82. 0, // RelationsCount
  83. NULL, // Relations
  84. NULL, // SupportHandler
  85. 0 // SerializedSize
  86. ),
  87. DEFINE_KSPROPERTY_ITEM
  88. (
  89. KSPROPERTY_TUNER_MODE,
  90. TRUE, // GetSupported or Handler
  91. sizeof(KSPROPERTY_TUNER_MODE_S), // MinProperty
  92. sizeof(KSPROPERTY_TUNER_MODE_S), // MinData
  93. TRUE, // SetSupported or Handler
  94. NULL, // Values
  95. 0, // RelationsCount
  96. NULL, // Relations
  97. NULL, // SupportHandler
  98. 0 // SerializedSize
  99. ),
  100. DEFINE_KSPROPERTY_ITEM
  101. (
  102. KSPROPERTY_TUNER_MODE_CAPS,
  103. TRUE, // GetSupported or Handler
  104. sizeof(KSPROPERTY_TUNER_MODE_CAPS_S), // MinProperty
  105. sizeof(KSPROPERTY_TUNER_MODE_CAPS_S), // MinData
  106. FALSE, // SetSupported or Handler
  107. NULL, // Values
  108. 0, // RelationsCount
  109. NULL, // Relations
  110. NULL, // SupportHandler
  111. 0 // SerializedSize
  112. ),
  113. DEFINE_KSPROPERTY_ITEM
  114. (
  115. KSPROPERTY_TUNER_STANDARD,
  116. TRUE, // GetSupported or Handler
  117. sizeof(KSPROPERTY_TUNER_STANDARD_S), // MinProperty
  118. sizeof(KSPROPERTY_TUNER_STANDARD_S), // MinData
  119. TRUE, // SetSupported or Handler
  120. NULL, // Values
  121. 0, // RelationsCount
  122. NULL, // Relations
  123. NULL, // SupportHandler
  124. 0 // SerializedSize
  125. ),
  126. DEFINE_KSPROPERTY_ITEM
  127. (
  128. KSPROPERTY_TUNER_FREQUENCY,
  129. FALSE, // GetSupported or Handler
  130. sizeof(KSPROPERTY_TUNER_FREQUENCY_S), // MinProperty
  131. sizeof(KSPROPERTY_TUNER_FREQUENCY_S), // MinData
  132. TRUE, // SetSupported or Handler
  133. NULL, // Values
  134. 0, // RelationsCount
  135. NULL, // Relations
  136. NULL, // SupportHandler
  137. 0 // SerializedSize
  138. ),
  139. DEFINE_KSPROPERTY_ITEM
  140. (
  141. KSPROPERTY_TUNER_INPUT,
  142. TRUE, // GetSupported or Handler
  143. sizeof(KSPROPERTY_TUNER_INPUT_S), // MinProperty
  144. sizeof(KSPROPERTY_TUNER_INPUT_S), // MinData
  145. TRUE, // SetSupported or Handler
  146. NULL, // Values
  147. 0, // RelationsCount
  148. NULL, // Relations
  149. NULL, // SupportHandler
  150. 0 // SerializedSize
  151. ),
  152. DEFINE_KSPROPERTY_ITEM
  153. (
  154. KSPROPERTY_TUNER_STATUS,
  155. TRUE, // GetSupported or Handler
  156. sizeof(KSPROPERTY_TUNER_STATUS_S), // MinProperty
  157. sizeof(KSPROPERTY_TUNER_STATUS_S), // MinData
  158. FALSE, // SetSupported or Handler
  159. NULL, // Values
  160. 0, // RelationsCount
  161. NULL, // Relations
  162. NULL, // SupportHandler
  163. 0 // SerializedSize
  164. ),
  165. DEFINE_KSPROPERTY_ITEM
  166. (
  167. KSPROPERTY_TUNER_IF_MEDIUM,
  168. TRUE, // GetSupported or Handler
  169. sizeof(KSPROPERTY_TUNER_IF_MEDIUM_S), // MinProperty
  170. sizeof(KSPROPERTY_TUNER_IF_MEDIUM_S), // MinData
  171. FALSE, // SetSupported or Handler
  172. NULL, // Values
  173. 0, // RelationsCount
  174. NULL, // Relations
  175. NULL, // SupportHandler
  176. 0 // SerializedSize
  177. )
  178. };
  179. // ------------------------------------------------------------------------
  180. // Property set for the TVAudio
  181. // ------------------------------------------------------------------------
  182. DEFINE_KSPROPERTY_TABLE(TVAudioProperties)
  183. {
  184. DEFINE_KSPROPERTY_ITEM
  185. (
  186. KSPROPERTY_TVAUDIO_CAPS,
  187. TRUE, // GetSupported or Handler
  188. sizeof(KSPROPERTY_TVAUDIO_CAPS_S), // MinProperty
  189. sizeof(KSPROPERTY_TVAUDIO_CAPS_S), // MinData
  190. FALSE, // SetSupported or Handler
  191. NULL, // Values
  192. 0, // RelationsCount
  193. NULL, // Relations
  194. NULL, // SupportHandler
  195. 0 // SerializedSize
  196. ),
  197. DEFINE_KSPROPERTY_ITEM
  198. (
  199. KSPROPERTY_TVAUDIO_MODE,
  200. TRUE, // GetSupported or Handler
  201. sizeof(KSPROPERTY_TVAUDIO_S), // MinProperty
  202. sizeof(KSPROPERTY_TVAUDIO_S), // MinData
  203. TRUE, // SetSupported or Handler
  204. NULL, // Values
  205. 0, // RelationsCount
  206. NULL, // Relations
  207. NULL, // SupportHandler
  208. 0 // SerializedSize
  209. ),
  210. DEFINE_KSPROPERTY_ITEM
  211. (
  212. KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES,
  213. TRUE, // GetSupported or Handler
  214. sizeof(KSPROPERTY_TVAUDIO_S), // MinProperty
  215. sizeof(KSPROPERTY_TVAUDIO_S), // MinData
  216. FALSE, // SetSupported or Handler
  217. NULL, // Values
  218. 0, // RelationsCount
  219. NULL, // Relations
  220. NULL, // SupportHandler
  221. 0 // SerializedSize
  222. ),
  223. };
  224. // ------------------------------------------------------------------------
  225. // Property set for VideoProcAmp
  226. // ------------------------------------------------------------------------
  227. //
  228. // First define all of the ranges and stepping values
  229. //
  230. // ------------------------------------------------------------------------
  231. static KSPROPERTY_STEPPING_LONG BrightnessRangeAndStep [] =
  232. {
  233. {
  234. 10000 / 10, // SteppingDelta (range / steps)
  235. 0, // Reserved
  236. 0, // Minimum in (IRE * 100) units
  237. 10000 // Maximum in (IRE * 100) units
  238. }
  239. };
  240. static const LONG BrightnessDefault = 5000;
  241. static KSPROPERTY_MEMBERSLIST BrightnessMembersList [] =
  242. {
  243. {
  244. {
  245. KSPROPERTY_MEMBER_STEPPEDRANGES,
  246. sizeof (BrightnessRangeAndStep),
  247. SIZEOF_ARRAY (BrightnessRangeAndStep),
  248. 0
  249. },
  250. (PVOID) BrightnessRangeAndStep,
  251. },
  252. {
  253. {
  254. KSPROPERTY_MEMBER_VALUES,
  255. sizeof (BrightnessDefault),
  256. 1,
  257. KSPROPERTY_MEMBER_FLAG_DEFAULT
  258. },
  259. (PVOID) &BrightnessDefault,
  260. }
  261. };
  262. static KSPROPERTY_VALUES BrightnessValues =
  263. {
  264. {
  265. STATICGUIDOF (KSPROPTYPESETID_General),
  266. VT_I4,
  267. 0
  268. },
  269. SIZEOF_ARRAY (BrightnessMembersList),
  270. BrightnessMembersList
  271. };
  272. // ------------------------------------------------------------------------
  273. static KSPROPERTY_STEPPING_LONG ContrastRangeAndStep [] =
  274. {
  275. {
  276. 10000 / 256, // SteppingDelta (range / steps)
  277. 0, // Reserved
  278. 0, // Minimum in (gain * 100) units
  279. 10000 // Maximum in (gain * 100) units
  280. }
  281. };
  282. static const LONG ContrastDefault = 5000;
  283. static KSPROPERTY_MEMBERSLIST ContrastMembersList [] =
  284. {
  285. {
  286. {
  287. KSPROPERTY_MEMBER_STEPPEDRANGES,
  288. sizeof (ContrastRangeAndStep),
  289. SIZEOF_ARRAY (ContrastRangeAndStep),
  290. 0
  291. },
  292. (PVOID) ContrastRangeAndStep
  293. },
  294. {
  295. {
  296. KSPROPERTY_MEMBER_VALUES,
  297. sizeof (ContrastDefault),
  298. 1,
  299. KSPROPERTY_MEMBER_FLAG_DEFAULT
  300. },
  301. (PVOID) &ContrastDefault,
  302. }
  303. };
  304. static KSPROPERTY_VALUES ContrastValues =
  305. {
  306. {
  307. STATICGUIDOF (KSPROPTYPESETID_General),
  308. VT_I4,
  309. 0
  310. },
  311. SIZEOF_ARRAY (ContrastMembersList),
  312. ContrastMembersList
  313. };
  314. // ------------------------------------------------------------------------
  315. static KSPROPERTY_STEPPING_LONG ColorEnableRangeAndStep [] =
  316. {
  317. {
  318. 1, // SteppingDelta (this is a BOOL)
  319. 0, // Reserved
  320. 0, // Minimum
  321. 1 // Maximum
  322. }
  323. };
  324. static const LONG ColorEnableDefault = 1;
  325. static KSPROPERTY_MEMBERSLIST ColorEnableMembersList [] =
  326. {
  327. {
  328. {
  329. KSPROPERTY_MEMBER_STEPPEDRANGES,
  330. sizeof (ColorEnableRangeAndStep),
  331. SIZEOF_ARRAY (ColorEnableRangeAndStep),
  332. 0
  333. },
  334. (PVOID) ColorEnableRangeAndStep
  335. },
  336. {
  337. {
  338. KSPROPERTY_MEMBER_VALUES,
  339. sizeof (ColorEnableDefault),
  340. 1,
  341. KSPROPERTY_MEMBER_FLAG_DEFAULT
  342. },
  343. (PVOID) &ColorEnableDefault,
  344. }
  345. };
  346. static KSPROPERTY_VALUES ColorEnableValues =
  347. {
  348. {
  349. STATICGUIDOF (KSPROPTYPESETID_General),
  350. VT_I4,
  351. 0
  352. },
  353. SIZEOF_ARRAY (ColorEnableMembersList),
  354. ColorEnableMembersList
  355. };
  356. // ------------------------------------------------------------------------
  357. DEFINE_KSPROPERTY_TABLE(VideoProcAmpProperties)
  358. {
  359. DEFINE_KSPROPERTY_ITEM
  360. (
  361. KSPROPERTY_VIDEOPROCAMP_CONTRAST,
  362. TRUE, // GetSupported or Handler
  363. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  364. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  365. TRUE, // SetSupported or Handler
  366. &ContrastValues, // Values
  367. 0, // RelationsCount
  368. NULL, // Relations
  369. NULL, // SupportHandler
  370. sizeof(ULONG) // SerializedSize
  371. ),
  372. DEFINE_KSPROPERTY_ITEM
  373. (
  374. KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
  375. TRUE, // GetSupported or Handler
  376. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  377. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  378. TRUE, // SetSupported or Handler
  379. &BrightnessValues, // Values
  380. 0, // RelationsCount
  381. NULL, // Relations
  382. NULL, // SupportHandler
  383. sizeof(ULONG) // SerializedSize
  384. ),
  385. DEFINE_KSPROPERTY_ITEM
  386. (
  387. KSPROPERTY_VIDEOPROCAMP_COLORENABLE,
  388. TRUE, // GetSupported or Handler
  389. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  390. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  391. TRUE, // SetSupported or Handler
  392. &ColorEnableValues, // Values
  393. 0, // RelationsCount
  394. NULL, // Relations
  395. NULL, // SupportHandler
  396. sizeof(ULONG) // SerializedSize
  397. ),
  398. };
  399. // ------------------------------------------------------------------------
  400. // Property set for CameraControl
  401. // ------------------------------------------------------------------------
  402. //
  403. // First define all of the ranges and stepping values
  404. //
  405. // ------------------------------------------------------------------------
  406. static KSPROPERTY_STEPPING_LONG ZoomRangeAndStep [] =
  407. {
  408. {
  409. 10000 / 10, // SteppingDelta (range / steps)
  410. 0, // Reserved
  411. 0, // Minimum
  412. 10000 // Maximum
  413. }
  414. };
  415. static const LONG ZoomDefault = 5000;
  416. static KSPROPERTY_MEMBERSLIST ZoomMembersList [] =
  417. {
  418. {
  419. {
  420. KSPROPERTY_MEMBER_STEPPEDRANGES,
  421. sizeof (ZoomRangeAndStep),
  422. SIZEOF_ARRAY (ZoomRangeAndStep),
  423. 0
  424. },
  425. (PVOID) ZoomRangeAndStep,
  426. },
  427. {
  428. {
  429. KSPROPERTY_MEMBER_VALUES,
  430. sizeof (ZoomDefault),
  431. 1,
  432. KSPROPERTY_MEMBER_FLAG_DEFAULT
  433. },
  434. (PVOID) &ZoomDefault,
  435. }
  436. };
  437. static KSPROPERTY_VALUES ZoomValues =
  438. {
  439. {
  440. STATICGUIDOF (KSPROPTYPESETID_General),
  441. VT_I4,
  442. 0
  443. },
  444. SIZEOF_ARRAY (ZoomMembersList),
  445. ZoomMembersList
  446. };
  447. // ------------------------------------------------------------------------
  448. static KSPROPERTY_STEPPING_LONG FocusRangeAndStep [] =
  449. {
  450. {
  451. 10000 / 256, // SteppingDelta (range / steps)
  452. 0, // Reserved
  453. 0, // Minimum
  454. 10000 // Maximum
  455. }
  456. };
  457. static const LONG FocusDefault = 5000;
  458. static KSPROPERTY_MEMBERSLIST FocusMembersList [] =
  459. {
  460. {
  461. {
  462. KSPROPERTY_MEMBER_STEPPEDRANGES,
  463. sizeof (FocusRangeAndStep),
  464. SIZEOF_ARRAY (FocusRangeAndStep),
  465. 0
  466. },
  467. (PVOID) FocusRangeAndStep
  468. },
  469. {
  470. {
  471. KSPROPERTY_MEMBER_VALUES,
  472. sizeof (FocusDefault),
  473. 1,
  474. KSPROPERTY_MEMBER_FLAG_DEFAULT
  475. },
  476. (PVOID) &FocusDefault,
  477. }
  478. };
  479. static KSPROPERTY_VALUES FocusValues =
  480. {
  481. {
  482. STATICGUIDOF (KSPROPTYPESETID_General),
  483. VT_I4,
  484. 0
  485. },
  486. SIZEOF_ARRAY (FocusMembersList),
  487. FocusMembersList
  488. };
  489. // ------------------------------------------------------------------------
  490. DEFINE_KSPROPERTY_TABLE(CameraControlProperties)
  491. {
  492. DEFINE_KSPROPERTY_ITEM
  493. (
  494. KSPROPERTY_CAMERACONTROL_ZOOM,
  495. TRUE, // GetSupported or Handler
  496. sizeof(KSPROPERTY_CAMERACONTROL_S), // MinProperty
  497. sizeof(KSPROPERTY_CAMERACONTROL_S), // MinData
  498. TRUE, // SetSupported or Handler
  499. &ZoomValues, // Values
  500. 0, // RelationsCount
  501. NULL, // Relations
  502. NULL, // SupportHandler
  503. sizeof(ULONG) // SerializedSize
  504. ),
  505. DEFINE_KSPROPERTY_ITEM
  506. (
  507. KSPROPERTY_CAMERACONTROL_FOCUS,
  508. TRUE, // GetSupported or Handler
  509. sizeof(KSPROPERTY_CAMERACONTROL_S), // MinProperty
  510. sizeof(KSPROPERTY_CAMERACONTROL_S), // MinData
  511. TRUE, // SetSupported or Handler
  512. &FocusValues, // Values
  513. 0, // RelationsCount
  514. NULL, // Relations
  515. NULL, // SupportHandler
  516. sizeof(ULONG) // SerializedSize
  517. ),
  518. };
  519. // ------------------------------------------------------------------------
  520. // Property set for AnalogVideoDecoder
  521. // ------------------------------------------------------------------------
  522. DEFINE_KSPROPERTY_TABLE(AnalogVideoDecoder)
  523. {
  524. DEFINE_KSPROPERTY_ITEM
  525. (
  526. KSPROPERTY_VIDEODECODER_CAPS,
  527. TRUE, // GetSupported or Handler
  528. sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinProperty
  529. sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinData
  530. FALSE, // SetSupported or Handler
  531. NULL, // Values
  532. 0, // RelationsCount
  533. NULL, // Relations
  534. NULL, // SupportHandler
  535. 0 // SerializedSize
  536. ),
  537. DEFINE_KSPROPERTY_ITEM
  538. (
  539. KSPROPERTY_VIDEODECODER_STANDARD,
  540. TRUE, // GetSupported or Handler
  541. sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty
  542. sizeof(KSPROPERTY_VIDEODECODER_S), // MinData
  543. TRUE, // SetSupported or Handler
  544. NULL, // Values
  545. 0, // RelationsCount
  546. NULL, // Relations
  547. NULL, // SupportHandler
  548. 0 // SerializedSize
  549. ),
  550. DEFINE_KSPROPERTY_ITEM
  551. (
  552. KSPROPERTY_VIDEODECODER_STATUS,
  553. TRUE, // GetSupported or Handler
  554. sizeof(KSPROPERTY_VIDEODECODER_STATUS_S),// MinProperty
  555. sizeof(KSPROPERTY_VIDEODECODER_STATUS_S),// MinData
  556. FALSE, // SetSupported or Handler
  557. NULL, // Values
  558. 0, // RelationsCount
  559. NULL, // Relations
  560. NULL, // SupportHandler
  561. 0 // SerializedSize
  562. ),
  563. DEFINE_KSPROPERTY_ITEM
  564. (
  565. KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
  566. TRUE, // GetSupported or Handler
  567. sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty
  568. sizeof(KSPROPERTY_VIDEODECODER_S), // MinData
  569. TRUE, // SetSupported or Handler
  570. NULL, // Values
  571. 0, // RelationsCount
  572. NULL, // Relations
  573. NULL, // SupportHandler
  574. 0 // SerializedSize
  575. ),
  576. DEFINE_KSPROPERTY_ITEM
  577. (
  578. KSPROPERTY_VIDEODECODER_VCR_TIMING,
  579. TRUE, // GetSupported or Handler
  580. sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty
  581. sizeof(KSPROPERTY_VIDEODECODER_S), // MinData
  582. TRUE, // SetSupported or Handler
  583. NULL, // Values
  584. 0, // RelationsCount
  585. NULL, // Relations
  586. NULL, // SupportHandler
  587. 0 // SerializedSize
  588. ),
  589. };
  590. // ------------------------------------------------------------------------
  591. // Property set for VideoControl
  592. // ------------------------------------------------------------------------
  593. DEFINE_KSPROPERTY_TABLE(VideoControlProperties)
  594. {
  595. DEFINE_KSPROPERTY_ITEM
  596. (
  597. KSPROPERTY_VIDEOCONTROL_CAPS,
  598. TRUE, // GetSupported or Handler
  599. sizeof(KSPROPERTY_VIDEOCONTROL_CAPS_S), // MinProperty
  600. sizeof(KSPROPERTY_VIDEOCONTROL_CAPS_S), // MinData
  601. FALSE, // SetSupported or Handler
  602. NULL, // Values
  603. 0, // RelationsCount
  604. NULL, // Relations
  605. NULL, // SupportHandler
  606. 0 // SerializedSize
  607. ),
  608. DEFINE_KSPROPERTY_ITEM
  609. (
  610. KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE,
  611. TRUE, // GetSupported or Handler
  612. sizeof(KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S), // MinProperty
  613. sizeof(KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S), // MinData
  614. FALSE, // SetSupported or Handler
  615. NULL, // Values
  616. 0, // RelationsCount
  617. NULL, // Relations
  618. NULL, // SupportHandler
  619. 0 // SerializedSize
  620. ),
  621. DEFINE_KSPROPERTY_ITEM
  622. (
  623. KSPROPERTY_VIDEOCONTROL_FRAME_RATES,
  624. TRUE, // GetSupported or Handler
  625. sizeof(KSPROPERTY), // MinProperty
  626. sizeof(KSMULTIPLE_ITEM), // MinData
  627. FALSE, // SetSupported or Handler
  628. NULL, // Values
  629. 0, // RelationsCount
  630. NULL, // Relations
  631. NULL, // SupportHandler
  632. 0 // SerializedSize
  633. ),
  634. DEFINE_KSPROPERTY_ITEM
  635. (
  636. KSPROPERTY_VIDEOCONTROL_MODE,
  637. TRUE, // GetSupported or Handler
  638. sizeof(KSPROPERTY_VIDEOCONTROL_MODE_S), // MinProperty
  639. sizeof(KSPROPERTY_VIDEOCONTROL_MODE_S), // MinData
  640. TRUE, // SetSupported or Handler
  641. NULL, // Values
  642. 0, // RelationsCount
  643. NULL, // Relations
  644. NULL, // SupportHandler
  645. 0 // SerializedSize
  646. ),
  647. };
  648. // ------------------------------------------------------------------------
  649. // Property set for VideoCompression
  650. // ------------------------------------------------------------------------
  651. DEFINE_KSPROPERTY_TABLE(VideoStreamCompressionProperties)
  652. {
  653. DEFINE_KSPROPERTY_ITEM
  654. (
  655. KSPROPERTY_VIDEOCOMPRESSION_GETINFO,
  656. TRUE, // GetSupported or Handler
  657. sizeof(KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S),// MinProperty
  658. sizeof(KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S),// MinData
  659. FALSE, // SetSupported or Handler
  660. NULL, // Values
  661. 0, // RelationsCount
  662. NULL, // Relations
  663. NULL, // SupportHandler
  664. 0 // SerializedSize
  665. ),
  666. DEFINE_KSPROPERTY_ITEM
  667. (
  668. KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
  669. TRUE, // GetSupported or Handler
  670. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinProperty
  671. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinData
  672. TRUE, // SetSupported or Handler
  673. NULL, // Values
  674. 0, // RelationsCount
  675. NULL, // Relations
  676. NULL, // SupportHandler
  677. 0 // SerializedSize
  678. ),
  679. DEFINE_KSPROPERTY_ITEM
  680. (
  681. KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
  682. TRUE, // GetSupported or Handler
  683. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinProperty
  684. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinData
  685. TRUE, // SetSupported or Handler
  686. NULL, // Values
  687. 0, // RelationsCount
  688. NULL, // Relations
  689. NULL, // SupportHandler
  690. 0 // SerializedSize
  691. ),
  692. DEFINE_KSPROPERTY_ITEM
  693. (
  694. KSPROPERTY_VIDEOCOMPRESSION_QUALITY,
  695. TRUE, // GetSupported or Handler
  696. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinProperty
  697. sizeof(KSPROPERTY_VIDEOCOMPRESSION_S), // MinData
  698. TRUE, // SetSupported or Handler
  699. NULL, // Values
  700. 0, // RelationsCount
  701. NULL, // Relations
  702. NULL, // SupportHandler
  703. 0 // SerializedSize
  704. ),
  705. };
  706. // ------------------------------------------------------------------------
  707. // Property set for VBI
  708. // ------------------------------------------------------------------------
  709. DEFINE_KSPROPERTY_TABLE(VBIProperties)
  710. {
  711. DEFINE_KSPROPERTY_ITEM
  712. (
  713. KSPROPERTY_VBICAP_PROPERTIES_PROTECTION,
  714. TRUE, // GetSupported or Handler
  715. sizeof(VBICAP_PROPERTIES_PROTECTION_S), // MinProperty
  716. sizeof(VBICAP_PROPERTIES_PROTECTION_S), // MinData
  717. TRUE, // SetSupported or Handler
  718. NULL, // Values
  719. 0, // RelationsCount
  720. NULL, // Relations
  721. NULL, // SupportHandler
  722. 0 // SerializedSize
  723. ),
  724. };
  725. // ------------------------------------------------------------------------
  726. // Array of all of the property sets supported by the adapter
  727. // ------------------------------------------------------------------------
  728. DEFINE_KSPROPERTY_SET_TABLE(AdapterPropertyTable)
  729. {
  730. DEFINE_KSPROPERTY_SET
  731. (
  732. &PROPSETID_VIDCAP_CROSSBAR, // Set
  733. SIZEOF_ARRAY(XBarProperties), // PropertiesCount
  734. XBarProperties, // PropertyItem
  735. 0, // FastIoCount
  736. NULL // FastIoTable
  737. ),
  738. DEFINE_KSPROPERTY_SET
  739. (
  740. &PROPSETID_TUNER,
  741. SIZEOF_ARRAY(TVTunerProperties),
  742. TVTunerProperties,
  743. 0,
  744. NULL
  745. ),
  746. DEFINE_KSPROPERTY_SET
  747. (
  748. &PROPSETID_VIDCAP_TVAUDIO,
  749. SIZEOF_ARRAY(TVAudioProperties),
  750. TVAudioProperties,
  751. 0,
  752. NULL
  753. ),
  754. DEFINE_KSPROPERTY_SET
  755. (
  756. &PROPSETID_VIDCAP_VIDEOPROCAMP,
  757. SIZEOF_ARRAY(VideoProcAmpProperties),
  758. VideoProcAmpProperties,
  759. 0,
  760. NULL
  761. ),
  762. DEFINE_KSPROPERTY_SET
  763. (
  764. &PROPSETID_VIDCAP_CAMERACONTROL,
  765. SIZEOF_ARRAY(CameraControlProperties),
  766. CameraControlProperties,
  767. 0,
  768. NULL
  769. ),
  770. DEFINE_KSPROPERTY_SET
  771. (
  772. &PROPSETID_VIDCAP_VIDEOCONTROL,
  773. SIZEOF_ARRAY(VideoControlProperties),
  774. VideoControlProperties,
  775. 0,
  776. NULL
  777. ),
  778. DEFINE_KSPROPERTY_SET
  779. (
  780. &PROPSETID_VIDCAP_VIDEODECODER,
  781. SIZEOF_ARRAY(AnalogVideoDecoder),
  782. AnalogVideoDecoder,
  783. 0,
  784. NULL
  785. ),
  786. DEFINE_KSPROPERTY_SET
  787. (
  788. &PROPSETID_VIDCAP_VIDEOCOMPRESSION, // Set
  789. SIZEOF_ARRAY(VideoStreamCompressionProperties), // PropertiesCount
  790. VideoStreamCompressionProperties, // PropertyItem
  791. 0, // FastIoCount
  792. NULL // FastIoTable
  793. ),
  794. DEFINE_KSPROPERTY_SET
  795. (
  796. &KSPROPSETID_VBICAP_PROPERTIES, // Set
  797. SIZEOF_ARRAY(VBIProperties), // PropertiesCount
  798. VBIProperties, // PropertyItem
  799. 0, // FastIoCount
  800. NULL // FastIoTable
  801. ),
  802. };
  803. #define NUMBER_OF_ADAPTER_PROPERTY_SETS (SIZEOF_ARRAY (AdapterPropertyTable))