91 lines
3.3 KiB
C++
91 lines
3.3 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// (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_
|