BPicture: Fix archive constructor.
[haiku.git] / src / add-ons / kernel / drivers / audio / echo / generic / C3g.h
blob7f14b3408a928a69b4cfe38a3c13a7e8b80b65e4
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 // ----------------------------------------------------------------------------
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
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.
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.
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
31 // ****************************************************************************
33 // Prevent problems with multiple includes
34 #ifndef _3GOBJECT_
35 #define _3GOBJECT_
37 #include "CEchoGalsMTC.h"
38 #include "C3gDco.h"
41 // Class used for interfacing with the 3G audio card.
43 class C3g : public CEchoGalsMTC
45 public:
47 // Construction/destruction
49 C3g( PCOsSupport pOsSupport );
50 virtual ~C3g();
53 // Setup & initialization methods
55 virtual ECHOSTATUS InitHw();
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.
63 virtual ECHOSTATUS GetCapabilities
65 PECHOGALS_CAPS pCapabilities
68 void Get3gBoxType(DWORD *pOriginalBoxType,DWORD *pCurrentBoxType);
69 char *Get3gBoxName();
72 // Get the audio latency for a single pipe
74 virtual void GetAudioLatency(ECHO_AUDIO_LATENCY *pLatency);
77 // Audio Interface methods
79 virtual ECHOSTATUS QueryAudioSampleRate
81 DWORD dwSampleRate
84 virtual void QuerySampleRateRange(DWORD &dwMinRate,DWORD &dwMaxRate);
87 // Start transport for several pipes at once
89 virtual ECHOSTATUS Start
91 PCChannelMask pChannelMask
95 // Get a bitmask of all the clocks the hardware is currently detecting
97 virtual ECHOSTATUS GetInputClockDetect(DWORD &dwClockDetectBits);
100 // Phantom power on/off for Gina3G
102 virtual void GetPhantomPower(BOOL *pfPhantom);
103 virtual void SetPhantomPower(BOOL fPhantom);
106 // Overload new & delete so memory for this object is allocated from
107 // non-paged memory.
109 PVOID operator new( size_t Size );
110 VOID operator delete( PVOID pVoid );
112 protected:
114 // Get access to the appropriate DSP comm object
116 PC3gDco GetDspCommObject()
117 { return( (PC3gDco) m_pDspCommObject ); }
119 BOOL m_fPhantomPower;
121 }; // class CMia
124 typedef C3g * PC3g;
126 #endif
128 // *** C3g.H ***