X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmisc%2Flua%2Fextension.h;h=22cf46d60bb535c367a73a59ef826fdd24740721;hb=31d2afeed7c271f0e1256ed6593f0555af71e1b5;hp=8ac2d5da90edf60daeea62676b942928c3230a29;hpb=dfaef0e6be5447b3b15812a924dac26d24c40305;p=vlc diff --git a/modules/misc/lua/extension.h b/modules/misc/lua/extension.h index 8ac2d5da90..22cf46d60b 100644 --- a/modules/misc/lua/extension.h +++ b/modules/misc/lua/extension.h @@ -40,6 +40,14 @@ TYPEDEF_ARRAY( extension_t, array_extension_t ); #define CMD_UPDATE_META 7 /* No arg. Just signal current input item meta * changed */ +//Data types +typedef enum +{ + LUA_END = 0, + LUA_NUM, + LUA_TEXT +} lua_datatype_e; + struct extensions_manager_sys_t { /* List of activated extensions */ @@ -48,9 +56,6 @@ struct extensions_manager_sys_t /* Lock for this list */ vlc_mutex_t lock; - /* Lua specific */ - lua_State *L; - /* Flag indicating that the module is about to be unloaded */ bool b_killed; }; @@ -90,12 +95,23 @@ int Activate( extensions_manager_t *p_mgr, extension_t * ); bool IsActivated( extensions_manager_t *p_mgr, extension_t * ); int Deactivate( extensions_manager_t *p_mgr, extension_t * ); void WaitForDeactivation( extension_t *p_ext ); -int __PushCommand( extension_t *p_ext, bool b_unique, - int i_command, ... ); -#define PushCommand( ext, cmd, ... ) \ - __PushCommand( ext, false, cmd, ## __VA_ARGS__ ) -#define PushCommandUnique( ext, cmd, ... ) \ - __PushCommand( ext, true, cmd, ## __VA_ARGS__ ) +int __PushCommand( extension_t *ext, bool unique, int cmd, va_list options ); +static inline int PushCommand( extension_t *ext, int cmd, ... ) +{ + va_list args; + va_start( args, cmd ); + int i_ret = __PushCommand( ext, false, cmd, args ); + va_end( args ); + return i_ret; +} +static inline int PushCommandUnique( extension_t *ext, int cmd, ... ) +{ + va_list args; + va_start( args, cmd ); + int i_ret = __PushCommand( ext, true, cmd, args ); + va_end( args ); + return i_ret; +} bool LockExtension( extension_t *p_ext ); void UnlockExtension( extension_t *p_ext ); @@ -103,12 +119,17 @@ void UnlockExtension( extension_t *p_ext ); extension_t *vlclua_extension_get( lua_State *L ); int lua_ExtensionActivate( extensions_manager_t *, extension_t * ); int lua_ExtensionDeactivate( extensions_manager_t *, extension_t * ); +int lua_ExecuteFunctionVa( extensions_manager_t *p_mgr, extension_t *p_ext, + const char *psz_function, va_list args ); int lua_ExecuteFunction( extensions_manager_t *p_mgr, extension_t *p_ext, - const char *psz_function ); + const char *psz_function, ... ); int lua_ExtensionWidgetClick( extensions_manager_t *p_mgr, extension_t *p_ext, extension_widget_t *p_widget ); int lua_ExtensionTriggerMenu( extensions_manager_t *p_mgr, extension_t *p_ext, int id ); +/* Dialog specific */ +int lua_DialogFlush( lua_State *L ); + #endif // LUA_EXTENSION_H