⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bda_descriptors.cpp

📁 完整的基于Conxant平台的USB电视棒的WIN驱动程序。
💻 CPP
📖 第 1 页 / 共 2 页
字号:

/////////////////////////////////////////////////////////////////////////////////////////
//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 + -