xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CMona.h (revision c2ddc71cc54397447f60bda00ea1ceca5c80bead)
13895766dSshatty // ****************************************************************************
23895766dSshatty //
33895766dSshatty //		CMona.H
43895766dSshatty //
53895766dSshatty //		Include file for interfacing with the CMona generic driver class
63895766dSshatty //		Set editor tabs to 3 for your viewing pleasure.
73895766dSshatty //
83895766dSshatty // ----------------------------------------------------------------------------
93895766dSshatty //
10*c2ddc71cSJérôme Duval // ----------------------------------------------------------------------------
11*c2ddc71cSJérôme Duval //
12*c2ddc71cSJérôme Duval //   Copyright Echo Digital Audio Corporation (c) 1998 - 2004
133895766dSshatty //   All rights reserved
143895766dSshatty //   www.echoaudio.com
153895766dSshatty //
16*c2ddc71cSJérôme Duval //   This file is part of Echo Digital Audio's generic driver library.
173895766dSshatty //
18*c2ddc71cSJérôme Duval //   Echo Digital Audio's generic driver library is free software;
19*c2ddc71cSJérôme Duval //   you can redistribute it and/or modify it under the terms of
20*c2ddc71cSJérôme Duval //   the GNU General Public License as published by the Free Software Foundation.
213895766dSshatty //
22*c2ddc71cSJérôme Duval //   This program is distributed in the hope that it will be useful,
23*c2ddc71cSJérôme Duval //   but WITHOUT ANY WARRANTY; without even the implied warranty of
24*c2ddc71cSJérôme Duval //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25*c2ddc71cSJérôme Duval //   GNU General Public License for more details.
263895766dSshatty //
27*c2ddc71cSJérôme Duval //   You should have received a copy of the GNU General Public License
28*c2ddc71cSJérôme Duval //   along with this program; if not, write to the Free Software
29*c2ddc71cSJérôme Duval //   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
30*c2ddc71cSJérôme Duval //   MA  02111-1307, USA.
313895766dSshatty //
323895766dSshatty // ****************************************************************************
333895766dSshatty 
343895766dSshatty //	Prevent problems with multiple includes
353895766dSshatty #ifndef _MONAOBJECT_
363895766dSshatty #define _MONAOBJECT_
373895766dSshatty 
383895766dSshatty #include "CEchoGals.h"
393895766dSshatty #include "CMonaDspCommObject.h"
403895766dSshatty 
413895766dSshatty //
423895766dSshatty //	Class used for interfacing with the Darla audio card.
433895766dSshatty //
443895766dSshatty class CMona : public CEchoGals
453895766dSshatty {
463895766dSshatty public:
473895766dSshatty 	//
483895766dSshatty 	//	Construction/destruction
493895766dSshatty 	//
503895766dSshatty 	CMona( PCOsSupport pOsSupport );
513895766dSshatty 
523895766dSshatty 	virtual ~CMona();
533895766dSshatty 
543895766dSshatty 	//
553895766dSshatty 	// Setup & initialization methods
563895766dSshatty 	//
573895766dSshatty 
583895766dSshatty 	virtual ECHOSTATUS InitHw();
593895766dSshatty 
603895766dSshatty 	//
613895766dSshatty 	//	Adapter information methods
623895766dSshatty 	//
633895766dSshatty 
643895766dSshatty 	//
653895766dSshatty 	//	Return the capabilities of this card; card type, card name,
663895766dSshatty 	//	# analog inputs, # analog outputs, # digital channels,
673895766dSshatty 	//	# MIDI ports and supported clocks.
683895766dSshatty 	//	See ECHOGALS_CAPS definition above.
693895766dSshatty 	//
703895766dSshatty 	virtual ECHOSTATUS GetCapabilities
713895766dSshatty 	(
723895766dSshatty 		PECHOGALS_CAPS	pCapabilities
733895766dSshatty 	);
743895766dSshatty 
753895766dSshatty 	//
763895766dSshatty 	//	Audio Interface methods
773895766dSshatty 	//
783895766dSshatty 	virtual ECHOSTATUS QueryAudioSampleRate
793895766dSshatty 	(
803895766dSshatty 		DWORD		dwSampleRate
813895766dSshatty 	);
823895766dSshatty 
833895766dSshatty 	//
843895766dSshatty 	// Get a bitmask of all the clocks the hardware is currently detecting
853895766dSshatty 	//
863895766dSshatty 	virtual ECHOSTATUS GetInputClockDetect(DWORD &dwClockDetectBits);
873895766dSshatty 
883895766dSshatty 	//
893895766dSshatty 	//	Overload new & delete so memory for this object is allocated from
903895766dSshatty 	//	non-paged memory.
913895766dSshatty 	//
923895766dSshatty 	PVOID operator new( size_t Size );
933895766dSshatty 	VOID  operator delete( PVOID pVoid );
943895766dSshatty 
953895766dSshatty protected:
963895766dSshatty 	//
973895766dSshatty 	//	Get access to the appropriate DSP comm object
983895766dSshatty 	//
993895766dSshatty 	PCMonaDspCommObject GetDspCommObject()
1003895766dSshatty 		{ return( (PCMonaDspCommObject) m_pDspCommObject ); }
1013895766dSshatty };		// class CMona
1023895766dSshatty 
1033895766dSshatty typedef CMona * PCMona;
1043895766dSshatty 
1053895766dSshatty #endif
1063895766dSshatty 
1073895766dSshatty // *** CMona.H ***
108