📄 tunerapi.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 + -