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