// **************************************************************************** // // CGinaDspCommObject.cpp // // Implementation file Gina20 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 // // **************************************************************************** #include "CEchoGals.h" #include "CGinaDspCommObject.h" #include "Gina20DSP.c" /**************************************************************************** Construction and destruction ****************************************************************************/ //=========================================================================== // // Constructor // //=========================================================================== CGinaDspCommObject::CGinaDspCommObject ( PDWORD pdwRegBase, // Virtual ptr to DSP registers PCOsSupport pOsSupport ) : CGdDspCommObject( pdwRegBase, pOsSupport ) { strcpy( m_szCardName, "Gina" ); m_pdwDspRegBase = pdwRegBase; // Virtual addr DSP's register base m_wNumPipesOut = 10; m_wNumPipesIn = 4; m_wNumBussesOut = 10; m_wNumBussesIn = 4; m_wFirstDigitalBusOut = 8; m_wFirstDigitalBusIn = 2; m_fHasVmixer = FALSE; m_wNumMidiOut = 0; // # MIDI out channels m_wNumMidiIn = 0; // # MIDI in channels m_pwDspCodeToLoad = pwGina20DSP; // // Since this card has no ASIC, mark it as loaded so everything works OK // m_bASICLoaded = TRUE; } // CGinaDspCommObject::CGinaDspCommObject( DWORD dwPhysRegBase ) //=========================================================================== // // Destructor // //=========================================================================== CGinaDspCommObject::~CGinaDspCommObject() { } // CGinaDspCommObject::~CGinaDspCommObject() /**************************************************************************** Hardware config ****************************************************************************/ //=========================================================================== // // Destructor // //=========================================================================== ECHOSTATUS CGinaDspCommObject::SetInputClock(WORD wClock) { ECHO_DEBUGPRINTF( ( "CGinaDspCommObject::SetInputClock:\n" ) ); switch ( wClock ) { case ECHO_CLOCK_INTERNAL : // Reset the audio state to unknown (just in case) m_byGDCurrentClockState = GD_CLOCK_UNDEF; m_byGDCurrentSpdifStatus = GD_SPDIF_STATUS_UNDEF; SetSampleRate(); m_wInputClock = wClock; ECHO_DEBUGPRINTF( ( "\tSet Gina clock to INTERNAL\n" ) ); break; case ECHO_CLOCK_SPDIF : m_pDspCommPage->byGDClockState = GD_CLOCK_SPDIFIN; m_pDspCommPage->byGDSpdifStatus = GD_SPDIF_STATUS_NOCHANGE; ClearHandshake(); SendVector( DSP_VC_SET_GD_AUDIO_STATE ); m_byGDCurrentClockState = GD_CLOCK_SPDIFIN; ECHO_DEBUGPRINTF( ( "\tSet Gina clock to SPDIF\n" ) ); m_wInputClock = wClock; break; default : return ECHOSTATUS_CLOCK_NOT_SUPPORTED; } // switch ( wClock ) return ECHOSTATUS_OK; } // ECHOSTATUS CGinaDspCommObject::SetInputClock() // **** GinaDspCommObject.cpp ****