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

📄 driv0299.h

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 H
字号:
/* **************************************************************************************
 *  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: .c $             
 *
 * Description:
 * ============
 * DECLARATIONS FOR THE STV0299 DRIVER
 * 
 * Log:
 * ====
 * $Revision: $
 * Last Modified by $Author:  $ at $Modtime: $ 
 **************************************************************************************** */
#include "Config.h"		// Global Configuration - do not remove!


/*************************************************************
 * STV 0299 evaluation software                             //
 * Version 1.0   dated  September 1999                      //
 * Author : Jean-Yves COUET    								//
 *          Mariano BONA                                    //
 *          Stephane ARDISSON                               //
 * SGS-THOMSON Video application Lab.  				    	//
*************************************************************/

#ifndef H_DRIV0299
#define H_DRIV0299

/////////////////////////////////////////////////////////////////////////////////////////////////
// Include files

#include "Config.h"
#include "Include\Sysdefs.h"
#include "Devices\Demodulator\demod_def.h"

/////////////////////////////////////////////////////////////////////////////////////////////////
// Constants
	
/* One point of the lookup table */
#define MAXLOOKUPSIZE 50
#define MAX_NUMBER_OF_SYMBOL_RATES 10

/////////////////////////////////////////////////////////////////////////////////////////////////
// Enumerations & Structures

typedef struct
{
	INT32 realval;		/* real value (10000 x C/N or power ) */
	INT32 regval;		/* register value (C/N estimator value or AGC1 integrator value) */
} LOOKPOINT;

/* Lookup table definition */
typedef struct
{
	INT32 size;						/* Size of the lookup table	*/
	LOOKPOINT table[MAXLOOKUPSIZE]; /* Lookup table	*/
} LOOKUP;

/* Signal type enum	*/
typedef enum
{
	NOAGC1=0,
	AGC1SATURATION,
	AGC1OK,
	NOTIMING,
	ANALOGCARRIER,
	TIMINGOK,
	NOAGC2,
	AGC2OK,
	NOCARRIER,
	CARRIEROK,
	NODATA,
	FALSELOCK,
	DATAOK,
	OUTOFRANGE,
	RANGEOK
} SIGNALTYPE;

/* Puncture Rate enum */
typedef enum
{	
	PR2_3=0,
	PR3_4,
	PR5_6,
	PR7_8,
	PR1_2,
	PRUNKNOWN
} PUNCTURERATE;

/* Polarization enum */
typedef enum 
{
	NOPOLARIZATION=0,
	HORIZONTAL,
	VERTICAL,
	H_V,
	V_H
} POLARIZATION;

/* Search result structure */    
typedef struct
{
	SIGNALTYPE	SignalType;
	POLARIZATION Polarization;
	PUNCTURERATE PunctureRate;
	long Frequency;
	long SymbolRate; 
} SEARCHRESULT;


/* Scan direction enum	*/
typedef enum 
{
	SCANUP=1,
	SCANDOWN=-1
} SCANDIR; 

/* Scan mode enum */
typedef enum 
{
	DRV_SCAN = 0,
	DRV_SEARCH
} SCANMODE;

/* AGC2 gain and frequency structure */
typedef struct
{
	INT32 NbPoints;
	INT32 Gain[3];
	long Frequency[3];
} AGC2TIMINGOK;	

/* Search parameters structure */         
typedef struct
{
	SIGNALTYPE State;

	INT32 ScanMode;

	long Frequency,
		 BaseFreq,
		 SymbolRate,
		 MasterClock,
		 Mclk,
		 SearchRange,
		 SubRange,
		 TunerStep,
		 TunerOffset,
		 TunerBW,
		 TunerIF,
		 TunerIQ,
		 RollOff;
		
	long DerotFreq,
		 DerotPercent,
		 DerotStep,
		 Direction,
		 Tagc1,
		 Tagc2,
		 Ttiming,
		 Tderot,
		 Tdata,
		 SubDir;

		// params of ContinueFrequencyScan():
	long SymbolRates[MAX_NUMBER_OF_SYMBOL_RATES+1];
	int  DerotStepSize;
	long WidthArray[MAX_NUMBER_OF_SYMBOL_RATES]; 
	long CurrentLnb;				/*	Current lnb used	*/
	long MinWidth;					/*	Width of the used low pass filter	*/
	long lnb[3];
	SCANDIR ScanDirection;
	INT8	direction;
	UINT32	ulLnbSwitchFreq;
} SEARCHPARAMS;

/////////////////////////////////////////////////////////////////////////////////////////////////
// Public Services

void SetLnb(DEMOD_HANDLE handle, INT32 Lnb);     
void SetPolarization(DEMOD_HANDLE handle, POLARIZATION Polarization);
POLARIZATION GetPolarization(DEMOD_HANDLE handle);
void InitParams(DEMOD_HANDLE handle);
void InitSearch(DEMOD_HANDLE handle, INT32 Frequency, long SymbolRate, long SearchRange, INT32 DerotStep,SCANMODE Mode);
SIGNALTYPE SimpleSearch(DEMOD_HANDLE handle);
SIGNALTYPE AutoSearchAlgo(DEMOD_HANDLE handle ); 
void GetSearchResult(DEMOD_HANDLE handle, SEARCHRESULT *pResult);
void StartAutoFrequencyScan(DEMOD_HANDLE handle, int DerotStep);
void ContinueAutoFrequencyScan(DEMOD_HANDLE handle);
//int CarrierGetQuality(DEMOD_HANDLE handle, LOOKUP *lookup); Never used in DTV or DVD-P 
//int SignalGetPower(DEMOD_HANDLE handle, LOOKUP *lookup); Never used in DTV or DVD-P
INT32 CarrierGetError(DEMOD_HANDLE handle);  
void DiseqcSend(DEMOD_HANDLE handle, unsigned char *Data,INT32 NbData);   

/////////////////////////////////////////////////////////////////////////////////////////////////
// Private Services

void DeleteWidthArray(unsigned long *pWidth);
unsigned long *FillWidthArray(long *pSymbolRate, long RollOff,long *MinWidth);

#endif // H_DRIV0299

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -