xref: /haiku/src/add-ons/kernel/drivers/audio/echo/generic/CLayla24.h (revision 626bc4bee107897c38c596c3440cf0a74b4b9c40)
13895766dSshatty // ****************************************************************************
23895766dSshatty //
33895766dSshatty //		CLayla24.h
43895766dSshatty //
53895766dSshatty //		Include file for interfacing with the CLayla24 generic driver class
63895766dSshatty //		Set editor tabs to 3 for your viewing pleasure.
73895766dSshatty //
8*626bc4beSJérôme Duval // This file is part of Echo Digital Audio's generic driver library.
9*626bc4beSJérôme Duval // Copyright Echo Digital Audio Corporation (c) 1998 - 2005
10c2ddc71cSJérôme Duval // All rights reserved
11c2ddc71cSJérôme Duval // www.echoaudio.com
12c2ddc71cSJérôme Duval //
13*626bc4beSJérôme Duval // This library is free software; you can redistribute it and/or
14*626bc4beSJérôme Duval // modify it under the terms of the GNU Lesser General Public
15*626bc4beSJérôme Duval // License as published by the Free Software Foundation; either
16*626bc4beSJérôme Duval // version 2.1 of the License, or (at your option) any later version.
17c2ddc71cSJérôme Duval //
18*626bc4beSJérôme Duval // This library is distributed in the hope that it will be useful,
19c2ddc71cSJérôme Duval // but WITHOUT ANY WARRANTY; without even the implied warranty of
20*626bc4beSJérôme Duval // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21*626bc4beSJérôme Duval // Lesser General Public License for more details.
22c2ddc71cSJérôme Duval //
23*626bc4beSJérôme Duval // You should have received a copy of the GNU Lesser General Public
24*626bc4beSJérôme Duval // License along with this library; if not, write to the Free Software
25*626bc4beSJérôme Duval // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
263895766dSshatty //
273895766dSshatty // ****************************************************************************
283895766dSshatty 
293895766dSshatty //	Prevent problems with multiple includes
303895766dSshatty #ifndef _LAYLA24OBJECT_
313895766dSshatty #define _LAYLA24OBJECT_
323895766dSshatty 
33c2ddc71cSJérôme Duval #include "CEchoGalsMTC.h"
343895766dSshatty #include "CLayla24DspCommObject.h"
353895766dSshatty 
363895766dSshatty 
373895766dSshatty //
383895766dSshatty //	Class used for interfacing with the Layla24 audio card.
393895766dSshatty //
40c2ddc71cSJérôme Duval class CLayla24 : public CEchoGalsMTC
413895766dSshatty {
423895766dSshatty public:
433895766dSshatty 	//
443895766dSshatty 	//	Construction/destruction
453895766dSshatty 	//
463895766dSshatty 	CLayla24( PCOsSupport pOsSupport );
473895766dSshatty 	virtual ~CLayla24();
483895766dSshatty 
493895766dSshatty 	//
503895766dSshatty 	// Setup & initialization methods
513895766dSshatty 	//
523895766dSshatty 	virtual ECHOSTATUS InitHw();
533895766dSshatty 
543895766dSshatty 	//
553895766dSshatty 	//	Adapter information methods
563895766dSshatty 	//
573895766dSshatty 	virtual ECHOSTATUS GetCapabilities
583895766dSshatty 	(
593895766dSshatty 		PECHOGALS_CAPS	pCapabilities
603895766dSshatty 	);
613895766dSshatty 
623895766dSshatty 	//
633895766dSshatty 	//	Audio interface methods
643895766dSshatty 	//
653895766dSshatty 	virtual ECHOSTATUS QueryAudioSampleRate
663895766dSshatty 	(
673895766dSshatty 		DWORD		dwSampleRate
683895766dSshatty 	);
693895766dSshatty 
703895766dSshatty 	//
713895766dSshatty 	// Get a bitmask of all the clocks the hardware is currently detecting
723895766dSshatty 	//
733895766dSshatty 	virtual ECHOSTATUS GetInputClockDetect(DWORD &dwClockDetectBits);
743895766dSshatty 
753895766dSshatty 	//
763895766dSshatty 	//  Overload new & delete so memory for this object is allocated from non-paged memory.
773895766dSshatty 	//
783895766dSshatty 	PVOID operator new( size_t Size );
793895766dSshatty 	VOID  operator delete( PVOID pVoid );
803895766dSshatty 
813895766dSshatty protected:
823895766dSshatty 	//
833895766dSshatty 	//	Get access to the appropriate DSP comm object
843895766dSshatty 	//
853895766dSshatty 	PCLayla24DspCommObject GetDspCommObject()
863895766dSshatty 		{ return( (PCLayla24DspCommObject) m_pDspCommObject ); }
873895766dSshatty 
883895766dSshatty };		// class CLayla24
893895766dSshatty 
903895766dSshatty typedef CLayla24 * PCLayla24;
913895766dSshatty 
923895766dSshatty #endif
933895766dSshatty 
943895766dSshatty // *** Layla24.H ***
95