xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CIndigoIO.h (revision 4dd9e43637031d2c5a6755a0184040f0de8f2884)
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 //
41 class CIndigoIO : public CEchoGalsVmixer
42 {
43 public:
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 
93 protected:
94 	//
95 	//	Get access to the appropriate DSP comm object
96 	//
GetDspCommObject()97 	PCIndigoIODspCommObject GetDspCommObject()
98 		{ return( (PCIndigoIODspCommObject) m_pDspCommObject ); }
99 };		// class IndigoIO
100 
101 typedef CIndigoIO * PCIndigoIO;
102 
103 #endif
104 
105 // *** CIndigoIO.H ***
106