// ****************************************************************************//// CLineLevel.h//// Include file for EchoGals generic driver line level state machine.//// Class for setting and getting mixer values for input and output busses.//// Implemented as a base class with 3 derived classes, one for// each type of line.//// ----------------------------------------------------------------------------//// ----------------------------------------------------------------------------//// 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 _CLineLevel_#define _CLineLevel_class CEchoGals;/****************************************************************************CLineLevel - Base class****************************************************************************/class CLineLevel{protected :INT32 m_iGain; // Current gain in dB X 256BOOL m_fMuted;CEchoGals * m_pEchoGals; // Ptr to our creator objectWORD m_wChannelIndex; // pipe index for this linepublic://// Construction/destruction//CLineLevel();virtual ~CLineLevel();//// Initialization function for initializing arrays of this class//void Init(WORD wChannelIndex, // Which channel we representCEchoGals * pEchoGals, // For setting line levelsINT32 iGain = 0 // Initial gain setting);//// Mute//virtual ECHOSTATUS SetMute( BOOL bOn );BOOL IsMuteOn() { return m_fMuted; }//// Gain functions//INT32 GetGain() { return( m_iGain ); }virtual ECHOSTATUS SetGain(INT32 iGain,BOOL fImmediate = TRUE) = NULL;}; // class CLineLeveltypedef CLineLevel * PCLineLevel;/****************************************************************************CBusInLineLevel - Derived class for managing input bus gains****************************************************************************/class CBusInLineLevel : public CLineLevel{protected :public://// Construction/destruction//CBusInLineLevel();virtual ~CBusInLineLevel();//// Mute//virtual ECHOSTATUS SetMute( BOOL bOn );//// Gain functions//virtual ECHOSTATUS SetGain(INT32 iGain,BOOL fImmediate = TRUE);}; // class CBusInLineLeveltypedef CBusInLineLevel * PCBusInLineLevel;/****************************************************************************CBusOutLineLevel - Derived class for managing output bus gains****************************************************************************/class CBusOutLineLevel : public CLineLevel{protected :public://// Construction/destruction//CBusOutLineLevel();virtual ~CBusOutLineLevel();//// Mute//virtual ECHOSTATUS SetMute( BOOL bOn );//// Gain functions//virtual ECHOSTATUS SetGain(INT32 iGain,BOOL fImmediate = TRUE);}; // class CBusOutLineLeveltypedef CBusOutLineLevel * PCBusOutLineLevel;#endif// **** CLineLevel.h ****