Lua: Add pluginlib_actions wrapper for lua scripts.
Scripts can now make use of PLA_* actions to be more target independant. Change-Id: I1b9f69e07f41b2187ecc1bad25a2c20eaaef92b4
This commit is contained in:
parent
6eeca7096d
commit
c406f94592
3 changed files with 27 additions and 1 deletions
|
@ -28,6 +28,12 @@ while(my $line = <STDIN>)
|
|||
$actions[$i] = sprintf("\t%s = %d,\n", $1, $i);
|
||||
$i++;
|
||||
}
|
||||
elsif($line =~ /^\s*(PLA_[^\s]+)(\s*=.*)?,\s*$/)
|
||||
{
|
||||
# PLA_* begins at LAST_ACTION_PLACEHOLDER+1, thus i+1
|
||||
$actions[$i] = sprintf("\t%s = %d,\n", $1, $i+1);
|
||||
$i++;
|
||||
}
|
||||
elsif($line =~ /^\s*(CONTEXT_[^\s]+)(\s*=.*)?,\s*$/)
|
||||
{
|
||||
$contexts[$j] = sprintf("\t%s = %d,\n", $1, $j);
|
||||
|
|
|
@ -33,7 +33,7 @@ endif
|
|||
$(LUA_BUILDDIR)/lua.rock: $(LUA_OBJ) $(LUA_BUILDDIR)/actions.lua $(LUA_BUILDDIR)/buttons.lua $(LUA_BUILDDIR)/rocklib_aux.o
|
||||
|
||||
$(LUA_BUILDDIR)/actions.lua: $(LUA_OBJ) $(LUA_SRCDIR)/action_helper.pl
|
||||
$(call PRINTS,GEN $(@F))$(CC) $(PLUGINFLAGS) $(INCLUDES) -E $(APPSDIR)/action.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua
|
||||
$(call PRINTS,GEN $(@F))$(CC) $(PLUGINFLAGS) $(INCLUDES) -E $(APPSDIR)/plugins/lib/pluginlib_actions.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua
|
||||
|
||||
$(LUA_BUILDDIR)/buttons.lua: $(LUA_OBJ) $(LUA_SRCDIR)/button_helper.pl
|
||||
$(SILENT)$(CC) $(INCLUDES) -dM -E -include button-target.h - < /dev/null | $(LUA_SRCDIR)/button_helper.pl | $(HOSTCC) -fno-builtin $(INCLUDES) -x c -o $(LUA_BUILDDIR)/button_helper -
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "lauxlib.h"
|
||||
#include "rocklib.h"
|
||||
#include "lib/helper.h"
|
||||
#include "lib/pluginlib_actions.h"
|
||||
|
||||
/*
|
||||
* http://www.lua.org/manual/5.1/manual.html#lua_CFunction
|
||||
|
@ -613,6 +614,24 @@ RB_WRAP(backlight_brightness_set)
|
|||
SIMPLE_VOID_WRAPPER(backlight_brightness_use_setting);
|
||||
#endif
|
||||
|
||||
RB_WRAP(get_plugin_action)
|
||||
{
|
||||
static const struct button_mapping *m1[] = { pla_main_ctx };
|
||||
int timeout = luaL_checkint(L, 1);
|
||||
int btn;
|
||||
#ifdef HAVE_REMOTE_LCD
|
||||
static const struct button_mapping *m2[] = { pla_main_ctx, pla_remote_ctx };
|
||||
bool with_remote = luaL_optint(L, 2, 0);
|
||||
if (with_remote)
|
||||
btn = pluginlib_getaction(timeout, m2, 2);
|
||||
else
|
||||
#endif
|
||||
btn = pluginlib_getaction(timeout, m1, 1);
|
||||
|
||||
lua_pushinteger(L, btn);
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define R(NAME) {#NAME, rock_##NAME}
|
||||
static const luaL_Reg rocklib[] =
|
||||
{
|
||||
|
@ -670,6 +689,7 @@ static const luaL_Reg rocklib[] =
|
|||
R(backlight_brightness_set),
|
||||
R(backlight_brightness_use_setting),
|
||||
#endif
|
||||
R(get_plugin_action),
|
||||
|
||||
{"new_image", rli_new},
|
||||
|
||||
|
|
Loading…
Reference in a new issue