1// **************************************************************************** 2// 3// C3g.H 4// 5// Include file for interfacing with the 3G generic driver class 6// Set editor tabs to 3 for your viewing pleasure. 7// 8// ---------------------------------------------------------------------------- 9// 10// ---------------------------------------------------------------------------- 11// 12// This file is part of Echo Digital Audio's generic driver library. 13// Copyright Echo Digital Audio Corporation (c) 1998 - 2005 14// All rights reserved 15// www.echoaudio.com 16// 17// This library is free software; you can redistribute it and/or 18// modify it under the terms of the GNU Lesser General Public 19// License as published by the Free Software Foundation; either 20// version 2.1 of the License, or (at your option) any later version. 21// 22// This library is distributed in the hope that it will be useful, 23// but WITHOUT ANY WARRANTY; without even the implied warranty of 24// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 25// Lesser General Public License for more details. 26// 27// You should have received a copy of the GNU Lesser General Public 28// License along with this library; if not, write to the Free Software 29// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 30// 31// **************************************************************************** 32 33// Prevent problems with multiple includes 34#ifndef _3GOBJECT_ 35#define _3GOBJECT_ 36 37#include "CEchoGalsMTC.h" 38#include "C3gDco.h" 39 40// 41// Class used for interfacing with the 3G audio card. 42// 43class C3g : public CEchoGalsMTC 44{ 45public: 46 // 47 // Construction/destruction 48 // 49 C3g( PCOsSupport pOsSupport ); 50 virtual ~C3g(); 51 52 // 53 // Setup & initialization methods 54 // 55 virtual ECHOSTATUS InitHw(); 56 57 // 58 // Return the capabilities of this card; card type, card name, 59 // # analog inputs, # analog outputs, # digital channels, 60 // # MIDI ports and supported clocks. 61 // See ECHOGALS_CAPS definition above. 62 // 63 virtual ECHOSTATUS GetCapabilities 64 ( 65 PECHOGALS_CAPS pCapabilities 66 ); 67 68 void Get3gBoxType(DWORD *pOriginalBoxType,DWORD *pCurrentBoxType); 69 char *Get3gBoxName(); 70 71 // 72 // Get the audio latency for a single pipe 73 // 74 virtual void GetAudioLatency(ECHO_AUDIO_LATENCY *pLatency); 75 76 // 77 // Audio Interface methods 78 // 79 virtual ECHOSTATUS QueryAudioSampleRate 80 ( 81 DWORD dwSampleRate 82 ); 83 84 virtual void QuerySampleRateRange(DWORD &dwMinRate,DWORD &dwMaxRate); 85 86 // 87 // Start transport for several pipes at once 88 // 89 virtual ECHOSTATUS Start 90 ( 91 PCChannelMask pChannelMask 92 ); 93 using CEchoGalsMTC::Start; 94 95 // 96 // Get a bitmask of all the clocks the hardware is currently detecting 97 // 98 virtual ECHOSTATUS GetInputClockDetect(DWORD &dwClockDetectBits); 99 100 // 101 // Phantom power on/off for Gina3G 102 // 103 virtual void GetPhantomPower(BOOL *pfPhantom); 104 virtual void SetPhantomPower(BOOL fPhantom); 105 106 // 107 // Overload new & delete so memory for this object is allocated from 108 // non-paged memory. 109 // 110 PVOID operator new( size_t Size ); 111 VOID operator delete( PVOID pVoid ); 112 113protected: 114 // 115 // Get access to the appropriate DSP comm object 116 // 117 PC3gDco GetDspCommObject() 118 { return( (PC3gDco) m_pDspCommObject ); } 119 120 BOOL m_fPhantomPower; 121 122}; // class CMia 123 124 125typedef C3g * PC3g; 126 127#endif 128 129// *** C3g.H *** 130