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

📄 prtuner.h

📁 MiniWinOuterSM MiniWinOuterSM
💻 H
字号:
/*
	PrTuner.h
	Copyright (C) 2004-2005 CLife. All rights reserved.
*/

#ifndef _PR_TUNER_H_
#define _PR_TUNER_H_

#include "PrTypes.h"

PR_BEGIN_EXTERN_C

typedef enum
{
	PR_TUNER_SATELLITE = 0x00, //卫星调谐器
	PR_TUNER_CABLE = 0x01, //有线调谐器
	PR_TUNER_TERRESTRIAL = 0x02 //地面调谐器
}PRTunerType;
typedef enum fe_status {
       FE_HAS_SIGNAL   = 0x01,   /*  found something above the noise level */
       FE_HAS_CARRIER  = 0x02,   /*  found a DVB signal  */
       FE_HAS_VITERBI  = 0x04,   /*  FEC is stable  */
       FE_HAS_SYNC     = 0x08,   /*  found sync bytes  */
       FE_HAS_LOCK     = 0x10,   /*  everything's working... */
       FE_TIMEDOUT     = 0x20,   /*  no lock within the last ~2 seconds */
       FE_REINIT       = 0x40    /*  frontend was reinitialized,  */
} fe_status_t;
typedef enum
{
	PR_TUNER_EVENT_NONE = 0x00, //空事件
	PR_TUNER_EVENT_LOCK = 0x01, //锁定事件
	PR_TUNER_EVENT_UNLOCK = 0x02 //锁定丢失事件
}PRTunerEvent;
typedef enum fe_spectral_inversion {
     INVERSION_OFF,
     INVERSION_ON,
     INVERSION_AUTO
}FESpectralInversion;
 
 
typedef enum fe_code_rate {
        FEC_NONE = 0,
        FEC_1_2,
        FEC_2_3,
        FEC_3_4,
        FEC_4_5,
        FEC_5_6,
        FEC_6_7,
        FEC_7_8,
        FEC_8_9,
        FEC_AUTO
}FECodeRate;


typedef enum fe_modulation {
        QPSK,
        QAM_16,
        QAM_32,
        QAM_64,
        QAM_128,
        QAM_256,
        QAM_AUTO,
        VSB_8,
        VSB_16
}FEModulation;

typedef enum fe_transmit_mode {
        TRANSMISSION_MODE_2K,
        TRANSMISSION_MODE_8K,
        TRANSMISSION_MODE_AUTO
}FETransmitMode;

typedef enum fe_bandwidth {
        BANDWIDTH_8_MHZ,
        BANDWIDTH_7_MHZ,
        BANDWIDTH_6_MHZ,
        BANDWIDTH_AUTO
}FEBandwidth;


typedef enum fe_guard_interval {
        GUARD_INTERVAL_1_32,
        GUARD_INTERVAL_1_16,
        GUARD_INTERVAL_1_8,
        GUARD_INTERVAL_1_4,
        GUARD_INTERVAL_AUTO
}FEGuardInterval;


typedef enum fe_hierarchy {
        HIERARCHY_NONE,
        HIERARCHY_1,
        HIERARCHY_2,
        HIERARCHY_4,
        HIERARCHY_AUTO
}FEHierarchy;
struct dvb_qpsk_parameters {
       UINT32           symbol_rate;  /* symbol rate in Symbols per second */
       FECodeRate  fec_inner;    /* forward error correction (see above) */
};
struct dvb_qam_parameters {
       UINT32     symbol_rate; /* symbol rate in Symbols per second */
       FECodeRate   fec_inner;   /* forward error correction (see above) */
       FEModulation modulation;  /* modulation type (see above) */
};
struct dvb_vsb_parameters {
       FEModulation modulation;  /* modulation type (see above) */
};
struct dvb_ofdm_parameters {
       FEBandwidth     bandwidth;
       FECodeRate      code_rate_HP;  /* high priority stream code rate */
       FECodeRate      code_rate_LP;  /* low priority stream code rate */
       FEModulation    constellation; /* modulation type (see above) */
       FETransmitMode  transmission_mode;
       FEGuardInterval guard_interval;
       FEHierarchy    hierarchy_information;
};
typedef struct dvb_frontend_parameters {
        UINT32 frequency; //(absolute) frequency in Hz for QAM/OFDM/ATSC
                            //intermediate frequency in kHz for QPSK 
        FESpectralInversion inversion;
        union {
                struct dvb_qpsk_parameters qpsk;
                struct dvb_qam_parameters  qam;
                struct dvb_ofdm_parameters ofdm;
                struct dvb_vsb_parameters vsb;
        }u;
}PRTunerParams;

typedef struct
{
    INT32 frequency;
	INT32 symbol_rate;
	UINT8 modulation;
    FESpectralInversion spectrumInv; //频谱反转状态
    PRTunerEvent carrier; //锁定状态
    UINT8 level; //电平
    UINT8 snr; //信噪比
}PRTunerStatus;

typedef struct
{
	UINT32 tunersNum; //调谐器数量
	PRTunerType type; //调谐器类型
}PRTunerCapability;

typedef PRStatus (*PRTunerEventNotify)(INT32 tuner,PRTunerEvent eventType);

PRStatus PrTunerInit(void);
PRStatus PrTunerTerm(void);

PRStatus PrTunerGetCapability(INT32 tuner,PRTunerCapability *capability);
PRStatus PrTunerRegisterEventNotify(INT32 tuner,PRTunerEventNotify eventNotify);
PRStatus PrTunerGetStatus(INT32 tuner,PRTunerStatus *status);
PRStatus PrTunerSet(INT32 tuner,PRTunerParams *params);
UINT32 PrGetLastFrequency(void);
//获取最近使用的频率
PR_END_EXTERN_C

#endif	/* _PR_TUNER_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -