xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CGina24DspCommObject.h (revision 51978af14a173e7fae0563b562be5603bc652aeb)
1 // ****************************************************************************
2 //
3 //		CGina24DspCommObject.H
4 //
5 //		Include file for EchoGals generic driver Gina24 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	_GINA24DSPCOMMOBJECT_
43 #define	_GINA24DSPCOMMOBJECT_
44 
45 #include "CGMLDspCommObject.h"
46 
47 class CGina24DspCommObject : public CGMLDspCommObject
48 {
49 public:
50 	//
51 	//	Construction/destruction
52 	//
53 	CGina24DspCommObject( PDWORD pdwRegBase, PCOsSupport pOsSupport );
54 	virtual ~CGina24DspCommObject();
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 	//	Set digital mode
68 	//
69 	virtual ECHOSTATUS SetDigitalMode
70 	(
71 		BYTE	byNewMode
72 	);
73 	//
74 	//	Get mask of all supported digital modes
75 	//	(See ECHOCAPS_HAS_DIGITAL_MODE_??? defines in EchoGalsXface.h)
76 	//
77 	virtual DWORD GetDigitalModes()
78 		{ return( ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_RCA	  |
79 					 ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_OPTICAL |
80 					 ECHOCAPS_HAS_DIGITAL_MODE_ADAT			  |
81 					 ECHOCAPS_HAS_DIGITAL_MODE_SPDIF_CDROM	); }
82 
83 	//
84 	//	Set input clock
85 	//
86 	virtual ECHOSTATUS SetInputClock(WORD wClock);
87 
88 	//
89 	//	Card information
90 	//
91 	virtual WORD GetCardType()
92 		{ return( GINA24 ); }
93 
94 protected:
95 
96 	virtual BOOL LoadASIC();
97 
98 	BYTE *	m_pbyAsic;					// Current ASIC code
99 
100 };		// class CGina24DspCommObject
101 
102 typedef CGina24DspCommObject * PCGina24DspCommObject;
103 
104 #endif
105 
106 // **** Gina24DspCommObject.h ****
107