| 
							- /*
 - 	Steinberg Audio Stream I/O API
 - 	(c) 1996, Steinberg Soft- und Hardware GmbH
 - 	charlie (May 1996)
 - 
 - 	asiodrvr.h
 - 	c++ superclass to implement asio functionality. from this,
 - 	you can derive whatever required
 - */
 - 
 - #ifndef _asiodrvr_
 - #define _asiodrvr_
 - 
 - // cpu and os system we are running on
 - #include "asiosys.h"
 - // basic "C" interface
 - #include "asio.h"
 - 
 - class AsioDriver;
 - extern AsioDriver *getDriver();		// for generic constructor 
 - 
 - #if WINDOWS
 - #include <windows.h>
 - #include "combase.h"
 - #include "iasiodrv.h"
 - class AsioDriver : public IASIO ,public CUnknown
 - {
 - public:
 - 	AsioDriver(LPUNKNOWN pUnk, HRESULT *phr);
 - 
 - 	DECLARE_IUNKNOWN
 - 	// Factory method
 - 	static CUnknown *CreateInstance(LPUNKNOWN pUnk, HRESULT *phr);
 - 	// IUnknown
 - 	virtual HRESULT STDMETHODCALLTYPE NonDelegatingQueryInterface(REFIID riid,void **ppvObject);
 - 
 - #else
 - 
 - class AsioDriver
 - {
 - public:
 - 	AsioDriver();
 - #endif
 - 	virtual ~AsioDriver();
 - 
 - 	virtual ASIOBool init(void* sysRef);
 - 	virtual void getDriverName(char *name);	// max 32 bytes incl. terminating zero
 - 	virtual long getDriverVersion();
 - 	virtual void getErrorMessage(char *string);	// max 124 bytes incl.
 - 
 - 	virtual ASIOError start();
 - 	virtual ASIOError stop();
 - 
 - 	virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels);
 - 	virtual ASIOError getLatencies(long *inputLatency, long *outputLatency);
 - 	virtual ASIOError getBufferSize(long *minSize, long *maxSize,
 - 		long *preferredSize, long *granularity);
 - 
 - 	virtual ASIOError canSampleRate(ASIOSampleRate sampleRate);
 - 	virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate);
 - 	virtual ASIOError setSampleRate(ASIOSampleRate sampleRate);
 - 	virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources);
 - 	virtual ASIOError setClockSource(long reference);
 - 
 - 	virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp);
 - 	virtual ASIOError getChannelInfo(ASIOChannelInfo *info);
 - 
 - 	virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels,
 - 		long bufferSize, ASIOCallbacks *callbacks);
 - 	virtual ASIOError disposeBuffers();
 - 
 - 	virtual ASIOError controlPanel();
 - 	virtual ASIOError future(long selector, void *opt);
 - 	virtual ASIOError outputReady();
 - };
 - #endif
 
 
  |