1 #include "asiosys.h"
2 #include "asio.h"
3 
4 /* Forward Declarations */
5 
6 #ifndef __ASIODRIVER_FWD_DEFINED__
7 #define __ASIODRIVER_FWD_DEFINED__
8 typedef interface IASIO IASIO;
9 #endif 	/* __ASIODRIVER_FWD_DEFINED__ */
10 
11 interface IASIO : public IUnknown
12 {
13 
14 	virtual ASIOBool init(void *sysHandle) = 0;
15 	virtual void getDriverName(char *name) = 0;
16 	virtual long getDriverVersion() = 0;
17 	virtual void getErrorMessage(char *string) = 0;
18 	virtual ASIOError start() = 0;
19 	virtual ASIOError stop() = 0;
20 	virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels) = 0;
21 	virtual ASIOError getLatencies(long *inputLatency, long *outputLatency) = 0;
22 	virtual ASIOError getBufferSize(long *minSize, long *maxSize,
23 		long *preferredSize, long *granularity) = 0;
24 	virtual ASIOError canSampleRate(ASIOSampleRate sampleRate) = 0;
25 	virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate) = 0;
26 	virtual ASIOError setSampleRate(ASIOSampleRate sampleRate) = 0;
27 	virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources) = 0;
28 	virtual ASIOError setClockSource(long reference) = 0;
29 	virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp) = 0;
30 	virtual ASIOError getChannelInfo(ASIOChannelInfo *info) = 0;
31 	virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels,
32 		long bufferSize, ASIOCallbacks *callbacks) = 0;
33 	virtual ASIOError disposeBuffers() = 0;
34 	virtual ASIOError controlPanel() = 0;
35 	virtual ASIOError future(long selector,void *opt) = 0;
36 	virtual ASIOError outputReady() = 0;
37 };
38