diff options
author | Chris Robinson <[email protected]> | 2013-10-29 20:08:03 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2013-10-29 20:13:42 -0700 |
commit | bc9c3de96963dc47df9a5851f3c500e8a6404966 (patch) | |
tree | d1bfa93bec516e4f7f9c5273537481aee898f6fe /Alc/backends/base.h | |
parent | 9f0e49917d808b93e0c47ce4fa2cbf7050cfe65a (diff) |
Use a helper macro for making vtable thunks
Diffstat (limited to 'Alc/backends/base.h')
-rw-r--r-- | Alc/backends/base.h | 51 |
1 files changed, 17 insertions, 34 deletions
diff --git a/Alc/backends/base.h b/Alc/backends/base.h index 285d1ac9..59e01304 100644 --- a/Alc/backends/base.h +++ b/Alc/backends/base.h @@ -49,30 +49,18 @@ struct ALCbackendVtable { static const struct ALCbackendVtable T##_ALCbackend_vtable #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 ALCenum T##_ALCbackend_captureSamples(ALCbackend *obj, void *a, ALCuint b) \ -{ return T##_captureSamples(STATIC_UPCAST(T, ALCbackend, obj), a, b); } \ -static ALCuint T##_ALCbackend_availableSamples(ALCbackend *obj) \ -{ return T##_availableSamples(STATIC_UPCAST(T, ALCbackend, obj)); } \ -static ALint64 T##_ALCbackend_getLatency(ALCbackend *obj) \ -{ return T##_getLatency(STATIC_UPCAST(T, ALCbackend, obj)); } \ -static void T##_ALCbackend_lock(ALCbackend *obj) \ -{ T##_lock(STATIC_UPCAST(T, ALCbackend, obj)); } \ -static void T##_ALCbackend_unlock(ALCbackend *obj) \ -{ T##_unlock(STATIC_UPCAST(T, ALCbackend, obj)); } \ -static void T##_ALCbackend_Delete(ALCbackend *obj) \ -{ T##_Delete(STATIC_UPCAST(T, ALCbackend, obj)); } \ +DECLARE_THUNK(T, ALCbackend, void, Destruct) \ +DECLARE_THUNK1(T, ALCbackend, ALCenum, open, const ALCchar*) \ +DECLARE_THUNK(T, ALCbackend, void, close) \ +DECLARE_THUNK(T, ALCbackend, ALCboolean, reset) \ +DECLARE_THUNK(T, ALCbackend, ALCboolean, start) \ +DECLARE_THUNK(T, ALCbackend, void, stop) \ +DECLARE_THUNK2(T, ALCbackend, ALCenum, captureSamples, void*, ALCuint) \ +DECLARE_THUNK(T, ALCbackend, ALCuint, availableSamples) \ +DECLARE_THUNK(T, ALCbackend, ALint64, getLatency) \ +DECLARE_THUNK(T, ALCbackend, void, lock) \ +DECLARE_THUNK(T, ALCbackend, void, unlock) \ +DECLARE_THUNK(T, ALCbackend, void, Delete) \ \ DECLARE_ALCBACKEND_VTABLE(T) = { \ T##_ALCbackend_Destruct, \ @@ -116,16 +104,11 @@ struct ALCbackendFactoryVtable { }; #define DEFINE_ALCBACKENDFACTORY_VTABLE(T) \ -static ALCboolean T##_ALCbackendFactory_init(ALCbackendFactory *obj) \ -{ return T##_init(STATIC_UPCAST(T, ALCbackendFactory, obj)); } \ -static void T##_ALCbackendFactory_deinit(ALCbackendFactory *obj) \ -{ T##_deinit(STATIC_UPCAST(T, ALCbackendFactory, obj)); } \ -static ALCboolean T##_ALCbackendFactory_querySupport(ALCbackendFactory *obj, ALCbackend_Type a) \ -{ return T##_querySupport(STATIC_UPCAST(T, ALCbackendFactory, obj), a); } \ -static void T##_ALCbackendFactory_probe(ALCbackendFactory *obj, enum DevProbe a) \ -{ T##_probe(STATIC_UPCAST(T, ALCbackendFactory, obj), a); } \ -static ALCbackend* T##_ALCbackendFactory_createBackend(ALCbackendFactory *obj, ALCdevice *a, ALCbackend_Type b) \ -{ return T##_createBackend(STATIC_UPCAST(T, ALCbackendFactory, obj), a, b); } \ +DECLARE_THUNK(T, ALCbackendFactory, ALCboolean, init) \ +DECLARE_THUNK(T, ALCbackendFactory, void, deinit) \ +DECLARE_THUNK1(T, ALCbackendFactory, ALCboolean, querySupport, ALCbackend_Type) \ +DECLARE_THUNK1(T, ALCbackendFactory, void, probe, enum DevProbe) \ +DECLARE_THUNK2(T, ALCbackendFactory, ALCbackend*, createBackend, ALCdevice*, ALCbackend_Type) \ \ static const struct ALCbackendFactoryVtable T##_ALCbackendFactory_vtable = { \ T##_ALCbackendFactory_init, \ |