// $Header: G:/SwDev/WDM/Video/bt848/rcs/Capprop.h 1.5 1998/04/29 22:43:29 tomz Exp $ //==========================================================================; // // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. // // Copyright (c) 1992 - 1996 Microsoft Corporation. All Rights Reserved. // //==========================================================================; // // Property set for the Video Crossbar // #include "mytypes.h" DEFINE_KSPROPERTY_TABLE(XBarProperties) { DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_CROSSBAR_CAPS, // PropertyId TRUE, // GetSupported or Handler sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinProperty sizeof(KSPROPERTY_CROSSBAR_CAPS_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof(ULONG) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_CROSSBAR_CAN_ROUTE, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof(ULONG) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_CROSSBAR_ROUTE, true, // GetSupported or Handler sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinProperty sizeof(KSPROPERTY_CROSSBAR_ROUTE_S), // MinData true, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof(ULONG) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_CROSSBAR_PININFO, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinProperty sizeof(KSPROPERTY_CROSSBAR_PININFO_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ) }; #if 1 // // Property set for the TVTuner // DEFINE_KSPROPERTY_TABLE(TVTunerProperties) { DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_CAPS, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_CAPS_S), // MinProperty sizeof(KSPROPERTY_TUNER_CAPS_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_MODE, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_MODE_S), // MinProperty sizeof(KSPROPERTY_TUNER_MODE_S), // MinData TRUE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_MODE_CAPS, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_MODE_CAPS_S), // MinProperty sizeof(KSPROPERTY_TUNER_MODE_CAPS_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_STANDARD, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_STANDARD_S), // MinProperty sizeof(KSPROPERTY_TUNER_STANDARD_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_FREQUENCY, FALSE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_FREQUENCY_S), // MinProperty sizeof(KSPROPERTY_TUNER_FREQUENCY_S), // MinData TRUE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_INPUT, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_INPUT_S), // MinProperty sizeof(KSPROPERTY_TUNER_INPUT_S), // MinData TRUE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TUNER_STATUS, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TUNER_STATUS_S), // MinProperty sizeof(KSPROPERTY_TUNER_STATUS_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ) }; #endif // ------------------------------------------------------------------------ // Property set for the TVAudio // ------------------------------------------------------------------------ DEFINE_KSPROPERTY_TABLE(TVAudioProperties) { DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TVAUDIO_CAPS, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TVAUDIO_CAPS_S), // MinProperty sizeof(KSPROPERTY_TVAUDIO_CAPS_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TVAUDIO_MODE, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TVAUDIO_S), // MinProperty sizeof(KSPROPERTY_TVAUDIO_S), // MinData TRUE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_TVAUDIO_S), // MinProperty sizeof(KSPROPERTY_TVAUDIO_S), // MinData FALSE, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler 0 // SerializedSize ), }; // ------------------------------------------------------------------------ // Property set for VideoProcAmp // ------------------------------------------------------------------------ // // First define all of the ranges and stepping values // // ------------------------------------------------------------------------ static KSPROPERTY_STEPPING_LONG BrightnessRangeAndStep [] = { { 10000 / 10, // SteppingDelta (range / steps) 0, // Reserved { { 0, // Minimum in (IRE * 100) units 10000 // Maximum in (IRE * 100) units } } } }; static const ULONG BrightnessDefault = 5000; static KSPROPERTY_MEMBERSLIST BrightnessMembersList [] = { { { KSPROPERTY_MEMBER_RANGES, sizeof (BrightnessRangeAndStep), SIZEOF_ARRAY (BrightnessRangeAndStep), 0 }, (PVOID) BrightnessRangeAndStep }, { { KSPROPERTY_MEMBER_VALUES, sizeof( BrightnessDefault ), sizeof( BrightnessDefault ), KSPROPERTY_MEMBER_FLAG_DEFAULT }, (PVOID) &BrightnessDefault } }; static KSPROPERTY_VALUES BrightnessValues = { { { STATICGUIDOF( KSPROPTYPESETID_General ), VT_I4, 0 } }, SIZEOF_ARRAY( BrightnessMembersList ), BrightnessMembersList }; // ------------------------------------------------------------------------ static KSPROPERTY_STEPPING_LONG ContrastRangeAndStep [] = { { 10000 / 256, // SteppingDelta (range / steps) 0, // Reserved { { 0, // Minimum in (gain * 100) units 10000 // Maximum in (gain * 100) units } } } }; static const ULONG ContrastDefault = 5000; static KSPROPERTY_MEMBERSLIST ContrastMembersList [] = { { { KSPROPERTY_MEMBER_RANGES, sizeof( ContrastRangeAndStep ), SIZEOF_ARRAY( ContrastRangeAndStep ), 0 }, (PVOID) ContrastRangeAndStep }, { { KSPROPERTY_MEMBER_VALUES, sizeof( ContrastDefault ), sizeof( ContrastDefault ), KSPROPERTY_MEMBER_FLAG_DEFAULT }, (PVOID) &ContrastDefault } }; static KSPROPERTY_VALUES ContrastValues = { { { STATICGUIDOF( KSPROPTYPESETID_General ), VT_I4, 0 } }, SIZEOF_ARRAY( ContrastMembersList ), ContrastMembersList }; // ------------------------------------------------------------------------ static KSPROPERTY_STEPPING_LONG HueRangeAndStep [] = { { 10000 / 256, // SteppingDelta (range / steps) 0, // Reserved { { 0, // Minimum in (gain * 100) units 10000 // Maximum in (gain * 100) units } } } }; static const ULONG HueDefault = 5000; static KSPROPERTY_MEMBERSLIST HueMembersList [] = { { { KSPROPERTY_MEMBER_RANGES, sizeof( HueRangeAndStep ), SIZEOF_ARRAY( HueRangeAndStep ), 0 }, (PVOID) HueRangeAndStep }, { { KSPROPERTY_MEMBER_VALUES, sizeof( HueDefault ), sizeof( HueDefault ), KSPROPERTY_MEMBER_FLAG_DEFAULT }, (PVOID) &HueDefault } }; static KSPROPERTY_VALUES HueValues = { { { STATICGUIDOF( KSPROPTYPESETID_General ), VT_I4, 0 } }, SIZEOF_ARRAY( HueMembersList ), HueMembersList }; static KSPROPERTY_STEPPING_LONG SaturationRangeAndStep [] = { { 10000 / 256, // SteppingDelta (range / steps) 0, // Reserved { { 0, // Minimum in (gain * 100) units 10000 // Maximum in (gain * 100) units } } } }; static const ULONG SaturationDefault = 5000; static KSPROPERTY_MEMBERSLIST SaturationMembersList [] = { { { KSPROPERTY_MEMBER_RANGES, sizeof( SaturationRangeAndStep ), SIZEOF_ARRAY( SaturationRangeAndStep ), 0 }, (PVOID) SaturationRangeAndStep }, { { KSPROPERTY_MEMBER_VALUES, sizeof( SaturationDefault ), sizeof( SaturationDefault ), KSPROPERTY_MEMBER_FLAG_DEFAULT }, (PVOID) &SaturationDefault } }; static KSPROPERTY_VALUES SaturationValues = { { { STATICGUIDOF( KSPROPTYPESETID_General ), VT_I4, 0 } }, SIZEOF_ARRAY( SaturationMembersList ), SaturationMembersList }; // ------------------------------------------------------------------------ DEFINE_KSPROPERTY_TABLE(VideoProcAmpProperties) { DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEOPROCAMP_CONTRAST, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData TRUE, // SetSupported or Handler &ContrastValues, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof(ULONG) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData TRUE, // SetSupported or Handler &BrightnessValues, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof(ULONG) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEOPROCAMP_HUE, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData TRUE, // SetSupported or Handler &HueValues, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof( ULONG ) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEOPROCAMP_SATURATION, TRUE, // GetSupported or Handler sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinProperty sizeof(KSPROPERTY_VIDEOPROCAMP_S), // MinData TRUE, // SetSupported or Handler &SaturationValues, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof( ULONG ) // SerializedSize ) }; // Analog Video Decoder Properties DEFINE_KSPROPERTY_TABLE( VideoDecProperties ) { DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEODECODER_CAPS, true, // GetSupported or Handler sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinProperty sizeof(KSPROPERTY_VIDEODECODER_CAPS_S), // MinData false, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof( ULONG ) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEODECODER_STANDARD, true, // GetSupported or Handler sizeof(KSPROPERTY_VIDEODECODER_S), // MinProperty sizeof(KSPROPERTY_VIDEODECODER_S), // MinData true, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof( ULONG ) // SerializedSize ), DEFINE_KSPROPERTY_ITEM ( KSPROPERTY_VIDEODECODER_STATUS, true, // GetSupported or Handler sizeof(KSPROPERTY_VIDEODECODER_STATUS_S), // MinProperty sizeof(KSPROPERTY_VIDEODECODER_STATUS_S), // MinData true, // SetSupported or Handler NULL, // Values 0, // RelationsCount NULL, // Relations NULL, // SupportHandler sizeof( ULONG ) // SerializedSize ) }; // // All of the property sets supported by the adapter // DEFINE_KSPROPERTY_SET_TABLE(AdapterPropertyTable) { DEFINE_KSPROPERTY_SET ( &PROPSETID_VIDCAP_CROSSBAR, // Set SIZEOF_ARRAY(XBarProperties), // PropertiesCount XBarProperties, // PropertyItem 0, // FastIoCount NULL // FastIoTable ), DEFINE_KSPROPERTY_SET ( &PROPSETID_TUNER, SIZEOF_ARRAY(TVTunerProperties), TVTunerProperties, 0, NULL ), DEFINE_KSPROPERTY_SET ( &PROPSETID_VIDCAP_TVAUDIO, SIZEOF_ARRAY(TVAudioProperties), TVAudioProperties, 0, NULL ), DEFINE_KSPROPERTY_SET ( &PROPSETID_VIDCAP_VIDEOPROCAMP, SIZEOF_ARRAY(VideoProcAmpProperties), VideoProcAmpProperties, 0, NULL ), DEFINE_KSPROPERTY_SET ( &PROPSETID_VIDCAP_VIDEODECODER, SIZEOF_ARRAY(VideoDecProperties), VideoDecProperties, 0, NULL ) }; #define NUMBER_OF_ADAPTER_PROPERTY_SETS (SIZEOF_ARRAY (AdapterPropertyTable)) VOID AdapterSetProperty(PHW_STREAM_REQUEST_BLOCK pSrb); VOID AdapterGetProperty(PHW_STREAM_REQUEST_BLOCK pSrb);