108 #ifndef included_iasiothiscallresolver_h
109 #define included_iasiothiscallresolver_h
114 #if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__)) && !defined(_WIN64)
119 #if !defined(_MSC_VER)
126 #if !defined(iasiothiscallresolver_sourcefile)
127 #if !defined(__ASIO_H)
128 #error iasiothiscallresolver.h must be included AFTER asio.h
133 #include <asiodrvr.h>
136 class IASIOThiscallResolver :
public IASIO {
140 static IASIOThiscallResolver instance;
144 IASIOThiscallResolver();
145 IASIOThiscallResolver(IASIO* that);
151 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,
void **ppv);
152 virtual ULONG STDMETHODCALLTYPE AddRef();
153 virtual ULONG STDMETHODCALLTYPE Release();
156 virtual ASIOBool init(
void *sysHandle);
157 virtual void getDriverName(
char *name);
158 virtual long getDriverVersion();
159 virtual void getErrorMessage(
char *
string);
160 virtual ASIOError start();
161 virtual ASIOError stop();
162 virtual ASIOError getChannels(
long *numInputChannels,
long *numOutputChannels);
163 virtual ASIOError getLatencies(
long *inputLatency,
long *outputLatency);
164 virtual ASIOError getBufferSize(
long *minSize,
long *maxSize,
long *preferredSize,
long *granularity);
165 virtual ASIOError canSampleRate(ASIOSampleRate sampleRate);
166 virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate);
167 virtual ASIOError setSampleRate(ASIOSampleRate sampleRate);
168 virtual ASIOError getClockSources(ASIOClockSource *clocks,
long *numSources);
169 virtual ASIOError setClockSource(
long reference);
170 virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp);
171 virtual ASIOError getChannelInfo(ASIOChannelInfo *info);
172 virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos,
long numChannels,
long bufferSize, ASIOCallbacks *callbacks);
173 virtual ASIOError disposeBuffers();
174 virtual ASIOError controlPanel();
175 virtual ASIOError future(
long selector,
void *opt);
176 virtual ASIOError outputReady();
179 static ASIOError ASIOInit(ASIODriverInfo *info);
188 #define ASIOInit(name) IASIOThiscallResolver::ASIOInit((name))