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.
 
 
 
 
 
 

151 lines
4.3 KiB

/******************************************************************************
*
* $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__