
Defines | |
| #define | EXT_HAS_MENU (1 << 0) |
| Hook: menu. | |
| #define | EXT_TRIGGER_ONLY (1 << 1) |
| Hook: trigger. Not activable. | |
| #define | EXT_INPUT_LISTENER (1 << 2) |
| Hook: input_changed. | |
| #define | EXT_META_LISTENER (1 << 3) |
| Hook: meta_changed. | |
| #define | EXT_PLAYING_LISTENER (1 << 4) |
| Hook: status_changed. | |
Functions | |
| static int | ScanExtensions (extensions_manager_t *p_mgr) |
| Batch scan all Lua files in folder "extensions". | |
| static int | ScanLuaCallback (vlc_object_t *p_this, const char *psz_script, void *pb_continue) |
| Batch scan all Lua files in folder "extensions": callback. | |
| static int | Control (extensions_manager_t *, int, va_list) |
| static int | GetMenuEntries (extensions_manager_t *p_mgr, extension_t *p_ext, char ***pppsz_titles, uint16_t **ppi_ids) |
| Get the list of menu entries from an extension script. | |
| static lua_State * | GetLuaState (extensions_manager_t *p_mgr, extension_t *p_ext) |
| static int | TriggerMenu (extension_t *p_ext, int id) |
| static int | TriggerExtension (extensions_manager_t *p_mgr, extension_t *p_ext) |
| Directly trigger an extension, without activating it This is NOT multithreaded, and this code runs in the UI thread. | |
| int | vlclua_extension_deactivate (lua_State *L) |
| Deactivate an extension by order from the extension itself. | |
| static int | vlclua_extension_dialog_callback (vlc_object_t *p_this, char const *psz_var, vlc_value_t oldval, vlc_value_t newval, void *p_data) |
| Callback for the variable "dialog-event". | |
| static void | inputItemMetaChanged (const vlc_event_t *p_event, void *data) |
| Callback on vlc_InputItemMetaChanged event. | |
| int | Open_Extension (vlc_object_t *p_this) |
| Module entry-point. | |
| void | Close_Extension (vlc_object_t *p_this) |
| Module unload function. | |
| int | lua_ExtensionActivate (extensions_manager_t *p_mgr, extension_t *p_ext) |
| int | lua_ExtensionDeactivate (extensions_manager_t *p_mgr, extension_t *p_ext) |
| int | lua_ExtensionWidgetClick (extensions_manager_t *p_mgr, extension_t *p_ext, extension_widget_t *p_widget) |
| int | lua_ExecuteFunction (extensions_manager_t *p_mgr, extension_t *p_ext, const char *psz_function,...) |
| int | lua_ExecuteFunctionVa (extensions_manager_t *p_mgr, extension_t *p_ext, const char *psz_function, va_list args) |
| Execute a function in a Lua script. | |
| int | lua_ExtensionTriggerMenu (extensions_manager_t *p_mgr, extension_t *p_ext, int id) |
| void | vlclua_extension_set (lua_State *L, extension_t *p_ext) |
| Set extension associated to the current script. | |
| extension_t * | vlclua_extension_get (lua_State *L) |
| Retrieve extension associated to the current script. | |
| bool | LockExtension (extension_t *p_ext) |
| void | UnlockExtension (extension_t *p_ext) |
Variables | |
| static const luaL_Reg | p_reg [] |
| const char *const | ppsz_capabilities [] |
| #define EXT_HAS_MENU (1 << 0) |
| #define EXT_INPUT_LISTENER (1 << 2) |
| #define EXT_META_LISTENER (1 << 3) |
| #define EXT_PLAYING_LISTENER (1 << 4) |
| #define EXT_TRIGGER_ONLY (1 << 1) |
| void Close_Extension | ( | vlc_object_t * | p_this | ) |
Module unload function.
References extensions_manager_sys_t::activated_extensions, ARRAY_RESET, extensions_manager_sys_t::b_killed, extension_sys_t::command_lock, Deactivate(), extensions_manager_t::extensions, FOREACH_ARRAY, FOREACH_END, extension_sys_t::L, extensions_manager_sys_t::lock, extensions_manager_t::lock, msg_Dbg, extension_t::p_sys, extensions_manager_t::p_sys, extension_t::psz_author, extension_t::psz_description, extension_t::psz_name, extension_t::psz_shortdescription, extension_t::psz_title, extension_t::psz_url, extension_t::psz_version, extension_sys_t::running_lock, var_Destroy, vlc_cond_destroy(), vlc_mutex_destroy(), vlc_mutex_lock(), vlc_mutex_unlock(), extension_sys_t::wait, and WaitForDeactivation().
| static int Control | ( | extensions_manager_t * | p_mgr, | |
| int | i_control, | |||
| va_list | args | |||
| ) | [static] |
References Activate(), CMD_PLAYING_CHANGED, CMD_SET_INPUT, Deactivate(), input_item_t::event_manager, EXT_HAS_MENU, EXT_INPUT_LISTENER, EXT_META_LISTENER, EXT_PLAYING_LISTENER, EXT_TRIGGER_ONLY, EXTENSION_ACTIVATE, EXTENSION_DEACTIVATE, EXTENSION_GET_MENU, EXTENSION_HAS_MENU, EXTENSION_IS_ACTIVATED, EXTENSION_PLAYING_CHANGED, EXTENSION_SET_INPUT, EXTENSION_TRIGGER, EXTENSION_TRIGGER_MENU, EXTENSION_TRIGGER_ONLY, GetMenuEntries(), i, extension_sys_t::i_capabilities, input_GetItem(), inputItemMetaChanged(), IsActivated(), LockExtension(), msg_Warn, extension_sys_t::p_input, p_item, extension_t::p_sys, extension_t::psz_name, PushCommand(), PushCommandUnique(), TriggerExtension(), TriggerMenu(), UnlockExtension(), VLC_EGENERIC, vlc_event_attach, vlc_event_detach(), vlc_gc_decref, vlc_gc_incref, vlc_InputItemMetaChanged, vlc_object_hold, vlc_object_release, and VLC_SUCCESS.
| static lua_State * GetLuaState | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext | |||
| ) | [static] |
References extension_sys_t::L, luaopen_acl(), luaopen_config(), luaopen_dialog(), luaopen_input(), luaopen_md5(), luaopen_misc(), luaopen_msg(), luaopen_net(), luaopen_object(), luaopen_osd(), luaopen_playlist(), luaopen_sd(), luaopen_stream(), luaopen_strings(), luaopen_variables(), luaopen_video(), luaopen_vlm(), luaopen_volume(), luaopen_xml(), msg_Dbg, msg_Err, msg_Warn, p_reg, extension_t::p_sys, extension_t::psz_name, vlclua_add_modules_path, vlclua_extension_deactivate(), vlclua_extension_set(), and vlclua_set_this.
Referenced by GetMenuEntries(), lua_ExecuteFunctionVa(), lua_ExtensionTriggerMenu(), and lua_ExtensionWidgetClick().
| static int GetMenuEntries | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext, | |||
| char *** | pppsz_titles, | |||
| uint16_t ** | ppi_ids | |||
| ) | [static] |
Get the list of menu entries from an extension script.
| p_mgr | ||
| p_ext | ||
| pppsz_titles | Pointer to NULL. All strings must be freed by the caller | |
| ppi_ids | Pointer to NULL. Must be freed by the caller. |
References EXT_HAS_MENU, GetLuaState(), extension_sys_t::i_capabilities, IsActivated(), LockExtension(), msg_Dbg, msg_Warn, extension_t::p_sys, extension_t::psz_name, strdup(), UnlockExtension(), VLC_EGENERIC, and VLC_SUCCESS.
Referenced by Control().
| static void inputItemMetaChanged | ( | const vlc_event_t * | p_event, | |
| void * | data | |||
| ) | [static] |
Callback on vlc_InputItemMetaChanged event.
References CMD_UPDATE_META, PushCommandUnique(), vlc_event_t::type, and vlc_InputItemMetaChanged.
Referenced by Control().
| bool LockExtension | ( | extension_t * | p_ext | ) |
References extension_sys_t::b_exiting, extension_t::p_sys, extension_sys_t::running_lock, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by Control(), GetMenuEntries(), and Run().
| int lua_ExecuteFunction | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext, | |||
| const char * | psz_function, | |||
| ... | ||||
| ) |
References lua_ExecuteFunctionVa().
Referenced by lua_ExtensionActivate(), lua_ExtensionDeactivate(), lua_ExtensionWidgetClick(), Run(), and TriggerExtension().
| int lua_ExecuteFunctionVa | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext, | |||
| const char * | psz_function, | |||
| va_list | args | |||
| ) |
Execute a function in a Lua script.
| psz_function | Name of global function to execute. If NULL, assume that the function object is already on top of the stack. |
References GetLuaState(), lua_DialogFlush(), LUA_END, LUA_NUM, LUA_TEXT, msg_Warn, extension_t::psz_name, and VLC_EGENERIC.
Referenced by lua_ExecuteFunction().
| int lua_ExtensionActivate | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext | |||
| ) |
References LUA_END, and lua_ExecuteFunction().
| int lua_ExtensionDeactivate | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext | |||
| ) |
References EXT_META_LISTENER, extension_sys_t::i_capabilities, input_GetItem(), extension_sys_t::L, LUA_END, lua_ExecuteFunction(), extension_sys_t::p_input, p_item, extension_t::p_sys, vlc_gc_decref, vlc_object_release, and VLC_SUCCESS.
Referenced by Run().
| int lua_ExtensionTriggerMenu | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext, | |||
| int | id | |||
| ) |
References GetLuaState(), lua_DialogFlush(), luaopen_dialog(), msg_Dbg, msg_Warn, extension_t::psz_name, VLC_EGENERIC, and VLC_SUCCESS.
Referenced by Run().
| int lua_ExtensionWidgetClick | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext, | |||
| extension_widget_t * | p_widget | |||
| ) |
References GetLuaState(), extension_sys_t::L, LUA_END, lua_ExecuteFunction(), extension_t::p_sys, and VLC_SUCCESS.
Referenced by Run().
| int Open_Extension | ( | vlc_object_t * | p_this | ) |
Module entry-point.
References extensions_manager_sys_t::activated_extensions, ARRAY_INIT, Control(), extensions_manager_t::extensions, extensions_manager_sys_t::lock, extensions_manager_t::lock, msg_Dbg, msg_Err, extensions_manager_t::p_sys, p_sys, extensions_manager_t::pf_control, ScanExtensions(), var_AddCallback, var_Create, VLC_EGENERIC, VLC_ENOMEM, vlc_mutex_init(), VLC_SUCCESS, VLC_VAR_ADDRESS, and vlclua_extension_dialog_callback().
| static int ScanExtensions | ( | extensions_manager_t * | p_mgr | ) | [static] |
Batch scan all Lua files in folder "extensions".
| p_mgr | This extensions_manager_t object |
References ScanLuaCallback(), VLC_EGENERIC, VLC_OBJECT, VLC_SUCCESS, and vlclua_scripts_batch_execute().
Referenced by Open_Extension().
| int ScanLuaCallback | ( | vlc_object_t * | p_this, | |
| const char * | psz_script, | |||
| void * | pb_continue | |||
| ) | [static] |
Batch scan all Lua files in folder "extensions": callback.
| p_this | This extensions_manager_t object | |
| psz_script | Name of the script to run | |
| L | Lua State, common to all scripts here | |
| pb_continue | bool* that indicates whether to continue batch or not |
References ARRAY_APPEND, extension_sys_t::command_lock, extensions_manager_t::extensions, extension_sys_t::i_capabilities, extensions_manager_t::lock, msg_Dbg, msg_Err, msg_Warn, extension_sys_t::p_mgr, extension_t::p_sys, ppsz_capabilities, extension_t::psz_author, extension_t::psz_description, extension_t::psz_name, extension_t::psz_shortdescription, extension_t::psz_title, extension_t::psz_url, extension_t::psz_version, extension_sys_t::running_lock, strdup(), vlc_cond_destroy(), vlc_cond_init(), vlc_mutex_destroy(), vlc_mutex_init(), vlc_mutex_lock(), vlc_mutex_unlock(), and extension_sys_t::wait.
Referenced by ScanExtensions().
| static int TriggerExtension | ( | extensions_manager_t * | p_mgr, | |
| extension_t * | p_ext | |||
| ) | [static] |
Directly trigger an extension, without activating it This is NOT multithreaded, and this code runs in the UI thread.
| p_mgr | ||
| p_ext | Extension to trigger |
References extension_sys_t::L, LUA_END, lua_ExecuteFunction(), and extension_t::p_sys.
Referenced by Control().
| static int TriggerMenu | ( | extension_t * | p_ext, | |
| int | id | |||
| ) | [inline, static] |
| void UnlockExtension | ( | extension_t * | p_ext | ) |
References extension_t::p_sys, extension_sys_t::running_lock, and vlc_mutex_unlock().
Referenced by Control(), GetMenuEntries(), and Run().
| int vlclua_extension_deactivate | ( | lua_State * | L | ) |
Deactivate an extension by order from the extension itself.
| L | lua_State |
References Deactivate(), extension_sys_t::p_mgr, extension_t::p_sys, VLC_SUCCESS, and vlclua_extension_get().
Referenced by GetLuaState().
| static int vlclua_extension_dialog_callback | ( | vlc_object_t * | p_this, | |
| char const * | psz_var, | |||
| vlc_value_t | oldval, | |||
| vlc_value_t | newval, | |||
| void * | p_data | |||
| ) | [static] |
Callback for the variable "dialog-event".
| p_this | Current object owner of the extension and the dialog | |
| psz_var | "dialog-event" | |
| oldval | Unused | |
| newval | Address of the dialog | |
| p_data | Unused |
References CMD_CLICK, CMD_CLOSE, extension_dialog_command_t::event, EXTENSION_EVENT_CLICK, EXTENSION_EVENT_CLOSE, msg_Dbg, vlc_value_t::p_address, extension_dialog_command_t::p_data, extension_dialog_command_t::p_dlg, extension_dialog_t::p_sys, PushCommandUnique(), and VLC_SUCCESS.
Referenced by Open_Extension().
| extension_t* vlclua_extension_get | ( | lua_State * | L | ) |
Retrieve extension associated to the current script.
| L | current lua_State |
References vlclua_extension_set().
Referenced by vlclua_extension_deactivate(), and vlclua_get_input_internal().
| void vlclua_extension_set | ( | lua_State * | L, | |
| extension_t * | p_ext | |||
| ) |
Set extension associated to the current script.
| L | current lua_State | |
| p_ext | the extension |
References vlclua_extension_set().
Referenced by GetLuaState(), vlclua_extension_get(), and vlclua_extension_set().
const luaL_Reg p_reg[] [static] |
Initial value:
{
{ NULL, NULL }
}
| const char* const ppsz_capabilities[] |
Initial value:
{
"menu",
"trigger",
"input-listener",
"meta-listener",
"playing-listener",
NULL
}
Referenced by ScanLuaCallback().
1.5.6