// **************************************************************************** // // CLaylaDspCommObject.H // // Include file for EchoGals generic driver Layla DSP interface class. // // ---------------------------------------------------------------------------- // // Copyright Echo Digital Audio Corporation (c) 1998 - 2002 // All rights reserved // www.echoaudio.com // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal with the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, sublicense, and/or sell copies of the Software, and to // permit persons to whom the Software is furnished to do so, subject to // the following conditions: // // - Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimers. // // - Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimers in the // documentation and/or other materials provided with the distribution. // // - Neither the name of Echo Digital Audio, nor the names of its // contributors may be used to endorse or promote products derived from // this Software without specific prior written permission. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. // IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR // ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE // SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. // // **************************************************************************** #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: BYTE m_byInputTrims[8]; // Input trims for Layla20's 8 analog // inputs public: // // 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,int iGain); virtual ECHOSTATUS GetBusInGain(WORD wBusIn,int &iGain); virtual ECHOSTATUS SetNominalLevel( WORD wBus, BOOL bState ); virtual BOOL IsMidiOutActive(); protected: virtual BOOL LoadASIC(); }; // class CLaylaDspCommObject typedef CLaylaDspCommObject * PCLaylaDspCommObject; #endif // **** LaylaDspCommObject.h ****