diff --git a/src/lua_libpulse_glib/callback.h b/src/lua_libpulse_glib/callback.h index 97ced0f..60c90b8 100644 --- a/src/lua_libpulse_glib/callback.h +++ b/src/lua_libpulse_glib/callback.h @@ -1,6 +1,4 @@ -#ifndef callback_h_INCLUDED -#define callback_h_INCLUDED - +#pragma once #include #include @@ -40,6 +38,3 @@ void free_lua_callback(simple_callback_data*); // Simple implementation of `pa_context_success_cb_t` that calls a provided Lua function. void success_callback(pa_context*, int, void*); - -#endif // callback_h_INCLUDED - diff --git a/src/lua_libpulse_glib/lua_util.h b/src/lua_libpulse_glib/lua_util.h index 6128b41..0f05e11 100644 --- a/src/lua_libpulse_glib/lua_util.h +++ b/src/lua_libpulse_glib/lua_util.h @@ -1,5 +1,4 @@ -#ifndef lua_util_h_INCLUDED -#define lua_util_h_INCLUDED +#pragma once #include #include @@ -8,6 +7,9 @@ #if LUA_VERSION_NUM <= 501 #define lua_rawlen lua_objlen + +#define luaL_newlib(L, l) (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0)) +#define luaL_newlibtable(L, l) (lua_createtable(L, 0, sizeof(l) / sizeof(l[0]))) #endif #if LUA_VERSION_NUM > 501 @@ -18,6 +20,3 @@ typedef struct luaU_enumfield { const char* name; const char* value; } luaU_enumfield; - - -#endif // lua_util_h_INCLUDED diff --git a/src/lua_libpulse_glib/pulseaudio.c b/src/lua_libpulse_glib/pulseaudio.c index 6d6f266..d6b7368 100644 --- a/src/lua_libpulse_glib/pulseaudio.c +++ b/src/lua_libpulse_glib/pulseaudio.c @@ -10,10 +10,8 @@ #include #include - #if LUA_VERSION_NUM <= 501 // Shamelessly copied from Lua 5.3 source. -// TODO: What's the official way to do this in 5.1? void luaL_setfuncs(lua_State* L, const luaL_Reg* l, int nup) { luaL_checkstack(L, nup, "too many upvalues"); for (; l->name != NULL; l++) { /* fill the table with given functions */ @@ -29,12 +27,8 @@ void luaL_setfuncs(lua_State* L, const luaL_Reg* l, int nup) { } lua_pop(L, nup); /* remove upvalues */ } - - -#define luaL_newlib(L, l) (luaL_register(L, LUA_PULSEAUDIO, l)) #endif - int pulseaudio_new(lua_State* L) { GMainContext* ctx = g_main_context_default(); if (ctx == NULL) { @@ -86,17 +80,13 @@ int pulseaudio_new_context(lua_State* L) { void createlib_volume(lua_State* L) { luaL_newmetatable(L, LUA_PA_VOLUME); - lua_createtable(L, 0, sizeof volume_f / sizeof volume_f[0]); - luaL_setfuncs(L, volume_f, 0); + luaL_newlib(L, volume_f); lua_setfield(L, -2, "__index"); luaL_setfuncs(L, volume_mt, 0); -#if LUA_VERSION_NUM <= 501 - luaL_register(L, LUA_PA_VOLUME, volume_lib); -#else luaL_newlib(L, volume_lib); -#endif + lua_setmetatable(L, -2); } @@ -104,17 +94,12 @@ void createlib_volume(lua_State* L) { void createlib_proplist(lua_State* L) { luaL_newmetatable(L, LUA_PA_PROPLIST); - lua_createtable(L, 0, sizeof proplist_f / sizeof proplist_f[0]); - luaL_setfuncs(L, proplist_f, 0); + luaL_newlib(L, proplist_f); lua_setfield(L, -2, "__index"); luaL_setfuncs(L, proplist_mt, 0); -#if LUA_VERSION_NUM <= 501 - luaL_register(L, LUA_PA_PROPLIST, proplist_lib); -#else luaL_newlib(L, proplist_lib); -#endif // Create a metatable with an `__index` table for read-only enum fields. lua_createtable(L, 0, 1); @@ -133,8 +118,7 @@ void createlib_proplist(lua_State* L) { void createlib_context(lua_State* L) { luaL_newmetatable(L, LUA_PA_CONTEXT); - lua_createtable(L, 0, sizeof context_f / sizeof context_f[0]); - luaL_setfuncs(L, context_f, 0); + luaL_newlib(L, context_f); lua_setfield(L, -2, "__index"); luaL_setfuncs(L, context_mt, 0); @@ -144,17 +128,12 @@ void createlib_context(lua_State* L) { void createlib_pulseaudio(lua_State* L) { luaL_newmetatable(L, LUA_PULSEAUDIO); - lua_createtable(L, 0, sizeof pulseaudio_f / sizeof pulseaudio_f[0]); - luaL_setfuncs(L, pulseaudio_f, 0); + luaL_newlib(L, pulseaudio_f); lua_setfield(L, -2, "__index"); luaL_setfuncs(L, pulseaudio_mt, 0); -#if LUA_VERSION_NUM <= 501 - luaL_register(L, LUA_PULSEAUDIO, pulseaudio_lib); -#else luaL_newlib(L, pulseaudio_lib); -#endif } @@ -177,17 +156,11 @@ LUA_MOD_EXPORT int luaopen_lua_libpulse_glib(lua_State* L) { LUA_MOD_EXPORT int luaopen_lua_libpulse_glib_volume(lua_State* L) { luaL_newmetatable(L, LUA_PA_VOLUME); - lua_createtable(L, 0, sizeof volume_f / sizeof volume_f[0]); - luaL_setfuncs(L, volume_f, 0); + luaL_newlib(L, volume_f); lua_setfield(L, -2, "__index"); luaL_setfuncs(L, volume_mt, 0); -#if LUA_VERSION_NUM <= 501 - luaL_register(L, LUA_PA_VOLUME, volume_lib); -#else luaL_newlib(L, volume_lib); -#endif return 1; } -