|
|
//////////////////////////////////////////////////////////////////////////////
//
// (C) Philips Semiconductors-CSU 1999
// All rights are reserved. Reproduction in whole or in part is prohibited
// without the written consent of the copyright owner.
//
// Philips reserves the right to make changes without notice at any time.
// Philips makes no warranty, expressed, implied or statutory, including but
// not limited to any implied warranty of merchantibility or fitness for any
// particular purpose, or that the use will not infringe any third party
// patent, copyright or trademark. Philips must not be liable for any loss
// or damage arising from its use.
//
// VSBBASE.H
// Definition of CVSBDemod class
//////////////////////////////////////////////////////////////////////////////
#ifndef _VSBBASE_H_
#define _VSBBASE_H_
#include "wdmdrv.h"
#include "i2script.h"
#include "util.h"
#include "ksvsb.h"
#include "vsbdef.h"
class CVSBDemod { public:
CVSBDemod(CI2CScript *p_I2CScript, BoardInfoType *p_BoardInfo, NTSTATUS *p_Status); virtual UINT SetRegisterList(RegisterType *p_Registers, UINT uiNumRegisters); virtual UINT GetRegisterList(RegisterType *p_Registers, UINT uiNumRegisters, UINT uiRegisterType); virtual UINT SetCoeff(VsbCoeffType *p_Coeff, UINT uiNumCoeff); virtual UINT GetCoeff(VsbCoeffType *p_Coeff, UINT uiNumCoeff);
virtual UINT SetControlRegister(RegisterType *p_Registers, UINT uiNumRegisters); virtual UINT GetControlRegister(RegisterType *p_registers, UINT uinum_registers); virtual UINT GetStatusRegister(RegisterType *p_Registers, UINT uiNumRegisters);
virtual UINT WriteControlReg(RegisterType *p_Registers, UINT uiNumRegisters, BOOL bWrite); virtual UINT ReadStatusReg(RegisterType *p_Registers, UINT uiNumRegisters);
virtual BOOL IsVSBLocked(); virtual BOOL SoftwareReset(ULONG ulResetCtrl); virtual BOOL InitVSB() = 0; virtual BOOL CoeffIDToAddress(UINT uiID, UINT *p_uiAddress, UINT uiRegisterType) = 0; virtual BOOL GetStatus(PVsbStatusType p_Status) = 0;
virtual BOOL SetOutputMode(UINT uiOutputMode) = 0; virtual BOOL GetOutputMode(UINT *p_uiOutputMode) = 0; virtual BOOL SetDiagMode(VSBDIAGTYPE ulMode) = 0; virtual BOOL GetDiagMode(ULONG *p_ulMode) = 0; virtual ULONG GetDiagSpeed(ULONG ulType) = 0;
protected: virtual UINT WriteCoeff(VsbCoeffType **pp_Coeff, UINT uiNumCoeff); virtual UINT ReadCoeff(VsbCoeffType **pp_Coeff, UINT uiNumCoeff); virtual UINT Write(UCHAR *p_ucBuffer, UINT uiNumReg, UINT uiStartAddr); virtual UINT Read(UCHAR *p_ucBuffer, UINT uiNumReg, UINT uiStartAddr);
virtual BOOL EnableCoefficients(UCHAR ucEnable) = 0; virtual BOOL DisableCoefficients() = 0; virtual BOOL Initialize() = 0;
protected: UCHAR m_ucControlReg[MAX_VSB_REGISTERS]; CMutex m_RegisterLock; UCHAR m_ucI2CBuffer[MAX_VSB_BUF_SIZE]; CI2CScript *m_pI2CScript; UCHAR m_ucVsbDemodAddress; UINT m_uiMaxControlRegisterAddress; UINT m_uiMaxStatusRegisterAddress;
};
#endif //_VSBBASE_H_
|