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.

422 lines
15 KiB

  1. //==========================================================================;
  2. //
  3. // WDM Video Decoder adapter properties definitions
  4. //
  5. // $Date: 02 Oct 1998 22:59:36 $
  6. // $Revision: 1.1 $
  7. // $Author: KLEBANOV $
  8. //
  9. // $Copyright: (c) 1997 - 1998 ATI Technologies Inc. All Rights Reserved. $
  10. //
  11. //==========================================================================;
  12. #ifdef _DEC_PROP_H_
  13. #pragma message("DecProp.h INCLUDED MORE THAN ONCE")
  14. #else
  15. #define _DEC_PROP_H_
  16. #endif
  17. // ------------------------------------------------------------------------
  18. // Property set for the Video Crossbar
  19. // ------------------------------------------------------------------------
  20. DEFINE_KSPROPERTY_TABLE(XBarProperties)
  21. {
  22. DEFINE_KSPROPERTY_ITEM
  23. (
  24. KSPROPERTY_CROSSBAR_CAPS,
  25. TRUE, // GetSupported or Handler
  26. sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinProperty
  27. sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinData
  28. FALSE, // SetSupported or Handler
  29. NULL, // Values
  30. 0, // RelationsCount
  31. NULL, // Relations
  32. NULL, // SupportHandler
  33. 0 // SerializedSize
  34. ),
  35. DEFINE_KSPROPERTY_ITEM
  36. (
  37. KSPROPERTY_CROSSBAR_CAN_ROUTE,
  38. TRUE, // GetSupported or Handler
  39. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty
  40. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData
  41. FALSE, // SetSupported or Handler
  42. NULL, // Values
  43. 0, // RelationsCount
  44. NULL, // Relations
  45. NULL, // SupportHandler
  46. 0 // SerializedSize
  47. ),
  48. DEFINE_KSPROPERTY_ITEM
  49. (
  50. KSPROPERTY_CROSSBAR_ROUTE,
  51. TRUE, // GetSupported or Handler
  52. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty
  53. sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData
  54. TRUE, // SetSupported or Handler
  55. NULL, // Values
  56. 0, // RelationsCount
  57. NULL, // Relations
  58. NULL, // SupportHandler
  59. 0 // SerializedSize
  60. ),
  61. DEFINE_KSPROPERTY_ITEM
  62. (
  63. KSPROPERTY_CROSSBAR_PININFO,
  64. TRUE, // GetSupported or Handler
  65. sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinProperty
  66. sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinData
  67. FALSE, // SetSupported or Handler
  68. NULL, // Values
  69. 0, // RelationsCount
  70. NULL, // Relations
  71. NULL, // SupportHandler
  72. 0 // SerializedSize
  73. )
  74. };
  75. // ------------------------------------------------------------------------
  76. // Property set for VideoProcAmp
  77. // ------------------------------------------------------------------------
  78. // defaults
  79. static const LONG BrightnessDefault = 128;
  80. static const LONG ContrastDefault = 128;
  81. static const LONG HueDefault = 128;
  82. static const LONG SaturationDefault = 128;
  83. //
  84. // First define all of the ranges and stepping values
  85. //
  86. // ------------------------------------------------------------------------
  87. static KSPROPERTY_STEPPING_LONG BrightnessRangeAndStep [] =
  88. {
  89. {
  90. // Eventually need to convert these to IRE * 100 unites
  91. 256/1, // SteppingDelta (range / steps)
  92. 0, // Reserved
  93. 0, // Minimum
  94. 255 // Maximum
  95. }
  96. };
  97. static KSPROPERTY_MEMBERSLIST BrightnessMembersList [] =
  98. {
  99. {
  100. {
  101. KSPROPERTY_MEMBER_STEPPEDRANGES,
  102. sizeof (BrightnessRangeAndStep),
  103. SIZEOF_ARRAY (BrightnessRangeAndStep),
  104. 0
  105. },
  106. (PVOID) BrightnessRangeAndStep
  107. },
  108. {
  109. {
  110. KSPROPERTY_MEMBER_VALUES,
  111. sizeof (BrightnessDefault),
  112. 1,
  113. KSPROPERTY_MEMBER_FLAG_DEFAULT
  114. },
  115. (PVOID) &BrightnessDefault
  116. }
  117. };
  118. static KSPROPERTY_VALUES BrightnessValues =
  119. {
  120. {
  121. STATICGUIDOF (KSPROPTYPESETID_General),
  122. VT_I4,
  123. 0
  124. },
  125. SIZEOF_ARRAY (BrightnessMembersList),
  126. BrightnessMembersList
  127. };
  128. // ------------------------------------------------------------------------
  129. static KSPROPERTY_STEPPING_LONG ContrastRangeAndStep [] =
  130. {
  131. {
  132. 256/1, // SteppingDelta (range / steps)
  133. 0, // Reserved
  134. 0, // Minimum in (gain * 100) units
  135. 255 // Maximum in (gain * 100) units
  136. }
  137. };
  138. static KSPROPERTY_MEMBERSLIST ContrastMembersList [] =
  139. {
  140. {
  141. {
  142. KSPROPERTY_MEMBER_STEPPEDRANGES,
  143. sizeof (ContrastRangeAndStep),
  144. SIZEOF_ARRAY (ContrastRangeAndStep),
  145. 0
  146. },
  147. (PVOID) ContrastRangeAndStep
  148. },
  149. {
  150. {
  151. KSPROPERTY_MEMBER_VALUES,
  152. sizeof (ContrastDefault),
  153. 1,
  154. KSPROPERTY_MEMBER_FLAG_DEFAULT
  155. },
  156. (PVOID) &ContrastDefault
  157. }
  158. };
  159. static KSPROPERTY_VALUES ContrastValues =
  160. {
  161. {
  162. STATICGUIDOF (KSPROPTYPESETID_General),
  163. VT_I4,
  164. 0
  165. },
  166. SIZEOF_ARRAY (ContrastMembersList),
  167. ContrastMembersList
  168. };
  169. KSPROPERTY_STEPPING_LONG HueRangeAndStep [] =
  170. {
  171. {
  172. 256/1, // SteppingDelta
  173. 0, // Reserved
  174. 0, // Minimum
  175. 255 // Maximum
  176. }
  177. };
  178. KSPROPERTY_MEMBERSLIST HueMembersList [] =
  179. {
  180. {
  181. {
  182. KSPROPERTY_MEMBER_STEPPEDRANGES,
  183. sizeof (HueRangeAndStep),
  184. SIZEOF_ARRAY (HueRangeAndStep),
  185. 0
  186. },
  187. (PVOID) HueRangeAndStep
  188. },
  189. {
  190. {
  191. KSPROPERTY_MEMBER_VALUES,
  192. sizeof (HueDefault),
  193. 1,
  194. KSPROPERTY_MEMBER_FLAG_DEFAULT
  195. },
  196. (PVOID) &HueDefault
  197. }
  198. };
  199. KSPROPERTY_VALUES HueValues =
  200. {
  201. {
  202. STATICGUIDOF (KSPROPTYPESETID_General),
  203. VT_I4,
  204. 0
  205. },
  206. SIZEOF_ARRAY (HueMembersList),
  207. HueMembersList
  208. };
  209. KSPROPERTY_STEPPING_LONG SaturationRangeAndStep [] =
  210. {
  211. {
  212. 256/1, // SteppingDelta
  213. 0, // Reserved
  214. 0, // Minimum
  215. 255 // Maximum
  216. }
  217. };
  218. KSPROPERTY_MEMBERSLIST SaturationMembersList [] =
  219. {
  220. {
  221. {
  222. KSPROPERTY_MEMBER_STEPPEDRANGES,
  223. sizeof (SaturationRangeAndStep),
  224. SIZEOF_ARRAY (SaturationRangeAndStep),
  225. 0
  226. },
  227. (PVOID) SaturationRangeAndStep
  228. },
  229. {
  230. {
  231. KSPROPERTY_MEMBER_VALUES,
  232. sizeof (SaturationDefault),
  233. 1,
  234. KSPROPERTY_MEMBER_FLAG_DEFAULT
  235. },
  236. (PVOID) &SaturationDefault
  237. }
  238. };
  239. KSPROPERTY_VALUES SaturationValues =
  240. {
  241. {
  242. STATICGUIDOF (KSPROPTYPESETID_General),
  243. VT_I4,
  244. 0
  245. },
  246. SIZEOF_ARRAY (SaturationMembersList),
  247. SaturationMembersList
  248. };
  249. // ------------------------------------------------------------------------
  250. DEFINE_KSPROPERTY_TABLE(VideoProcAmpProperties)
  251. {
  252. DEFINE_KSPROPERTY_ITEM
  253. (
  254. KSPROPERTY_VIDEOPROCAMP_CONTRAST,
  255. TRUE, // GetSupported or Handler
  256. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  257. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  258. TRUE, // SetSupported or Handler
  259. &ContrastValues, // Values
  260. 0, // RelationsCount
  261. NULL, // Relations
  262. NULL, // SupportHandler
  263. sizeof(ULONG) // SerializedSize
  264. ),
  265. DEFINE_KSPROPERTY_ITEM
  266. (
  267. KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
  268. TRUE, // GetSupported or Handler
  269. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  270. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  271. TRUE, // SetSupported or Handler
  272. &BrightnessValues, // Values
  273. 0, // RelationsCount
  274. NULL, // Relations
  275. NULL, // SupportHandler
  276. sizeof(ULONG) // SerializedSize
  277. ),
  278. DEFINE_KSPROPERTY_ITEM
  279. (
  280. KSPROPERTY_VIDEOPROCAMP_HUE,
  281. TRUE, // GetSupported or Handler
  282. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  283. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  284. TRUE, // SetSupported or Handler
  285. &HueValues, // Values
  286. 0, // RelationsCount
  287. NULL, // Relations
  288. NULL, // SupportHandler
  289. sizeof(ULONG) // SerializedSize
  290. ),
  291. DEFINE_KSPROPERTY_ITEM
  292. (
  293. KSPROPERTY_VIDEOPROCAMP_SATURATION,
  294. TRUE, // GetSupported or Handler
  295. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty
  296. sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData
  297. TRUE, // SetSupported or Handler
  298. &SaturationValues, // Values
  299. 0, // RelationsCount
  300. NULL, // Relations
  301. NULL, // SupportHandler
  302. sizeof(ULONG) // SerializedSize
  303. )
  304. };
  305. // ------------------------------------------------------------------------
  306. // Property set for AnalogVideoDecoder
  307. // ------------------------------------------------------------------------
  308. DEFINE_KSPROPERTY_TABLE(AnalogVideoDecoder)
  309. {
  310. DEFINE_KSPROPERTY_ITEM
  311. (
  312. KSPROPERTY_VIDEODECODER_CAPS,
  313. TRUE, // GetSupported or Handler
  314. sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinProperty
  315. sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinData
  316. FALSE, // SetSupported or Handler
  317. NULL, // Values
  318. 0, // RelationsCount
  319. NULL, // Relations
  320. NULL, // SupportHandler
  321. 0 // SerializedSize
  322. ),
  323. DEFINE_KSPROPERTY_ITEM
  324. (
  325. KSPROPERTY_VIDEODECODER_STANDARD,
  326. TRUE, // GetSupported or Handler
  327. sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty
  328. sizeof(KSPROPERTY_VIDEODECODER_S), // MinData
  329. TRUE, // SetSupported or Handler
  330. NULL, // Values
  331. 0, // RelationsCount
  332. NULL, // Relations
  333. NULL, // SupportHandler
  334. 0 // SerializedSize
  335. ),
  336. DEFINE_KSPROPERTY_ITEM
  337. (
  338. KSPROPERTY_VIDEODECODER_STATUS,
  339. TRUE, // GetSupported or Handler
  340. sizeof(KSPROPERTY_VIDEODECODER_STATUS_S),// MinProperty
  341. sizeof(KSPROPERTY_VIDEODECODER_STATUS_S),// MinData
  342. FALSE, // SetSupported or Handler
  343. NULL, // Values
  344. 0, // RelationsCount
  345. NULL, // Relations
  346. NULL, // SupportHandler
  347. 0 // SerializedSize
  348. ),
  349. DEFINE_KSPROPERTY_ITEM
  350. (
  351. KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
  352. TRUE, // GetSupported or Handler
  353. sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty
  354. sizeof(KSPROPERTY_VIDEODECODER_S), // MinData
  355. TRUE, // SetSupported or Handler
  356. NULL, // Values
  357. 0, // RelationsCount
  358. NULL, // Relations
  359. NULL, // SupportHandler
  360. 0 // SerializedSize
  361. )
  362. };
  363. // ------------------------------------------------------------------------
  364. // Array of all of the property sets supported by the adapter
  365. // ------------------------------------------------------------------------
  366. DEFINE_KSPROPERTY_SET_TABLE(AdapterProperties)
  367. {
  368. DEFINE_KSPROPERTY_SET
  369. (
  370. &PROPSETID_VIDCAP_VIDEOPROCAMP,
  371. SIZEOF_ARRAY(VideoProcAmpProperties),
  372. VideoProcAmpProperties,
  373. 0,
  374. NULL
  375. ),
  376. DEFINE_KSPROPERTY_SET
  377. (
  378. &PROPSETID_VIDCAP_CROSSBAR, // Set
  379. SIZEOF_ARRAY(XBarProperties), // PropertiesCount
  380. XBarProperties, // PropertyItem
  381. 0, // FastIoCount
  382. NULL // FastIoTable
  383. ),
  384. DEFINE_KSPROPERTY_SET
  385. (
  386. &PROPSETID_VIDCAP_VIDEODECODER,
  387. SIZEOF_ARRAY(AnalogVideoDecoder),
  388. AnalogVideoDecoder,
  389. 0,
  390. NULL
  391. )
  392. };
  393. ULONG NumAdapterProperties()
  394. {
  395. return SIZEOF_ARRAY(AdapterProperties);
  396. }