📄 bda_descriptors.cpp
字号:
/////////////////////////////////////////////////////////////////////////////////////////
//Demod node automation and properties.
DEFINE_KSPROPERTY_SET_TABLE(g_demod_node_properties)
{
DEFINE_KSPROPERTY_SET(
&KSPROPSETID_BdaDigitalDemodulator, // Set
SIZEOF_ARRAY(g_digital_demod_properties), // PropertiesCount
g_digital_demod_properties, // PropertyItems
0, // FastIoCount
NULL ), // FastIoTable
DEFINE_KSPROPERTY_SET(
&KSPROPSETID_BdaSignalStats, // Set
SIZEOF_ARRAY(g_signal_stats_properties), // PropertiesCount
g_signal_stats_properties, // PropertyItems
0, // FastIoCount
NULL ),
//
// Additional property sets for the node can be added here.
//
};
DEFINE_KSAUTOMATION_TABLE(g_demod_node_automation)
{
DEFINE_KSAUTOMATION_PROPERTIES(g_demod_node_properties),
DEFINE_KSAUTOMATION_METHODS_NULL,
DEFINE_KSAUTOMATION_EVENTS_NULL
};
/////////////////////////////////////////////////////////////////////////////////////////
//Tuner node automation and properties.
DEFINE_KSPROPERTY_SET_TABLE(g_tuner_node_properties)
{
DEFINE_KSPROPERTY_SET(
&KSPROPSETID_BdaFrequencyFilter, // Property Set defined elsewhere
SIZEOF_ARRAY(g_bda_frequency_properties), // Number of properties in the array
g_bda_frequency_properties, // Property set array
0, // FastIoCount
NULL ), // FastIoTable
DEFINE_KSPROPERTY_SET(
&KSPROPSETID_BdaSignalStats, // Property Set defined elsewhere
SIZEOF_ARRAY(g_signal_stats_properties), // Number of properties in the array
g_signal_stats_properties, // Property set array
0, // FastIoCount
NULL ), // FastIoTable
};
DEFINE_KSAUTOMATION_TABLE(g_tuner_node_automation)
{
DEFINE_KSAUTOMATION_PROPERTIES(g_tuner_node_properties),
DEFINE_KSAUTOMATION_METHODS_NULL,
DEFINE_KSAUTOMATION_EVENTS_NULL
};
/////////////////////////////////////////////////////////////////////////////////////////
//Node descriptors for the ATSC filter
const KSNODE_DESCRIPTOR g_atsc_bda_node_descriptors[] =
{
//Tuner node
{
&g_tuner_node_automation, // Point to KSAUTOMATION_TABLE structure for the node's automation table
&KSNODE_BDA_RF_TUNER, // Point to the guid that defines function of the node
NULL // Point to the guid that represents the name of the topology node
},
//Demod node
{
&g_demod_node_automation, // Point to KSAUTOMATION_TABLE
&KSNODE_BDA_8VSB_DEMODULATOR, // Point to the guid that defines the topology node
NULL // Point to the guid that represents the name of the topology node
}
};
/////////////////////////////////////////////////////////////////////////////////////////
//Node descriptors for the DVB-T filter
const KSNODE_DESCRIPTOR g_dvbt_bda_node_descriptors[] =
{
//Tuner Node
{
&g_tuner_node_automation, // Point to KSAUTOMATION_TABLE structure for the node's automation table
&KSNODE_BDA_RF_TUNER, // Point to the guid that defines function of the node
NULL // Point to the guid that represents the name of the topology node
},
//Demod Node
{
&g_demod_node_automation, // Point to KSAUTOMATION_TABLE
&KSNODE_BDA_COFDM_DEMODULATOR, // Point to the guid that defines the topology node
NULL // Point to the guid that represents the name of the topology node
}
};
typedef enum
{
BDA_TUNER_NODE = 0,
BDA_DEMODULATOR_NODE
}BDA_NODES;
const KSTOPOLOGY_CONNECTION g_bda_filter_topology[] =
{
//FromNode //FromNode Pin //ToNode //ToNodePin
//------------- ------------------------ -------------- ------------------------
{KSFILTER_NODE, 0, /*antenna in pin*/ BDA_TUNER_NODE, 0 /*tuner node in pin*/ },
{BDA_TUNER_NODE, 1, /*tuner node out pin*/ BDA_DEMODULATOR_NODE, 0 /*demod node in pin*/ },
{BDA_DEMODULATOR_NODE, 1, /*demod node out pin*/ KSFILTER_NODE, 1 /*transport out pin*/ }
};
KSPIN_MEDIUM g_bda_transport_pin_medium =
{
TRANSPORT_PIN_MEDIUM, 0, 0
};
/////////////////////////////////////////////////////////////////////////////////////////
KSPIN_DESCRIPTOR_EX g_bda_pin_descriptors[] =
{
// Antenna Input Pin
//
{
NULL, //Dispatch table
NULL, //Automation table
{
0, // Interfaces
NULL,
0, // Mediums
NULL,
SIZEOF_ARRAY(g_bda_antenna_pin_ranges),
g_bda_antenna_pin_ranges,
KSPIN_DATAFLOW_IN,
KSPIN_COMMUNICATION_BOTH,
NULL, //Category
NULL, //Name
0
},
KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT |
KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING |
KSPIN_FLAG_FIXED_FORMAT,
1, //InstancesPossible
1, //InstancesNecessary
NULL, //Allocator frameing
BdaInPin_IntersectRange //IntersectHandler
},
// Tranport Output Pin
//
{
NULL, //Dispatch table
NULL, //Automation table
{
0, // Interfaces
NULL,
1, // Mediums
&g_bda_transport_pin_medium,
SIZEOF_ARRAY(g_bda_transport_pin_ranges),
g_bda_transport_pin_ranges,
KSPIN_DATAFLOW_OUT,
KSPIN_COMMUNICATION_BOTH,
(GUID *) &PINNAME_BDA_TRANSPORT, //Category
(GUID *) &PINNAME_BDA_TRANSPORT, //Name
0
},
KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT |
KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING |
KSPIN_FLAG_FIXED_FORMAT,
1, //InstancesPossible
0, //InstancesNecessary
NULL, //Allocator Framing
BdaTransportPin_IntersectRange //IntersectHandler
}
};
KSFILTER_DESCRIPTOR g_atsc_bda_filter_descriptor =
{
&g_bda_tuner_filter_dispatch, // Dispatch
&g_bda_tuner_filter_automation, // AutomationTable
KSFILTER_DESCRIPTOR_VERSION, // Version
0, // Flags
&BDA_TUNER_REFERENCE_GUID, // ReferenceGuid
DEFINE_KSFILTER_PIN_DESCRIPTORS(g_bda_pin_descriptors),
DEFINE_KSFILTER_CATEGORY(KSCATEGORY_BDA_NETWORK_TUNER),
DEFINE_KSFILTER_NODE_DESCRIPTORS(g_atsc_bda_node_descriptors),
DEFINE_KSFILTER_CONNECTIONS(g_bda_filter_topology),
NULL // ComponentId; in this case, no ID is provided
};
KSFILTER_DESCRIPTOR g_dvbt_bda_filter_descriptor =
{
&g_bda_tuner_filter_dispatch, // Dispatch
&g_bda_tuner_filter_automation, // AutomationTable
KSFILTER_DESCRIPTOR_VERSION, // Version
0, // Flags
&BDA_TUNER_REFERENCE_GUID, // ReferenceGuid
DEFINE_KSFILTER_PIN_DESCRIPTORS(g_bda_pin_descriptors),
DEFINE_KSFILTER_CATEGORY(KSCATEGORY_BDA_NETWORK_TUNER),
DEFINE_KSFILTER_NODE_DESCRIPTORS(g_dvbt_bda_node_descriptors),
DEFINE_KSFILTER_CONNECTIONS(g_bda_filter_topology),
NULL // ComponentId; in this case, no ID is provided
};
/////////////////////////////////////////////////////////////////////////////////////////
const ULONG g_bda_node_joints[] =
{
1 // joint occurs between the two node types (second element in array)
// indicates that 1st node is controlled by input pin and 2nd node by output pin
};
const BDA_PIN_PAIRING g_bda_filter_pin_pairings[] =
{
// Input pin to Output pin Topology Joints
{
0, // ulInputPin; (Filter pin 0 - input pin)
1, // ulOutputPin; (Filter pin 1 - output pin)
1, // ulcMaxInputsPerOutput
1, // ulcMinInputsPerOutput
1, // ulcMaxOutputsPerInput
1, // ulcMinOutputsPerInput
SIZEOF_ARRAY(g_bda_node_joints), // ulcTopologyJoints
g_bda_node_joints // pTopologyJoints; array of joints
}
};
BDA_FILTER_TEMPLATE g_atsc_bda_filter_template =
{
&g_atsc_bda_filter_descriptor,
SIZEOF_ARRAY(g_bda_filter_pin_pairings),
g_bda_filter_pin_pairings
};
BDA_FILTER_TEMPLATE g_dvbt_bda_filter_template =
{
&g_dvbt_bda_filter_descriptor,
SIZEOF_ARRAY(g_bda_filter_pin_pairings),
g_bda_filter_pin_pairings
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -