Cleanup
[carla.git] / source / modules / rtaudio / include / iasiodrv.h
blob860675c004d1e81005abda9ef0b84d0db2515f8b
1 #pragma once
2 #include "asiosys.h"
3 #include "asio.h"
5 /* Forward Declarations */
7 #ifndef __ASIODRIVER_FWD_DEFINED__
8 #define __ASIODRIVER_FWD_DEFINED__
9 typedef interface IASIO IASIO;
10 #endif /* __ASIODRIVER_FWD_DEFINED__ */
12 interface IASIO : public IUnknown
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;