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

📄 allcommand.c

📁 QPSK Tuner details, for conexant chipset.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*************************************************************************

* 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 + -