summaryrefslogtreecommitdiff
path: root/apps/plugins/lua
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2020-07-19 13:42:04 -0400
committerWilliam Wilgus <me.theuser@yahoo.com>2020-07-19 22:10:26 +0000
commitc39f95465b9844f70f375f1690e0bf75c7ee7cc1 (patch)
tree2fda6bd805a74f41dd4303c7699eabb9e1aa4a1c /apps/plugins/lua
parent4663d94b4e4edec609b6a24581ee345f2a1bedaa (diff)
downloadrockbox-c39f95465b9844f70f375f1690e0bf75c7ee7cc1.tar.gz
rockbox-c39f95465b9844f70f375f1690e0bf75c7ee7cc1.zip
do_menu pass internal synclist reference to callback
keep running into the rigid nature of do_menu it isn't too bad when you don't need voice but once you do the fun awaits do_menu likes to talk on menu enter which is in a loop when you use do_menu I would like to move the processing to the callback TOO BAD you only get an action and the menu_item_ex struct you sent it when calling the function Change-Id: Iaefd0cc133435d675b7dd27a558c504d6ccb327a
Diffstat (limited to 'apps/plugins/lua')
-rw-r--r--apps/plugins/lua/rocklib.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c
index 6b24984130..6820c30dc3 100644
--- a/apps/plugins/lua/rocklib.c
+++ b/apps/plugins/lua/rocklib.c
@@ -220,9 +220,12 @@ static lua_State* store_luastate(lua_State *L, bool bStore)
220 return LStored; 220 return LStored;
221} 221}
222 222
223static int menu_callback(int action, const struct menu_item_ex *this_item) 223static int menu_callback(int action,
224 const struct menu_item_ex *this_item,
225 struct gui_synclist *this_list)
224{ 226{
225 (void) this_item; 227 (void) this_item;
228 (void) this_list;
226 static int lua_ref = LUA_NOREF; 229 static int lua_ref = LUA_NOREF;
227 lua_State *L = store_luastate(NULL, false); 230 lua_State *L = store_luastate(NULL, false);
228 if(!L) 231 if(!L)
@@ -259,7 +262,7 @@ RB_WRAP(do_menu)
259 { 262 {
260 /*lua callback function cb(action) return action end */ 263 /*lua callback function cb(action) return action end */
261 ref_lua = luaL_ref(L, LUA_REGISTRYINDEX); 264 ref_lua = luaL_ref(L, LUA_REGISTRYINDEX);
262 menu_callback(ref_lua, NULL); 265 menu_callback(ref_lua, NULL, NULL);
263 store_luastate(L, true); 266 store_luastate(L, true);
264 menu_desc.menu_callback = &menu_callback; 267 menu_desc.menu_callback = &menu_callback;
265 } 268 }
@@ -277,7 +280,7 @@ RB_WRAP(do_menu)
277 { 280 {
278 store_luastate(NULL, true); 281 store_luastate(NULL, true);
279 luaL_unref (L, LUA_REGISTRYINDEX, ref_lua); 282 luaL_unref (L, LUA_REGISTRYINDEX, ref_lua);
280 menu_callback(LUA_NOREF, NULL); 283 menu_callback(LUA_NOREF, NULL, NULL);
281 } 284 }
282 285
283 lua_pushinteger(L, result); 286 lua_pushinteger(L, result);