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 + -
显示快捷键?