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

📄 tunerapi.h

📁 sigma_designs的tuner驱动
💻 H
字号:
/***************************************************************************** * * tunerapiOpen() * tunerapiClose() * * -Tuners must be opened before use. * -Tuners must be closed if not used. * *****************************************************************************/// Tuner Model//----------------------------------------------------------------------------// supported tuner listtypedef enum { TunerModel_None=TUNER_ENUM+0x0200,TunerModel_Alps_TDHU1X501A,TunerModel_Philips_TUV1236D,TunerModel_Philips_FQ1216ME,TunerModel_Philips_TU1216,TunerModel_Last } TUNER_MODEL;// Tuner Modes//----------------------------------------------------------------------------typedef enum { TunerMode_none=TUNER_ENUM+0x0100, // PAL ModesTunerMode_Analog_tvBG, TunerMode_Analog_tvI, TunerMode_Analog_tvDK, TunerMode_Analog_tvL, TunerMode_Analog_tvL1,// NTSC ModesTunerMode_Analog_tvM, TunerMode_Analog_tvMJapan,// FM ModesTunerMode_Analog_fmStereo, TunerMode_Analog_fmMono, TunerMode_Analog_fmHighSense, TunerMode_Analog_fm_NormSense,// ATSC ModesTunerMode_Atsc_Parallel, TunerMode_Atsc_Serial,// DVBT ModesTunerMode_DvbT_Parallel, TunerMode_DvbT_Serial,TunerMode_Last } TUNER_MODE;// Tuner Input//----------------------------------------------------------------------------// tuners may have multiple input connectorstypedef enum { TunerInput_None=TUNER_ENUM+0x0300,// First = defaultTunerInput_First,// Specific inputs, if labeledTunerInput_Terrestrial, TunerInput_Cable,TunerInput_Last } TUNER_INPUT;// Function Parameters//----------------------------------------------------------------------------typedef struct tagTUNERAPI_CFG {	TUNER_MODEL nTunerModel;	TUNER_MODE nTunerMode;	TUNER_INPUT nTunerInput;        // I2C Specifics	I2CAL_CONTEXT*	pI2Cal_Context; 	RMuint8 I2CAddress[2];} TUNERAPI_CFG;typedef RMuint32 TUNERAPI_CONTEXT;// Function Definitions//----------------------------------------------------------------------------RMstatus tunerapiOpen(TUNERAPI_CFG* pTunerApiCfg, TUNERAPI_CONTEXT *pContext);RMstatus tunerapiClose(TUNERAPI_CONTEXT context);/***************************************************************************** * * tunerapiSetProperty() * tunerapiGetProperty() * * -Get/Set various tuner properties. * -Properties are TYPE Specific * *****************************************************************************/// Tuner Properties//----------------------------------------------------------------------------typedef enum { TunerApiProperty_INVALID=TUNER_ENUM+0x0500,TunerApiProperty_TuneFrequency,// R     No longer W, use Tune// RMuint32             TUNERAPI_PROPERTY_DATA_U.uFrequencyTunerApiProperty_TunerLowestFrequency,// R// RMuint32             TUNERAPI_PROPERTY_DATA_U.uFrequencyTunerApiProperty_TunerHighestFrequency,// R// RMuint32             TUNERAPI_PROPERTY_DATA_U.uFrequencyTunerApiProperty_SignalStatus,// R// TUNER_SIGNAL_STATUS  TUNERAPI_PROPERTY_DATA_U.nSignalStatusTunerApiProperty_SignalStrength,// R// RMint32              TUNERAPI_PROPERTY_DATA_U.iSignalStrengthTunerApiProperty_AnalogStatusBits,// R// RMuint32             TUNERAPI_PROPERTY_DATA_U.uAnalogStatusBitsTunerApiProperty_ChannelSpacing,// R/W// RMuint32		TUNERAPI_PROPERTY_DATA_U.uFrequency// DvbT Properties// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//TunerApiProperty_DvbT_ChannelSpacing,// R/W// RMuint32                             TUNERAPI_PROPERTY_DATA_U.uFrequency// - This is also bandwidth??TunerApiProperty_DvbT_RfOffset,// R/W// TUNER_DVBT_RFOFFSET                  TUNERAPI_PROPERTY_DATA_U.nDvbTRFOffset;TunerApiProperty_DvbT_SpectralInversion,// R/W// TUNER_DVBT_SPECTRALINVERSION         TUNERAPI_PROPERTY_DATA_U.nDvbTSpectralInversionTunerApiProperty_DvbT_Modulation,// R/W// TUNER_DVBT_MODULATION                TUNERAPI_PROPERTY_DATA_U.nDvbTModulationTunerApiProperty_DvbT_GuardInterval,// R/W// TUNER_DVBT_GUARDINTERVAL             TUNERAPI_PROPERTY_DATA_U.nDvbTGuardIntervalTunerApiProperty_DvbT_FftCarrierMode,// R/W// TUNER_DVBT_FFT                       TUNERAPI_PROPERTY_DATA_U.nDvbTFftTunerApiProperty_DvbT_Hierarchy,// R/W// TUNER_DVBT_HIERARCHY                 TUNERAPI_PROPERTY_DATA_U.nDvbTHierarchyTunerApiProperty_DvbT_Priority,// R/W// TUNER_DVBT_PRIORITY                  TUNERAPI_PROPERTY_DATA_U.nDvbTPriorityTunerApiProperty_DvbT_VitDepuncHighRate,// R/W// TUNER_DVBT_DEPUNCRATE                TUNERAPI_PROPERTY_DATA_U.nDvbTDepuncRateTunerApiProperty_DvbT_VitDepuncLowRate,// R/W// TUNER_DVBT_DEPUNCRATE                TUNERAPI_PROPERTY_DATA_U.nDvbTDepuncRateTunerApiProperty_DvbT_TrueFrequency// R// RMuint32             								TUNERAPI_PROPERTY_DATA_U.uFrequency} TUNERAPI_PROPERTY;// Property Values//----------------------------------------------------------------------------typedef enum { TunerSignalStatus_None=TUNER_ENUM+0x0600, TunerSignalStatus_NoCarrier, TunerSignalStatus_Searching, TunerSignalStatus_CarrierOk, TunerSignalStatus_Last } TUNER_SIGNAL_STATUS;#define TUNER_SIGNAL_STRENGTH_INVALID		-1// DvbT Values// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef enum{ TunerDvbTRfOffset_Invalid=TUNER_ENUM+0x0a00,TunerDvbTRfOffset_Auto, TunerDvbTRfOffset_0,TunerDvbTRfOffset_plus125, TunerDvbTRfOffset_minus125,TunerDvbTRfOffset_plus166, TunerDvbTRfOffset_minus166,TunerDvbTRfOffset_plus333, TunerDvbTRfOffset_minus333,TunerDvbTRfOffset_plus500, TunerDvbTRfOffset_minus500,TunerDvbTRfOffset_Last } TUNER_DVBT_RFOFFSET;typedef enum{ TunerDvbTSpectralInversion_Invalid=TUNER_ENUM+0x0b00, TunerDvbTSpectralInversion_Auto,TunerDvbTSpectralInversion_Normal, TunerDvbTSpectralInversion_Inverted,TunerDvbTSpectralInversion_Last } TUNER_DVBT_SPECTRALINVERSION;typedef enum{ TunerDvbTModulation_Invalid=TUNER_ENUM+0x0c00, TunerDvbTModulation_Auto,TunerDvbTModulation_Bpsk, TunerDvbTModulation_Qpsk,TunerDvbTModulation_Qam4, TunerDvbTModulation_Psk8,TunerDvbTModulation_Qam16, TunerDvbTModulation_Qam32,TunerDvbTModulation_Qam64,TunerDvbTModulation_Qam128, TunerDvbTModulation_Qam256, TunerDvbTModulation_Qam512, TunerDvbTModulation_Qam1024,TunerDvbTModulation_Last } TUNER_DVBT_MODULATION;typedef enum{ TunerDvbTGuardInterval_Invalid=TUNER_ENUM+0x0d00,TunerDvbTGuardInterval_Auto,TunerDvbTGuardInterval_32, TunerDvbTGuardInterval_16,TunerDvbTGuardInterval_8, TunerDvbTGuardInterval_4,TunerDvbTGuardInterval_Last } TUNER_DVBT_GUARDINTERVAL;typedef enum{ TunerDvbTFFT_Invalid=TUNER_ENUM+0x0e00,TunerDvbTFFT_Auto, TunerDvbTFFT_2k, TunerDvbTFFT_8k,TunerDvbTFFT_Last } TUNER_DVBT_FFT;typedef enum{ TunerDvbTHierarchy_Invalid=TUNER_ENUM+0x0f00,TunerDvbTHierarchy_Auto, TunerDvbTHierarchy_No,TunerDvbTHierarchy_Alpha1, TunerDvbTHierarchy_Alpha2, TunerDvbTHierarchy_Alpha4,TunerDvbTHierarchy_Last } TUNER_DVBT_HIERARCHY;typedef enum{ TunerDvbTPriority_Invalid=TUNER_ENUM+0x1000,TunerDvbTPriority_Auto, TunerDvbTPriority_High, TunerDvbTPriority_Low,TunerDvbTPriority_Last } TUNER_DVBT_PRIORITY;typedef enum{ TunerDvbTDepuncRate_Invalid=TUNER_ENUM+0x1100, TunerDvbTDepuncRate_Auto,TunerDvbTDepuncRate_12, TunerDvbTDepuncRate_23,TunerDvbTDepuncRate_34, TunerDvbTDepuncRate_45,TunerDvbTDepuncRate_56, TunerDvbTDepuncRate_67,TunerDvbTDepuncRate_78, TunerDvbTDepuncRate_89,TunerDvbTDepuncRate_Last } TUNER_DVBT_DEPUNCRATE;// Function Parameters//----------------------------------------------------------------------------typedef union tagTUNERAPI_PROPERTY_DATA_U {	RMuint32 uFrequency;	TUNER_SIGNAL_STATUS nSignalStatus;	RMint32 iSignalStrength;	RMuint32 uAnalogStatusBits;        // DvbT Parameters        TUNER_DVBT_RFOFFSET             nDvbTRFOffset;        TUNER_DVBT_SPECTRALINVERSION    nDvbTSpectralInversion;        TUNER_DVBT_MODULATION           nDvbTModulation;        TUNER_DVBT_GUARDINTERVAL        nDvbTGuardInterval;        TUNER_DVBT_FFT                  nDvbTFft;        TUNER_DVBT_HIERARCHY            nDvbTHierarchy;        TUNER_DVBT_PRIORITY             nDvbTPriority;        TUNER_DVBT_DEPUNCRATE           nDvbTDepuncRate;  } TUNERAPI_PROPERTY_DATA_U;// Function Definitions//----------------------------------------------------------------------------RMstatus tunerapiSetProperty(TUNERAPI_CONTEXT context, TUNERAPI_PROPERTY nProperty, TUNERAPI_PROPERTY_DATA_U* pData_U);RMstatus tunerapiGetProperty(TUNERAPI_CONTEXT context, TUNERAPI_PROPERTY nProperty, TUNERAPI_PROPERTY_DATA_U* pData_U);/***************************************************************************** * * tunerapiTune() * - set frequency * - start acquisition * *****************************************************************************/// Function Definitions//----------------------------------------------------------------------------RMstatus tunerapiTune(TUNERAPI_CONTEXT context, RMuint32 uFrequency);/***************************************************************************** * * tunerapiScan() * * -Scanning * - todo: implement step size for atsc * *****************************************************************************/// Function Parameters//----------------------------------------------------------------------------typedef struct tagSCAN_RESULT_T {	RMuint32 uFrequency;} SCAN_RESULT_T;// Function Definitions//----------------------------------------------------------------------------RMstatus tunerapiScan(TUNERAPI_CONTEXT context, RMuint32 uStart, RMuint32 uStop, SCAN_RESULT_T *pScanResult_T);

⌨️ 快捷键说明

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