/****************************************************************************** * * $RCSfile: AvKsProp.h $ * $Source: u:/si/VXP/Wdm/Include/AvKsProp.h $ * $Author: Max $ * $Date: 1998/09/16 23:37:50 $ * $Revision: 1.3 $ * * Written by: Max Paklin * Purpose: Implementation of analog stream for WDM driver * ******************************************************************************* * * Copyright © 1996-97, AuraVision Corporation. All rights reserved. * * AuraVision Corporation makes no warranty of any kind, express or implied, * with regard to this software. In no event shall AuraVision Corporation * be liable for incidental or consequential damages in connection with or * arising from the furnishing, performance, or use of this software. * *******************************************************************************/ #ifndef __AVKSPROP_H__ #define __AVKSPROP_H__ #define DEFINE_AV_PROPITEM_RANGE_STEP( name, step, min, max, def )\ const ULONG c_n##name = def;\ static KSPROPERTY_STEPPING_LONG ras##name[] = { step, 0, min, max };\ static KSPROPERTY_MEMBERSLIST list##name[] =\ {\ {\ {\ KSPROPERTY_MEMBER_STEPPEDRANGES,\ sizeof( ras##name ),\ SIZEOF_ARRAY( ras##name ),\ 0\ },\ (PVOID)ras##name\ },\ {\ {\ KSPROPERTY_MEMBER_VALUES,\ sizeof( int ),\ sizeof( int ),\ KSPROPERTY_MEMBER_FLAG_DEFAULT\ },\ (PVOID) &c_n##name,\ }\ };\ static KSPROPERTY_VALUES val##name =\ {\ {\ STATICGUIDOF( KSPROPTYPESETID_General ),\ VT_I4,\ 0\ },\ SIZEOF_ARRAY( list##name ),\ list##name\ }; #define DEFINE_AV_PROPITEM_RANGE( name, min, max, def )\ DEFINE_AV_PROPITEM_RANGE_STEP( name, 1, min, max, def ) #define _ADD_AV_PROPITEM_RANGE( name, property, type, read, write )\ DEFINE_KSPROPERTY_ITEM\ (\ property,\ read, /* GetSupported or Handler */\ sizeof( type ), /* MinProperty */\ sizeof( type ), /* MinData */\ write, /* SetSupported or Handler */\ &val##name, /* Values */\ 0, /* RelationsCount */\ NULL, /* Relations */\ NULL, /* SupportHandler */\ sizeof( ULONG ) /* SerializedSize */\ ) #define ADD_AV_PROPITEM_RANGE( name, property, type )\ _ADD_AV_PROPITEM_RANGE( name, property, type, TRUE, TRUE ) #define ADD_AV_PROPITEM_RANGE_READ( name, property, type )\ _ADD_AV_PROPITEM_RANGE( name, property, type, TRUE, FALSE ) #define ADD_AV_PROPITEM_RANGE_WRITE( name, property, type )\ _ADD_AV_PROPITEM_RANGE( name, property, type, FALSE, TRUE ) #define _ADD_AV_PROPITEM_TYPE( property, type, read, write )\ DEFINE_KSPROPERTY_ITEM\ (\ property,\ read, /* GetSupported or Handler */\ sizeof( type ), /* MinProperty */\ sizeof( type ), /* MinData */\ write, /* SetSupported or Handler */\ NULL, /* Values */\ 0, /* RelationsCount */\ NULL, /* Relations */\ NULL, /* SupportHandler */\ sizeof( ULONG ) /* SerializedSize */\ ) #define ADD_AV_PROPITEM_TYPE( property, type )\ _ADD_AV_PROPITEM_TYPE( property, type, TRUE, TRUE ) #define ADD_AV_PROPITEM_RANGE_VPA( name, property )\ ADD_AV_PROPITEM_RANGE( name, property, KSPROPERTY_VIDEOPROCAMP_S ) #define ADD_AV_PROPITEM_RANGE_U( name, property )\ ADD_AV_PROPITEM_RANGE( name, property, ULONG ) #define _ADD_AV_PROPITEM( property, read, write )\ DEFINE_KSPROPERTY_ITEM\ (\ property,\ read, /* GetSupported or Handler */\ sizeof( ULONG ), /* MinProperty */\ sizeof( ULONG ), /* MinData */\ write, /* SetSupported or Handler */\ NULL, /* Values */\ 0, /* RelationsCount */\ NULL, /* Relations */\ NULL, /* SupportHandler */\ sizeof( ULONG ) /* SerializedSize */\ ) #define ADD_AV_PROPITEM( property )\ _ADD_AV_PROPITEM( property, TRUE, TRUE ) #define ADD_AV_PROPITEM_READ( property )\ _ADD_AV_PROPITEM( property, TRUE, FALSE ) #define ADD_AV_PROPITEM_WRITE( property )\ _ADD_AV_PROPITEM( property, FALSE, TRUE ) #define DEFINE_AV_KSPROPERTY_TABLE( setname )\ DEFINE_KSPROPERTY_TABLE( setname ) #define DEFINE_AV_KSPROPERTY_SET( guid, propertyname )\ DEFINE_KSPROPERTY_SET\ (\ &guid, /* Property set GUID */\ SIZEOF_ARRAY( propertyname ), /* Size of array of supported properties */\ propertyname, /* Array of supported properties */\ 0,\ NULL\ ) #endif // #ifndef __AVKSPROP_H__