[KS]
[reactos.git] / reactos / drivers / ksfilter / ks / priv.h
1 #define _KSDDK_
2
3 #include <ntifs.h>
4 #include <portcls.h>
5 #include <kcom.h>
6 #include <pseh/pseh2.h>
7
8 #include "ksiface.h"
9 #include "kstypes.h"
10 #include "ksfunc.h"
11
12 #define TAG_DEVICE_HEADER 'KSDH'
13 #define REG_PINFLAG_B_MANY 0x4 /* strmif.h */
14 #define MERIT_DO_NOT_USE 0x200000 /* dshow.h */
15
16 #define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
17 PropGeneral, PropInstances, PropIntersection)\
18 DEFINE_KSPROPERTY_TABLE(PinSet) {\
19 DEFINE_KSPROPERTY_ITEM_PIN_CINSTANCES(PropInstances),\
20 DEFINE_KSPROPERTY_ITEM_PIN_CTYPES(PropGeneral),\
21 DEFINE_KSPROPERTY_ITEM_PIN_DATAFLOW(PropGeneral),\
22 DEFINE_KSPROPERTY_ITEM_PIN_DATARANGES(PropGeneral),\
23 DEFINE_KSPROPERTY_ITEM_PIN_DATAINTERSECTION(PropIntersection),\
24 DEFINE_KSPROPERTY_ITEM_PIN_INTERFACES(PropGeneral),\
25 DEFINE_KSPROPERTY_ITEM_PIN_MEDIUMS(PropGeneral),\
26 DEFINE_KSPROPERTY_ITEM_PIN_COMMUNICATION(PropGeneral),\
27 DEFINE_KSPROPERTY_ITEM_PIN_CATEGORY(PropGeneral),\
28 DEFINE_KSPROPERTY_ITEM_PIN_NAME(PropGeneral),\
29 DEFINE_KSPROPERTY_ITEM_PIN_CONSTRAINEDDATARANGES(PropGeneral),\
30 DEFINE_KSPROPERTY_ITEM_PIN_PROPOSEDATAFORMAT(PropGeneral)\
31 }
32
33 #define DEFINE_KSPROPERTY_CONNECTIONSET(PinSet,\
34 PropStateHandler, PropDataFormatHandler, PropAllocatorFraming)\
35 DEFINE_KSPROPERTY_TABLE(PinSet) {\
36 DEFINE_KSPROPERTY_ITEM_CONNECTION_STATE(PropStateHandler, PropStateHandler),\
37 DEFINE_KSPROPERTY_ITEM_CONNECTION_DATAFORMAT(PropDataFormatHandler, PropDataFormatHandler),\
38 DEFINE_KSPROPERTY_ITEM_CONNECTION_ALLOCATORFRAMING_EX(PropAllocatorFraming)\
39 }
40
41 #define DEFINE_KSPROPERTY_STREAMSET(PinSet,\
42 PropStreamAllocator, PropMasterClock, PropPipeId)\
43 DEFINE_KSPROPERTY_TABLE(PinSet) {\
44 DEFINE_KSPROPERTY_ITEM_STREAM_ALLOCATOR(PropStreamAllocator, PropStreamAllocator),\
45 DEFINE_KSPROPERTY_ITEM_STREAM_MASTERCLOCK(PropMasterClock, PropMasterClock),\
46 DEFINE_KSPROPERTY_ITEM_STREAM_PIPE_ID(PropPipeId, PropPipeId)\
47 }