1// **************************************************************************** 2// 3// CIndigoIO.H 4// 5// Include file for interfacing with the CIndigo generic driver class 6// Set editor tabs to 3 for your viewing pleasure. 7// 8// ---------------------------------------------------------------------------- 9// 10// This file is part of Echo Digital Audio's generic driver library. 11// Copyright Echo Digital Audio Corporation (c) 1998 - 2005 12// All rights reserved 13// www.echoaudio.com 14// 15// This library is free software; you can redistribute it and/or 16// modify it under the terms of the GNU Lesser General Public 17// License as published by the Free Software Foundation; either 18// version 2.1 of the License, or (at your option) any later version. 19// 20// This library is distributed in the hope that it will be useful, 21// but WITHOUT ANY WARRANTY; without even the implied warranty of 22// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 23// Lesser General Public License for more details. 24// 25// You should have received a copy of the GNU Lesser General Public 26// License along with this library; if not, write to the Free Software 27// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 28// 29// **************************************************************************** 30 31// Prevent problems with multiple includes 32#ifndef _INDIGOIO_OBJECT_ 33#define _INDIGOIO_OBJECT_ 34 35#include "CEchoGalsVmixer.h" 36#include "CIndigoIODspCommObject.h" 37 38// 39// Class used for interfacing with the Indigo IO Cardbus adapter 40// 41class CIndigoIO : public CEchoGalsVmixer 42{ 43public: 44 // 45 // Construction/destruction 46 // 47 CIndigoIO( PCOsSupport pOsSupport ); 48 49 virtual ~CIndigoIO(); 50 51 // 52 // Setup & initialization methods 53 // 54 virtual ECHOSTATUS InitHw(); 55 56 // 57 // Adapter information methods 58 // 59 60 // 61 // Return the capabilities of this card; card type, card name, 62 // # analog inputs, # analog outputs, # digital channels, 63 // # MIDI ports and supported clocks. 64 // See ECHOGALS_CAPS definition above. 65 // 66 virtual ECHOSTATUS GetCapabilities 67 ( 68 PECHOGALS_CAPS pCapabilities 69 ); 70 71 // 72 // Ask if a given sample rate is supported 73 // 74 virtual ECHOSTATUS QueryAudioSampleRate 75 ( 76 DWORD dwSampleRate 77 ); 78 79 virtual void QuerySampleRateRange(DWORD &dwMinRate,DWORD &dwMaxRate); 80 81 // 82 // Overload new & delete so memory for this object is allocated from 83 // non-paged memory. 84 // 85 PVOID operator new( size_t Size ); 86 VOID operator delete( PVOID pVoid ); 87 88 // 89 // Get the hardware audio latency 90 // 91 virtual void GetAudioLatency(ECHO_AUDIO_LATENCY *pLatency); 92 93protected: 94 // 95 // Get access to the appropriate DSP comm object 96 // 97 PCIndigoIODspCommObject GetDspCommObject() 98 { return( (PCIndigoIODspCommObject) m_pDspCommObject ); } 99}; // class IndigoIO 100 101typedef CIndigoIO * PCIndigoIO; 102 103#endif 104 105// *** CIndigoIO.H *** 106