// ****************************************************************************//// CLaylaDspCommObject.H//// Include file for EchoGals generic driver Layla DSP interface class.//// ----------------------------------------------------------------------------//// This file is part of Echo Digital Audio's generic driver library.// Copyright Echo Digital Audio Corporation (c) 1998 - 2005// All rights reserved// www.echoaudio.com//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//// ****************************************************************************#ifndef _LAYLADSPCOMMOBJECT_#define _LAYLADSPCOMMOBJECT_#include "CDspCommObject.h"//*****************************************************************************//// Layla clock numbers to send to DSP////*****************************************************************************#define LAYLA20_CLOCK_INTERNAL 0#define LAYLA20_CLOCK_SPDIF 1#define LAYLA20_CLOCK_WORD 2#define LAYLA20_CLOCK_SUPER 3//*****************************************************************************//// CLaylaDspCommObject////*****************************************************************************class CLaylaDspCommObject : public CDspCommObject{protected:enum{LAYLA20_INPUT_TRIMS = 8};BYTE m_byInputTrims[LAYLA20_INPUT_TRIMS]; // Input trims for Layla20's 8 analog// inputspublic://// Construction/destruction//CLaylaDspCommObject( PDWORD pdwRegBase, PCOsSupport pOsSupport );virtual ~CLaylaDspCommObject();//// Set the DSP sample rate// Return rate that was set, -1 if error//virtual DWORD SetSampleRate( DWORD dwNewSampleRate );//// Send current setting to DSP & return what it is//virtual DWORD SetSampleRate(){ return( SetSampleRate( GetSampleRate() ) ); }//// Card information//virtual WORD GetCardType(){ return( LAYLA ); }//// Set clocks//virtual ECHOSTATUS SetOutputClock(WORD wClock);virtual ECHOSTATUS SetInputClock(WORD wClock);//// Input gain//virtual ECHOSTATUS SetBusInGain(WORD wBusIn,INT32 iGain);virtual ECHOSTATUS GetBusInGain(WORD wBusIn,INT32 &iGain);virtual ECHOSTATUS SetNominalLevel( WORD wBus, BOOL bState );protected:virtual BOOL LoadASIC();using CDspCommObject::LoadASIC;//// Check status of ASIC - loaded or not loaded//enum{NUM_ASIC_ATTEMPTS = 5,NUM_ASIC_WINS = 3};virtual BOOL CheckAsicStatus();}; // class CLaylaDspCommObjecttypedef CLaylaDspCommObject * PCLaylaDspCommObject;#endif// **** LaylaDspCommObject.h ****