Skip to content
Snippets Groups Projects
Select Git revision
  • b5ed7aeda23d2d537f3f98bdce96e2b8d12ec8b5
  • master default protected
  • gh-pages
  • build-process-upgrade-merge
  • eb-apollo-generate_names
  • BT5_travis
  • hello_github
  • v18.1.0
  • v18.0.3
  • v18.0.2
  • v18.0.1
  • v18.0.0
  • v18.0.0-RC1
  • v17.0.1
  • v17.0.0
  • v16.0.17
  • v16.0.0
  • v15.0.0
  • v14.0.0
  • v13.2.0
20 results

.project

Blame
  • asiodrvr.h 2.21 KiB
    /*
    	Steinberg Audio Stream I/O API
    	(c) 1996, Steinberg Soft- und Hardware GmbH
    	charlie (May 1996)
    
    	asiodrvr.h
    	c++ superclass to implement asio functionality. from this,
    	you can derive whatever required
    */
    
    #ifndef _asiodrvr_
    #define _asiodrvr_
    
    // cpu and os system we are running on
    #include "asiosys.h"
    // basic "C" interface
    #include "asio.h"
    
    class AsioDriver;
    extern AsioDriver *getDriver();		// for generic constructor 
    
    #if WINDOWS
    #include <windows.h>
    #include "combase.h"
    #include "iasiodrv.h"
    class AsioDriver : public IASIO ,public CUnknown
    {
    public:
    	AsioDriver(LPUNKNOWN pUnk, HRESULT *phr);
    
    	DECLARE_IUNKNOWN
    	// Factory method
    	static CUnknown *CreateInstance(LPUNKNOWN pUnk, HRESULT *phr);
    	// IUnknown
    	virtual HRESULT STDMETHODCALLTYPE NonDelegatingQueryInterface(REFIID riid,void **ppvObject);
    
    #else
    
    class AsioDriver
    {
    public:
    	AsioDriver();
    #endif
    	virtual ~AsioDriver();
    
    	virtual ASIOBool init(void* sysRef);
    	virtual void getDriverName(char *name);	// max 32 bytes incl. terminating zero
    	virtual long getDriverVersion();
    	virtual void getErrorMessage(char *string);	// max 124 bytes incl.
    
    	virtual ASIOError start();
    	virtual ASIOError stop();
    
    	virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels);
    	virtual ASIOError getLatencies(long *inputLatency, long *outputLatency);
    	virtual ASIOError getBufferSize(long *minSize, long *maxSize,
    		long *preferredSize, long *granularity);
    
    	virtual ASIOError canSampleRate(ASIOSampleRate sampleRate);
    	virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate);
    	virtual ASIOError setSampleRate(ASIOSampleRate sampleRate);
    	virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources);
    	virtual ASIOError setClockSource(long reference);
    
    	virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp);
    	virtual ASIOError getChannelInfo(ASIOChannelInfo *info);
    
    	virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels,
    		long bufferSize, ASIOCallbacks *callbacks);
    	virtual ASIOError disposeBuffers();
    
    	virtual ASIOError controlPanel();
    	virtual ASIOError future(long selector, void *opt);
    	virtual ASIOError outputReady();
    };
    #endif