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))