#include "asiosys.h" #include "asio.h" /* Forward Declarations */ #ifndef __ASIODRIVER_FWD_DEFINED__ #define __ASIODRIVER_FWD_DEFINED__ typedef interface IASIO IASIO; #endif /* __ASIODRIVER_FWD_DEFINED__ */ interface IASIO : public IUnknown { virtual ASIOBool init ( void *sysHandle ) = 0; virtual void getDriverName ( char *name ) = 0; virtual long getDriverVersion () = 0; virtual void getErrorMessage ( char *string ) = 0; virtual ASIOError start () = 0; virtual ASIOError stop () = 0; virtual ASIOError getChannels ( long *numInputChannels, long *numOutputChannels) = 0; virtual ASIOError getLatencies ( long *inputLatency, long *outputLatency) = 0; virtual ASIOError getBufferSize ( long *minSize ,long *maxSize ,long *preferredSize ,long *granularity ) = 0; virtual ASIOError canSampleRate ( ASIOSampleRate sampleRate) = 0; virtual ASIOError getSampleRate ( ASIOSampleRate *sampleRate) = 0; virtual ASIOError setSampleRate ( ASIOSampleRate sampleRate) = 0; virtual ASIOError getClockSources ( ASIOClockSource *clocks, long *numSources) = 0; virtual ASIOError setClockSource ( long reference) = 0; virtual ASIOError getSamplePosition ( ASIOSamples *sPos, ASIOTimeStamp *tStamp) = 0; virtual ASIOError getChannelInfo ( ASIOChannelInfo *info) = 0; virtual ASIOError createBuffers ( ASIOBufferInfo *bufferInfos, long numChannels ,long bufferSize, ASIOCallbacks *callbacks) = 0; virtual ASIOError disposeBuffers () = 0; virtual ASIOError controlPanel () = 0; virtual ASIOError future ( long selector ,void *opt ) = 0; virtual ASIOError outputReady () = 0; };