summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-06-24 21:46:17 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-06-24 21:46:17 +0000
commitaf980d8bcbfa37f3391f068f851f68b390769f71 (patch)
tree73fdbafa91b6c68bdbc7754b1deb9d1265ea570e /apps/plugins
parent7a8e1e8fc00b4255c28696962dc240a70bc6e082 (diff)
downloadrockbox-af980d8bcbfa37f3391f068f851f68b390769f71.zip
rockbox-af980d8bcbfa37f3391f068f851f68b390769f71.tar.gz
rockbox-af980d8bcbfa37f3391f068f851f68b390769f71.tar.bz2
rockbox-af980d8bcbfa37f3391f068f851f68b390769f71.tar.xz
Lua: expose BUTTON_* defines
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21500 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rwxr-xr-xapps/plugins/lua/button_helper.pl64
-rw-r--r--apps/plugins/lua/lua.make8
2 files changed, 70 insertions, 2 deletions
diff --git a/apps/plugins/lua/button_helper.pl b/apps/plugins/lua/button_helper.pl
new file mode 100755
index 0000000..43307a0
--- /dev/null
+++ b/apps/plugins/lua/button_helper.pl
@@ -0,0 +1,64 @@
+#!/usr/bin/env perl
+############################################################################
+# __________ __ ___.
+# Open \______ \ ____ ____ | | _\_ |__ _______ ___
+# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+# \/ \/ \/ \/ \/
+# $Id$
+#
+# Copyright (C) 2009 by Maurus Cuelenaere
+#
+# All files in this archive are subject to the GNU General Public License.
+# See the file COPYING in the source tree root for full license agreement.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+############################################################################
+
+$svnrev = '$Revision$';
+
+print <<EOF
+#include <stdio.h>
+#include <stdbool.h>
+#include "button-target.h"
+
+struct button
+{
+ char* name;
+ unsigned long value;
+};
+
+static struct button buttons[] = {
+EOF
+;
+
+while(my $line = <STDIN>)
+{
+ chomp($line);
+ if($line =~ /^#define (BUTTON_[^\s]+) (.+)$/)
+ {
+ printf "{\"%s\", %s},\n", $1, $2;
+ }
+}
+
+print <<EOF
+};
+
+int main(void)
+{
+ unsigned int i;
+ printf("-- Don't change this file!\\n");
+ printf("-- It is automatically generated of button-target.h \%s\\n", "$svnrev");
+ printf("rb.buttons = {\\n");
+ for(i=0; i<sizeof(buttons)/sizeof(struct button); i++)
+ printf("\\t\%s = \%ld,\\n", buttons[i].name, buttons[i].value);
+ printf("}\\n");
+
+ return 0;
+}
+
+EOF
+;
diff --git a/apps/plugins/lua/lua.make b/apps/plugins/lua/lua.make
index 596e320..1232ddf 100644
--- a/apps/plugins/lua/lua.make
+++ b/apps/plugins/lua/lua.make
@@ -30,10 +30,14 @@ else
ROCKS += $(LUA_BUILDDIR)/lua.rock
endif
-$(LUA_BUILDDIR)/lua.rock: $(LUA_OBJ) $(LUA_BUILDDIR)/actions.lua
+$(LUA_BUILDDIR)/lua.rock: $(LUA_OBJ) $(LUA_BUILDDIR)/actions.lua $(LUA_BUILDDIR)/buttons.lua
$(LUA_BUILDDIR)/actions.lua: $(LUA_OBJ)
- $(call PRINTS,GEN $(@F))$(CC) $(PLUGINFLAGS) -E $(APPSDIR)/action.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua
+ $(call PRINTS,GEN $(@F))$(CC) $(INCLUDES) -E $(APPSDIR)/action.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua
+
+$(LUA_BUILDDIR)/buttons.lua: $(LUA_OBJ)
+ $(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 -
+ $(call PRINTS,GEN $(@F))$(LUA_BUILDDIR)/button_helper > $(LUA_BUILDDIR)/buttons.lua
$(LUA_BUILDDIR)/lua.refmap: $(LUA_OBJ)