summaryrefslogtreecommitdiff
path: root/apps/filetree.c
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-10-28 23:31:42 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-10-28 23:31:42 +0000
commitd789e418847a527ffcfb90ed3443fb05efa2da04 (patch)
treefdc0c5a012ead2faed48fe8434167104a4620737 /apps/filetree.c
parent97881c1a62612e6fd716bd2feabeb1a333159d0d (diff)
downloadrockbox-d789e418847a527ffcfb90ed3443fb05efa2da04.zip
rockbox-d789e418847a527ffcfb90ed3443fb05efa2da04.tar.gz
rockbox-d789e418847a527ffcfb90ed3443fb05efa2da04.tar.bz2
rockbox-d789e418847a527ffcfb90ed3443fb05efa2da04.tar.xz
Add support for running Lua games/apps from the Plugins menu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23390 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/filetree.c')
-rw-r--r--apps/filetree.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 3b31358..945b9ac 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -344,7 +344,8 @@ int ft_load(struct tree_context* c, const char* tempdir)
(*c->dirfilter == SHOW_CFG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_CFG) ||
(*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) ||
(*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) ||
- (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK))
+ (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK &&
+ (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA))
{
i--;
continue;
@@ -582,13 +583,21 @@ int ft_enter(struct tree_context* c)
/* plugin file */
case FILE_ATTR_ROCK:
+ case FILE_ATTR_LUA:
{
+ char *plugin = buf, *argument = NULL;
int ret;
+
+ if ((file->attr & FILE_ATTR_MASK) == FILE_ATTR_LUA) {
+ plugin = VIEWERS_DIR "/lua.rock"; /* Use a #define here ? */
+ argument = buf;
+ }
+
if (global_settings.party_mode && audio_status()) {
splash(HZ, ID2P(LANG_PARTY_MODE));
break;
}
- ret = plugin_load(buf,NULL);
+ ret = plugin_load(plugin, argument);
switch (ret)
{
case PLUGIN_GOTO_WPS: