1// ****************************************************************************
2//
3//		CLayla.h
4//
5//		Include file for interfacing with the CLayla generic driver class
6//		Set editor tabs to 3 for your viewing pleasure.
7//
8// ----------------------------------------------------------------------------
9//
10// This file is part of Echo Digital Audio's generic driver library.
11// Copyright Echo Digital Audio Corporation (c) 1998 - 2005
12// All rights reserved
13// www.echoaudio.com
14//
15// This library is free software; you can redistribute it and/or
16// modify it under the terms of the GNU Lesser General Public
17// License as published by the Free Software Foundation; either
18// version 2.1 of the License, or (at your option) any later version.
19//
20// This library is distributed in the hope that it will be useful,
21// but WITHOUT ANY WARRANTY; without even the implied warranty of
22// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23// Lesser General Public License for more details.
24//
25// You should have received a copy of the GNU Lesser General Public
26// License along with this library; if not, write to the Free Software
27// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
28//
29// ****************************************************************************
30
31//	Prevent problems with multiple includes
32#ifndef _LAYLAOBJECT_
33#define _LAYLAOBJECT_
34
35#include "CEchoGalsMTC.h"
36#include "CLaylaDspCommObject.h"
37
38
39//
40//	Class used for interfacing with the Layla audio card.
41//
42class CLayla : public CEchoGalsMTC
43{
44public:
45	//
46	//	Construction/destruction
47	//
48	CLayla( PCOsSupport pOsSupport );
49
50	virtual ~CLayla();
51
52	//
53	// Setup & initialization methods
54	//
55
56	virtual ECHOSTATUS InitHw();
57
58	//
59	//	Adapter information methods
60	//
61
62	virtual ECHOSTATUS GetCapabilities
63	(
64		PECHOGALS_CAPS	pCapabilities
65	);
66
67	//
68	//	Audio Interface methods
69	//
70	virtual ECHOSTATUS QueryAudioSampleRate
71	(
72		DWORD		dwSampleRate
73	);
74
75	virtual void QuerySampleRateRange(DWORD &dwMinRate,DWORD &dwMaxRate);
76
77	//
78	// Get a bitmask of all the clocks the hardware is currently detecting
79	//
80	virtual ECHOSTATUS GetInputClockDetect(DWORD &dwClockDetectBits);
81
82	//
83	//  Overload new & delete so memory for this object is allocated from non-paged memory.
84	//
85	PVOID operator new( size_t Size );
86	VOID  operator delete( PVOID pVoid );
87
88protected:
89
90	//
91	//	Get access to the appropriate DSP comm object
92	//
93	PCLaylaDspCommObject GetDspCommObject()
94		{ return( (PCLaylaDspCommObject) m_pDspCommObject ); }
95
96};		// class CLayla
97
98typedef CLayla * PCLayla;
99
100#endif
101
102// *** CLayla.H ***
103