📄 allcommand.c
字号:
/*************************************************************************
* AllCommand.C *
* Copyright ? Shenzhen Coship Electronics Co.,LTD. 2002.3 *
* All rights reserved. *
* *
* Author: Zhou Cheng *
* Date: 2002/3/13 *
* Compiler: *
* *
* Description: *
* Notes: *
* Update: 2002/3/13 Zhou Cheng *
* 2002/3/29 Zhou Cheng
*************************************************************************/
#include "CSQpskCFG.h"
#include "cs_qpsk.h"
#include "cs_typedef.h"
#include "CSHDI_typedef.h"
#include "AllCommand.h"
#include "Stv0299drv.h"
#include "Stv0399drv.h"
#include "TDA10086Drv.h"
#include "Ix2360drv.h"
#include "Ix2273drv.h"
#include "LGTunerDRV.h"
#include "cs_os.h"
#include "cs_i2c.h"
#include "ZL1031Xdrv.h"
#include "zl10039.h"
#include "stv0288drv.h"
#ifdef CX24116_SUPPORT
#include "cx24116.h"
#endif
#include "cs_assert.h"
#ifdef CX2414X_SUPPORT
// sfg
#include "cx24143drv.h"
#endif
#include "ix2450drv.h"
#include "STB6000drv.h"
#include "LGS002Fdrv.h"
#include "CT202.h"
#include "cx24301.h"
//#define ALLCOM_DEBUG
//========================================================
// Entry struct
//========================================================
typedef struct
{
int m_nType;
CSQPSK_Error_t (*m_pFunSendDiSEqCCommand) (CSHDITunerIndex, PBYTE , int );
CSQPSK_Error_t (*m_pFunToneBurstCommand) (CSHDITunerIndex, BYTE);
CSQPSK_Error_t (*m_pFunSendDiSEqC10Command) (CSHDITunerIndex, BYTE, BYTE, BYTE, BYTE);
CSQPSK_Error_t (*m_pFunSendDiSEqC11Command) (CSHDITunerIndex, BYTE , BYTE , BYTE );
CSQPSK_Error_t (*m_pFunF22KSwitch) ( CSHDITunerIndex, CSHDISwitch);
CSQPSK_Error_t (*m_pFunSendOptionCommand)(CSHDITunerIndex, BYTE);
}T_DiSEqCDES;
T_DiSEqCDES g_DiSEqCDes[MAX_TUNER_NUM];
BYTE g_bPLLICType[MAX_TUNER_NUM];
BYTE g_bLinkICType[MAX_TUNER_NUM];
// sfg for compiler static HCSHANDLE hLGS002FI2C[MAX_TUNER_NUM];
CSQPSK_Error_t VZ0194SetFrequency( CSHDITunerIndex bTunerIndex, DWORD dwTunerFrequency, DWORD dwSymbolRate );
void FTDDiSEqCInit( CSHDITunerIndex bTunerIndex )
{
#ifdef CX2430x_SUPPORT
if (CX2430x == g_bLinkICType[bTunerIndex])
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = CX24301SendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = CX24301SendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = CX24301SendDiSEqCCommand;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = CX24301ToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = CX24301F22KSwitch;
}
else
#endif
#ifdef CX2414X_SUPPORT
if(g_bLinkICType[bTunerIndex] ==CX2414x){
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = CX2414xSendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = CX2414xSendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = CX2414xSendDiSEqCCommand;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = CX2414xToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = CX2414xF22KSwitch;
}
else
#endif
#ifdef STV0288_SUPPORT
if ( g_bLinkICType[bTunerIndex] == STV_0288 )
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = STV0288SendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = STV0288SendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = STV0288SendDiSEqC12Command;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = Stv0288ToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = 0;
g_DiSEqCDes[bTunerIndex].m_pFunSendOptionCommand = STV0288SendOptionCommand;
}
else
#endif
#ifdef STV0299_SUPPORT
if ( g_bLinkICType[bTunerIndex] == STV_0299 )
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = STV0299SendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = STV0299SendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = STV0299SendDiSEqCCommand;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = CSToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = STV0299F22KSwitch;
g_DiSEqCDes[bTunerIndex].m_pFunSendOptionCommand = STV0299SendOptionCommand;
}
else
#endif
#ifdef STV0399_SUPPORT
if ( g_bLinkICType[bTunerIndex] == STV_0399 )
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = STV0399SendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = STV0399SendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = STV0399SendDiSEqC12Command;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = STV0399SendToneBurstCommand;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = STV0399F22KSwitch;
}
else
#endif
#ifdef TDA10086_SUPPORT
if ( g_bLinkICType[bTunerIndex] == TDA10086)
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = TDA10086SendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = TDA10086SendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = TDA10086SendDiSEqC12Command;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = TDA10086SendToneBurstCommand;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = TDA10086F22KSwitch;
}
else
#endif
#ifdef CT202A_SUPPORT
if ( g_bLinkICType[bTunerIndex] == CT202A)
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = CT202ASendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = CT202ASendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = CT202ASendDiSEqC12Command;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = CT202AToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = CT202AF22KSwitch;
g_DiSEqCDes[bTunerIndex].m_pFunSendOptionCommand = CT202ASendOptionCommand;
}
else
#endif
#ifdef ZL10313_SUPPORT
if ( g_bLinkICType[bTunerIndex] == ZL10313)
{
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = ZL1031XSendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = ZL1031XSendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = ZL1031XSendDiSEqCCommand;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = ZL1031XToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = ZL1031X_F22K_Switch;
g_DiSEqCDes[bTunerIndex].m_pFunSendOptionCommand = ZL1031XSendOptionCommand;
}
else
#endif
#ifdef CX24116_SUPPORT
if(g_bLinkICType[bTunerIndex] ==CX24116){
g_DiSEqCDes[bTunerIndex].m_nType = 1;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = PHANTOMSendDiSEqC10Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = PHANTOMSendDiSEqC11Command;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = PHANTOMSendDiSEqCCommand;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = PHANTOMToneBurstCommandOnly;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = PHANTOMF22KSwitch;
g_DiSEqCDes[bTunerIndex].m_pFunSendOptionCommand = PHANTOMSendOptionCommand;
}
else
#endif
{
g_DiSEqCDes[bTunerIndex].m_nType = 0;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC10Command = NULL;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqC11Command = NULL;
g_DiSEqCDes[bTunerIndex].m_pFunSendDiSEqCCommand = NULL;
g_DiSEqCDes[bTunerIndex].m_pFunToneBurstCommand = NULL;
g_DiSEqCDes[bTunerIndex].m_pFunF22KSwitch = NULL;
}
}
CSQPSK_Error_t FTDInitlize ( CSHDITunerIndex bTunerIndex)
{
//int ii;
int nReturn=CSQPSK_FAILURE;
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Test\n");
#ifdef STB6000_SUPPORT
if ( STB6000Init(bTunerIndex) == CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = STB6000;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is STB6000\n");
return CSQPSK_SUCCESS;
}
STB6000Term(bTunerIndex);
}
#endif
#ifdef IX2450_SUPPORT
if ( IX2450Init(bTunerIndex) == CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = IX2450 ;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is 0194\n");
return CSQPSK_SUCCESS;
}
IX2450Term(bTunerIndex);
}
#endif
#ifdef IX2360_SUPPORT
if ( IX2360Init(bTunerIndex) == CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = IX2360 ;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is IX2360\n");
return CSQPSK_SUCCESS;
}
IX2360Term(bTunerIndex);
}
#endif
#ifdef IX2273_SUPPORT
if (IX2273Init(bTunerIndex)== CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = IX2273 ;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is IX2273\n");
return CSQPSK_SUCCESS;
}
IX2273Term(bTunerIndex);
}
#endif
#ifdef LGTUNERIC_SUPPORT
if(LGInit(bTunerIndex)== CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = LGTUNERIC ;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is LG Tuner\n");
return CSQPSK_SUCCESS;
}
LGTerm(bTunerIndex);
}
#endif
#ifdef LGS002F_SUPPORT
if(LGS002FInit(bTunerIndex)== CSQPSK_SUCCESS )
{
g_bPLLICType[bTunerIndex] = LGS002F;
if ( FTDCheckTuner (bTunerIndex) == CSQPSK_SUCCESS )
{
CSTRACE( INFO_LEVEL, "\n[HDI][CS_QPSK][FTDInitlize]:Tuner is LG S002F\n");
return CSQPSK_SUCCESS;
}
LGS002FTerm(bTunerIndex);
}
#endif
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err FTDInitlize Tuner is unknown!\n");
printf("[HDIQPSK] Err FTDInitlize Tuner is unknown!\r\n");
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %s\n", __FILE__, __LINE__);
nReturn = CSQPSK_FAILURE;
g_bPLLICType[bTunerIndex] = 0xff ;
return nReturn;
}
CSQPSK_Error_t FTDGetTunerStatus ( CSHDITunerIndex bTunerIndex, int *pnPLLLock )
{
if ( g_bPLLICType[bTunerIndex] == ZL10039)
{
#ifdef ZL10039_SUPPORT
return ZL1003zGetTuneLock (bTunerIndex,pnPLLLock);
#endif
}
else if ( g_bPLLICType[bTunerIndex] == IX2360 )
{
#ifdef IX2360_SUPPORT
return IX2360GetPLLStatus (bTunerIndex,pnPLLLock);
#endif
}
else if ( g_bPLLICType[bTunerIndex] == IX2273 )
{
#ifdef IX2273_SUPPORT
return IX2273GetPLLStatus (bTunerIndex,pnPLLLock);
#endif
}
else if ( g_bPLLICType[bTunerIndex] == LGTUNERIC )
{
#ifdef LGTUNERIC_SUPPORT
return LGTunerGetPLLStatus(bTunerIndex,pnPLLLock) ;
#endif
}
else if ( g_bPLLICType[bTunerIndex] == IX2450 )
{
#ifdef IX2450_SUPPORT
return IX2450GetPLLStatus(bTunerIndex,pnPLLLock) ;
#endif
}
else if ( g_bPLLICType[bTunerIndex] == LGS002F )
{
#ifdef LGS002F_SUPPORT
return LGS002FGetPLLStatus(bTunerIndex,pnPLLLock);
#endif
}
else if ( g_bPLLICType[bTunerIndex] == STB6000 )
{
#ifdef STB6000_SUPPORT
return ( STB6000GetPLLStatus (bTunerIndex,pnPLLLock) ) ;
#endif
}
// 加入其它PLL IC
return CSQPSK_DEVICE_UNKNOWN;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -