cx24143_fun.h
来自「QPSK Tuner details, for conexant chipset」· C头文件 代码 · 共 350 行 · 第 1/2 页
H
350 行
/* cobra_api.h */
/****************************************************************************
* Conexant QPSK driver (internal mode) *
* Copyright ? Shenzhen Coship Electronics Co.,LTD. *
* All rights reserved. *
* Author: Sunfugong *
* Create Date: 2005/7/20 *
* Update: 2005/8/01 Sunfugong *
*****************************************************************************/
#ifndef COBRA_API_H_DEFINED
#define COBRA_API_H_DEFINED
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "CS_typedef.h"
#include "CSHDI_typedef.h"
/*******************************************************************************************************/
/* API prototypes */
/*******************************************************************************************************/
BOOL API_InitEnvironment(NIM *nim,ULONG demodhandle,void ( * SBwrite)(ULONG ,UCHAR ,UCHAR ,ULONG *),UCHAR ( * SBread)(ULONG ,UCHAR ,ULONG *),TRANSPEC transpec,BOOL (*TUNER_install)(NIM *nim),ULONG crystalfreq,VCOINIT vcoinit,MPEG_OUT *mpeg_out,LNBMODE *lnbmode,BOOL (*waitfunct)(NIM *nim,int mscount));
BOOL API_ChangeChannel(NIM *nim,CHANOBJ *chanobj, CSHDITunerIndex bTunerIndex);
BOOL API_Monitor(NIM *nim,ACQSTATE *acqstate,LOCKIND *lockind);
BOOL API_SetTunerFrequency(NIM *nim,ULONG freq);
BOOL API_GetTunerFrequency(NIM *nim,ULONG *freq);
BOOL API_GetPLLFrequency(NIM *nim,ULONG *pllfreq);
BOOL API_GetTunerVCO(NIM *nim,UCHAR *vcono);
BOOL API_GetVCODivider(NIM *nim,VCODIV*);
BOOL API_FindVCOEdges(NIM *nim,RDIVVAL rdiv);
BOOL API_SetVCOEdges(NIM *nim,VCO_EDGE *vcoedge,int *vcoedgecount);
BOOL API_GetVCOEdges(NIM *nim,VCO_EDGE *vcoedge,int *vcoedgecount);
BOOL API_GetVCOBreakpoints(NIM *nim,int bp_percentage,VCO_EDGE *vcoedge,VCO_BP*);
BOOL API_GetVCOBreakpointPercentage(NIM *nim,int *bp_percentage);
BOOL API_SetVCOBreakpointPercentage(NIM *nim,int bp_percentage);
BOOL API_SetOutputOptions(NIM *nim,MPEG_OUT *mpeg_out);
BOOL API_GetOutputOptions(NIM *nim,MPEG_OUT *mpeg_out);
BOOL API_SetInterruptOptions(NIM *nim,INTEROPTS interopts);
BOOL API_SetSearchRangeLimit(NIM *nim,ULONG lnboffset,ULONG *actual);
BOOL API_GetSearchRangeLimit(NIM *nim,ULONG *lnboffset);
BOOL API_SetModulation(NIM *nim,MODTYPE modtype);
BOOL API_GetModulation(NIM *nim,MODTYPE *modtype);
BOOL API_GetAssociatedSampleFrequency(NIM *nim, SAMPFRQ sampfrq, ULONG *AssdFs);
BOOL API_SetSampleFrequency(NIM *nim,SAMPFRQ sampfrq);
BOOL __API_SetSampleFrequency(NIM *nim,ULONG sampratehz);
BOOL API_GetSampleFrequency(NIM *nim,ULONG *samplerate);
BOOL API_SetTransportSpec(NIM *nim,TRANSPEC transpec);
BOOL API_GetTransportSpec(NIM *nim,TRANSPEC *transpec);
BOOL API_SetSymbolRate(NIM *nim,SYMBRATE symbolrate);
BOOL API_GetSymbolRate(NIM *nim,SYMBRATE *symbolrate);
BOOL API_SetViterbiRate(NIM *nim,CODERATE coderate);
BOOL API_GetViterbiRate(NIM *nim,CODERATE *coderate);
BOOL API_SetSpectralInversion(NIM *nim,SPECINV specinv);
BOOL API_GetSpectralInversion(NIM *nim,SPECINV *specinv);
BOOL API_AcqBegin(NIM *nim);
BOOL API_AcqContinue(NIM *nim,ACQSTATE *acqstate);
BOOL API_AcqStop(NIM *nim);
BOOL API_AcqSoftReset(NIM *nim);
BOOL API_AcqSetViterbiCodeRates(NIM *nim,DWORD vcr);
BOOL API_AcqGetViterbiCodeRates(NIM *nim,DWORD *vcr);
BOOL API_AcqTrackingSetup(NIM *nim);
BOOL API_AcqBinSizeList(NIM *nim,SYMBRATE symbrate,BINLIST *binlist);
BOOL API_GetPendingInterrupts(NIM *nim,INTEROPTS *interopts);
BOOL _API_ClearPendingInterrupts(NIM *nim,INTEROPTS intropts);
BOOL API_GetLockIndicators(NIM *nim,LOCKIND *lockind);
BOOL API_GetChannelEsNo(NIM *nim,ESNOMODE emode,CMPLXNO *esno,MSTATUS *mstat);
BOOL API_GetPNBER(NIM *nim,PNBER errwindow,CMPLXNO *pnber,MSTATUS *mstat);
BOOL API_GetBER(NIM *nim,ULONG errwindow,CMPLXNO *ber,MSTATUS *mstat);
BOOL API_GetByteErrors(NIM *nim,ULONG errwindow,CMPLXNO *byteerr,MSTATUS *mstat);
BOOL API_GetBlockErrors(NIM *nim,ULONG errwindow,CMPLXNO *blockerr,MSTATUS *mstat);
BOOL API_GetNormCount(NIM *nim,UCHAR *normcounter);
BOOL API_GetFrequencyOffset(NIM *nim,LONG *freqoffset);
BOOL API_GetAcquisitionOffset(NIM *nim,LONG *lnboffset);
BOOL API_SetCentralFreq(NIM *nim,LONG centralfreq);
BOOL API_GetCentralFreq(NIM *nim,LONG *centralfreq);
BOOL API_GetCTL(NIM *nim,LONG *ctl);
BOOL API_EnableRSCorrection(NIM *nim,BOOL opt);
BOOL API_GetAGCAcc(NIM *nim,AGCACC *agcacc);
BOOL API_GetBTL(NIM *nim,LONG *btl);
BOOL API_SetLNBDC(NIM *nim,LNBPOL lnbpol);
BOOL API_GetLNBDC(NIM *nim,LNBPOL *lnbpol);
BOOL API_SetLNBMode(NIM *nim,LNBMODE *lnbmode);
BOOL API_SetLNBTone(NIM *nim,LNBTONE lnbtone);
BOOL API_GetLNBTone(NIM *nim,LNBTONE *lnbtone);
BOOL API_SendDiseqcMessage(NIM *nim,UCHAR *message,UCHAR message_length,BOOL last_message,LNBBURST bursttype);
BOOL API_ReadReg(NIM *nim,int reg,UCHAR *data);
BOOL API_WriteReg(NIM *nim,int reg,UCHAR *data);
BOOL API_TstateMpegOutputs(NIM *nim,TSTATE tvalue);
BOOL API_GetEffectiveFrequency(NIM *nim,ULONG *effectfrq);
BOOL API_CalculatePLLFrequency(NIM *nim,DWORD nreg,DWORD areg,ULONG *pllfreq);
BOOL API_CalculatePdFrequency(NIM *nim,int rreg,ULONG *pdfreq);
BOOL API_CalculateNAR(NIM *nim,ULONG Fdesired,RDIVVAL R,DWORD *N,DWORD *A);
BOOL API_SetSleepMode(NIM *nim,BOOL sleep);
BOOL API_SetDriverWait(NIM *nim,BOOL (*waitfunct)(NIM *nim,int mscount));
#ifdef OPTIMAL_FS_CODE /* Fs optimization */
BOOL API_Opt_Fs_Enable(NIM *nim,BOOL flag);
BOOL API_Opt_Fs_Disable(NIM *nim);
#endif /* #ifdef OPTIMAL_FS_CODE */
/*******************************************************************************************************/
/* Cx24123 specific APIs */
/*******************************************************************************************************/
#ifdef CAMARIC_FEATURES
#ifdef INCLUDE_DISEQC2
BOOL API_DiseqcReceiveMessage(NIM *nim, UCHAR *buffer, int buffer_len, int *received_len, RXMODE rxmode, int *parityerrors);
BOOL API_DiseqcSetRxMode(NIM *nim, RXMODE rxmode);
BOOL API_DiseqcGetRxMode(NIM *nim, RXMODE *rxmode);
BOOL API_Diseqc22KHzSetAmplitude(NIM *nim, int amplitude);
BOOL API_Diseqc22KHzGetAmplitude(NIM *nim, int *amplitude);
BOOL API_DiseqcSetVersion(NIM *nim, DISEQC_VER dv);
BOOL API_DiseqcGetVersion(NIM *nim, DISEQC_VER *dv);
BOOL API_SetDiseqcInterrupt(NIM *nim,BOOL on);
BOOL API_GetDiseqcInterrupt(NIM *nim,INTEROPTS *interopts);
BOOL API_ClearDiseqcInterrupt(NIM *nim);
#endif /* #ifdef INCLUDE_DISEQC2 */
/*******************************************************************************************************/
/* (end-of-Cx24123 specific APIs) */
/*******************************************************************************************************/
#endif /* #ifdef CAMARIC_FEATURES */
/*******************************************************************************************************/
/*******************************************************************************************************/
/*******************************************************************************************************/
#if 1 //sfg
#include "cx24143_defs.h"
/*******************************************************************************************************/
/* Common-user Macros */
/*******************************************************************************************************/
#define DRIVER_set_complex(c,i,d) (((c)->integer=((LONG)(i))),((c)->divider=((ULONG)(d))))
#define DRIVER_register_bitlen(c) (Register[(c)].bit_count)
#define DRIVER_errcount_enable(n,l) (RegisterWrite(n,CX24130_BERRSSELECT,(l)))
#define DRIVER_GetRequestedSearchRangeLimit(n) (n->lnboffset)
#define _BCD_adjust(b) (_BCD_adjust_improved((b),(0)))
#define LNB_TUNERLSBA ((LONG)(nim->crystal_freq / 10UL) / 2L)
/*******************************************************************************************************/
/* BCD Macros (3-4-02 moved from cx24143_defs.h file) */
/*******************************************************************************************************/
#define BCD_clear(a) (BCD_set((a),0L))
#define BCD_sign(a) (BCD_getsign(a))
#define BCD_getsign(a) ((signed int)((a)->sign[0] == '-' ? -1 : 1))
#define BCD_setsign(a,b) ((a)->sign[0] = (CHAR)((b) < 0 ? '-' : '+'))
#define _BCD_lsd(a) ((a)->digits[MAX_BCDNO-1]) /* least-significant-digit */
#define BCD_incr(a) ((_BCD_lsd(a) = (CHAR)(_BCD_lsd(a)+BCD_sign(a))),(_BCD_adjust(a)))
#define BCD_decr(a) ((_BCD_lsd(a) = (CHAR)(_BCD_lsd(a)-BCD_sign(a))),(_BCD_adjust(a)))
/*******************************************************************************************************/
/* Driver-only Enums */
/*******************************************************************************************************/
/*******************************************************************************************************/
/* RSERRCNT */
/*******************************************************************************************************/
typedef enum RsErrCnt{ /* BERRSSelect Settings*/
RSERRCNT_NONE=0x00, /* No count (counter off) */
RSERRCNT_BLOCK=0x01, /* perform block count */
RSERRCNT_BYTE=0x02, /* perform byte count */
RSERRCNT_BIT=0x03 /* perform bit count */
}RSERRCNT;
/*******************************************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?