xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CIndigoIO.h (revision c2ddc71cc54397447f60bda00ea1ceca5c80bead)
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 // ----------------------------------------------------------------------------
11 //
12 //   Copyright Echo Digital Audio Corporation (c) 1998 - 2004
13 //   All rights reserved
14 //   www.echoaudio.com
15 //
16 //   This file is part of Echo Digital Audio's generic driver library.
17 //
18 //   Echo Digital Audio's generic driver library is free software;
19 //   you can redistribute it and/or modify it under the terms of
20 //   the GNU General Public License as published by the Free Software Foundation.
21 //
22 //   This program 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
25 //   GNU General Public License for more details.
26 //
27 //   You should have received a copy of the GNU General Public License
28 //   along with this program; if not, write to the Free Software
29 //   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
30 //   MA  02111-1307, USA.
31 //
32 // ****************************************************************************
33 
34 //	Prevent problems with multiple includes
35 #ifndef _INDIGOIO_OBJECT_
36 #define _INDIGOIO_OBJECT_
37 
38 #include "CEchoGalsVmixer.h"
39 #include "CIndigoIODspCommObject.h"
40 
41 //
42 //	Class used for interfacing with the Indigo IO Cardbus adapter
43 //
44 class CIndigoIO : public CEchoGalsVmixer
45 {
46 public:
47 	//
48 	//	Construction/destruction
49 	//
50 	CIndigoIO( PCOsSupport pOsSupport );
51 
52 	virtual ~CIndigoIO();
53 
54 	//
55 	// Setup & initialization methods
56 	//
57 	virtual ECHOSTATUS InitHw();
58 
59 	//
60 	//	Adapter information methods
61 	//
62 
63 	//
64 	//	Return the capabilities of this card; card type, card name,
65 	//	# analog inputs, # analog outputs, # digital channels,
66 	//	# MIDI ports and supported clocks.
67 	//	See ECHOGALS_CAPS definition above.
68 	//
69 	virtual ECHOSTATUS GetCapabilities
70 	(
71 		PECHOGALS_CAPS	pCapabilities
72 	);
73 
74 	//
75 	// Ask if a given sample rate is supported
76 	//
77 	virtual ECHOSTATUS QueryAudioSampleRate
78 	(
79 		DWORD		dwSampleRate
80 	);
81 
82 	//
83 	//	Overload new & delete so memory for this object is allocated from
84 	//	non-paged memory.
85 	//
86 	PVOID operator new( size_t Size );
87 	VOID  operator delete( PVOID pVoid );
88 
89 	//
90 	// Get the hardware audio latency
91 	//
92 	virtual void GetAudioLatency(ECHO_AUDIO_LATENCY *pLatency);
93 
94 protected:
95 	//
96 	//	Get access to the appropriate DSP comm object
97 	//
98 	PCIndigoIODspCommObject GetDspCommObject()
99 		{ return( (PCIndigoIODspCommObject) m_pDspCommObject ); }
100 };		// class IndigoIO
101 
102 typedef CIndigoIO * PCIndigoIO;
103 
104 #endif
105 
106 // *** CIndigoIO.H ***
107