xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CMiaDspCommObject.h (revision 51978af14a173e7fae0563b562be5603bc652aeb)
1 // ****************************************************************************
2 //
3 //		CMiaDspCommObject.H
4 //
5 //		Include file for EchoGals generic driver Mia DSP interface class.
6 //
7 // ----------------------------------------------------------------------------
8 //
9 //		Copyright Echo Digital Audio Corporation (c) 1998 - 2002
10 //		All rights reserved
11 //		www.echoaudio.com
12 //
13 //		Permission is hereby granted, free of charge, to any person obtaining a
14 //		copy of this software and associated documentation files (the
15 //		"Software"), to deal with the Software without restriction, including
16 //		without limitation the rights to use, copy, modify, merge, publish,
17 //		distribute, sublicense, and/or sell copies of the Software, and to
18 //		permit persons to whom the Software is furnished to do so, subject to
19 //		the following conditions:
20 //
21 //		- Redistributions of source code must retain the above copyright
22 //		notice, this list of conditions and the following disclaimers.
23 //
24 //		- Redistributions in binary form must reproduce the above copyright
25 //		notice, this list of conditions and the following disclaimers in the
26 //		documentation and/or other materials provided with the distribution.
27 //
28 //		- Neither the name of Echo Digital Audio, nor the names of its
29 //		contributors may be used to endorse or promote products derived from
30 //		this Software without specific prior written permission.
31 //
32 //		THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
33 //		EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
34 //		MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
35 //		IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR
36 //		ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
37 //		TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
38 //		SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.
39 //
40 // ****************************************************************************
41 
42 #ifndef	_MIADSPCOMMOBJECT_
43 #define	_MIADSPCOMMOBJECT_
44 
45 #include "CDspCommObject.h"
46 
47 class CMiaDspCommObject : public CDspCommObject
48 {
49 public:
50 	//
51 	//	Construction/destruction
52 	//
53 	CMiaDspCommObject( PDWORD pdwRegBase, PCOsSupport pOsSupport );
54 	virtual ~CMiaDspCommObject();
55 
56 	//
57 	//	Set the DSP sample rate.
58 	//	Return rate that was set, -1 if error
59 	//
60 	virtual DWORD SetSampleRate( DWORD dwNewSampleRate );
61 	//
62 	//	Send current setting to DSP & return what it is
63 	//
64 	virtual DWORD SetSampleRate()
65 		{ return( SetSampleRate( GetSampleRate() ) ); }
66 
67 	//
68 	//	Card information
69 	//
70 	virtual WORD GetCardType()
71 		{ return( MIA ); }
72 
73 	//
74 	//	Set input clock
75 	//
76 	virtual ECHOSTATUS SetInputClock(WORD wClock);
77 
78 	virtual ECHOSTATUS GetAudioMeters
79 	(
80 		PECHOGALS_METERS	pMeters
81 	);
82 
83 	virtual ECHOSTATUS SetPipeOutGain
84 	(
85 		WORD wPipeOut,
86 		WORD wBusOut,
87 		int iGain,
88 		BOOL fImmediate = TRUE
89 	);
90 
91 	virtual ECHOSTATUS GetPipeOutGain
92 	(
93 		WORD wPipeOut,
94 		WORD wBusOut,
95 		int &iGain
96 	);
97 
98 	virtual ECHOSTATUS UpdateVmixerLevel();
99 
100 	virtual ECHOSTATUS SetBusOutGain(WORD wBusOut,int iGain);
101 
102 
103 protected:
104 
105 	BOOL		m_bProfessionalSpdif;	// S/PDIF pro/consumer setting
106 
107 };		// class CMiaDspCommObject
108 
109 typedef CMiaDspCommObject * PCMiaDspCommObject;
110 
111 #endif
112 
113 // **** CMiaDspCommObject.h ****
114