diff options
author | Chris Robinson <[email protected]> | 2013-10-27 16:37:40 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-10-27 16:37:40 -0700 |
commit | e54983694bc43a0f1a7ebb4ed0aeb78a1f2d36ab (patch) | |
tree | 33d3c29c847dd3440c9abb44719421852db2f36f /Alc/backends/base.h | |
parent | 3ed425d7ef2f9e3e06e579c5965ad6188ce1c19e (diff) |
Add missing header to git
Diffstat (limited to 'Alc/backends/base.h')
-rw-r--r-- | Alc/backends/base.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Alc/backends/base.h b/Alc/backends/base.h new file mode 100644 index 00000000..9cc0d66b --- /dev/null +++ b/Alc/backends/base.h @@ -0,0 +1,62 @@ +#ifndef AL_BACKENDS_BASE_H +#define AL_BACKENDS_BASE_H + +#include "alMain.h" + + +struct ALCbackendVtable; + +typedef struct ALCbackend { + const struct ALCbackendVtable *vtbl; + + ALCdevice *mDevice; +} ALCbackend; + +struct ALCbackendVtable { + void (*const Destruct)(ALCbackend *state); + + ALCenum (*const open)(ALCbackend*, const ALCchar*); + void (*const close)(ALCbackend*); + + ALCboolean (*reset)(ALCbackend*); + ALCboolean (*start)(ALCbackend*); + void (*stop)(ALCbackend*); + + ALint64 (*getLatency)(ALCbackend*); + + void (*const Delete)(ALCbackend *state); +}; + +#define DEFINE_ALCBACKEND_VTABLE(T) \ +static void T##_ALCbackend_Destruct(ALCbackend *obj) \ +{ T##_Destruct(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static ALCenum T##_ALCbackend_open(ALCbackend *obj, const ALCchar *p1) \ +{ return T##_open(STATIC_UPCAST(T, ALCbackend, obj), p1); } \ +static void T##_ALCbackend_close(ALCbackend *obj) \ +{ T##_close(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static ALCboolean T##_ALCbackend_reset(ALCbackend *obj) \ +{ return T##_reset(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static ALCboolean T##_ALCbackend_start(ALCbackend *obj) \ +{ return T##_start(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static void T##_ALCbackend_stop(ALCbackend *obj) \ +{ T##_stop(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static ALint64 T##_ALCbackend_getLatency(ALCbackend *obj) \ +{ return T##_getLatency(STATIC_UPCAST(T, ALCbackend, obj)); } \ +static void T##_ALCbackend_Delete(ALCbackend *obj) \ +{ T##_Delete(STATIC_UPCAST(T, ALCbackend, obj)); } \ + \ +static const struct ALCbackendVtable T##_ALCbackend_vtable = { \ + T##_ALCbackend_Destruct, \ + \ + T##_ALCbackend_open, \ + T##_ALCbackend_close, \ + T##_ALCbackend_reset, \ + T##_ALCbackend_start, \ + T##_ALCbackend_stop, \ + T##_ALCbackend_getLatency, \ + \ + T##_ALCbackend_Delete, \ +} + + +#endif /* AL_BACKENDS_BASE_H */ |