LMMS
Loading...
Searching...
No Matches
asiodrvr.h
Go to the documentation of this file.
1/*
2 Steinberg Audio Stream I/O API
3 (c) 1996, Steinberg Soft- und Hardware GmbH
4 charlie (May 1996)
5
6 asiodrvr.h
7 c++ superclass to implement asio functionality. from this,
8 you can derive whatever required
9*/
10
11#ifndef _asiodrvr_
12#define _asiodrvr_
13
14// cpu and os system we are running on
15#include "asiosys.h"
16// basic "C" interface
17#include "asio.h"
18
19class AsioDriver;
20extern AsioDriver *getDriver(); // for generic constructor
21
22#if WINDOWS
23#include <windows.h>
24#include "combase.h"
25#include "iasiodrv.h"
26class AsioDriver : public IASIO ,public CUnknown
27{
28public:
29 AsioDriver(LPUNKNOWN pUnk, HRESULT *phr);
30
31 DECLARE_IUNKNOWN
32 // Factory method
33 static CUnknown *CreateInstance(LPUNKNOWN pUnk, HRESULT *phr);
34 // IUnknown
35 virtual HRESULT STDMETHODCALLTYPE NonDelegatingQueryInterface(REFIID riid,void **ppvObject);
36
37#else
38
40{
41public:
43#endif
44 virtual ~AsioDriver();
45
46 virtual ASIOBool init(void* sysRef);
47 virtual void getDriverName(char *name); // max 32 bytes incl. terminating zero
48 virtual long getDriverVersion();
49 virtual void getErrorMessage(char *string); // max 124 bytes incl.
50
51 virtual ASIOError start();
52 virtual ASIOError stop();
53
54 virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels);
55 virtual ASIOError getLatencies(long *inputLatency, long *outputLatency);
56 virtual ASIOError getBufferSize(long *minSize, long *maxSize,
57 long *preferredSize, long *granularity);
58
62 virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources);
63 virtual ASIOError setClockSource(long reference);
64
67
68 virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels,
69 long bufferSize, ASIOCallbacks *callbacks);
71
73 virtual ASIOError future(long selector, void *opt);
75};
76#endif
long ASIOBool
Definition asio.h:121
long ASIOError
Definition asio.h:208
AsioDriver * getDriver()
Definition asiodrvr.h:40
virtual ASIOError getLatencies(long *inputLatency, long *outputLatency)
virtual ASIOError canSampleRate(ASIOSampleRate sampleRate)
virtual ASIOError getSampleRate(ASIOSampleRate *sampleRate)
virtual ASIOError getChannelInfo(ASIOChannelInfo *info)
virtual ASIOError setSampleRate(ASIOSampleRate sampleRate)
virtual ASIOError outputReady()
virtual ASIOError stop()
virtual ASIOError start()
virtual ASIOBool init(void *sysRef)
virtual void getDriverName(char *name)
virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels)
virtual ASIOError disposeBuffers()
virtual ASIOError createBuffers(ASIOBufferInfo *bufferInfos, long numChannels, long bufferSize, ASIOCallbacks *callbacks)
virtual void getErrorMessage(char *string)
virtual long getDriverVersion()
virtual ASIOError controlPanel()
virtual ASIOError getBufferSize(long *minSize, long *maxSize, long *preferredSize, long *granularity)
virtual ~AsioDriver()
virtual ASIOError getSamplePosition(ASIOSamples *sPos, ASIOTimeStamp *tStamp)
virtual ASIOError getClockSources(ASIOClockSource *clocks, long *numSources)
virtual ASIOError setClockSource(long reference)
virtual ASIOError future(long selector, void *opt)
static const char * name
Definition pugl.h:1582
interface IASIO IASIO
Definition iasiodrv.h:9
struct backing_store_struct * info
Definition jmemsys.h:183
Definition asio.h:816
Definition asio.h:392
Definition asio.h:767
Definition asio.h:679
Definition asio.h:115
Definition asio.h:93
Definition asio.h:104
signed int HRESULT
Definition swell-types.h:181