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