diff options
author | William Wilgus <wilgus.william@gmail.com> | 2020-07-19 13:42:04 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2020-07-19 22:10:26 +0000 |
commit | c39f95465b9844f70f375f1690e0bf75c7ee7cc1 (patch) | |
tree | 2fda6bd805a74f41dd4303c7699eabb9e1aa4a1c /apps/plugins/lua | |
parent | 4663d94b4e4edec609b6a24581ee345f2a1bedaa (diff) | |
download | rockbox-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.c | 9 |
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 | ||
223 | static int menu_callback(int action, const struct menu_item_ex *this_item) | 223 | static 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); |