windows-nt/Source/XPSP1/NT/drivers/wdm/bda/samples/mauitune/vsbbase.h
2020-09-26 16:20:57 +08:00

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_