summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/filetree.c13
-rw-r--r--apps/filetypes.c1
-rw-r--r--apps/filetypes.h1
3 files changed, 13 insertions, 2 deletions
diff --git a/apps/filetree.c b/apps/filetree.c
index 3b31358321..945b9ac504 100644
--- a/apps/filetree.c
+++ b/apps/filetree.c
@@ -344,7 +344,8 @@ int ft_load(struct tree_context* c, const char* tempdir)
344 (*c->dirfilter == SHOW_CFG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_CFG) || 344 (*c->dirfilter == SHOW_CFG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_CFG) ||
345 (*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) || 345 (*c->dirfilter == SHOW_LNG && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LNG) ||
346 (*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) || 346 (*c->dirfilter == SHOW_MOD && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_MOD) ||
347 (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK)) 347 (*c->dirfilter == SHOW_PLUGINS && (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_ROCK &&
348 (dptr->attr & FILE_ATTR_MASK) != FILE_ATTR_LUA))
348 { 349 {
349 i--; 350 i--;
350 continue; 351 continue;
@@ -582,13 +583,21 @@ int ft_enter(struct tree_context* c)
582 583
583 /* plugin file */ 584 /* plugin file */
584 case FILE_ATTR_ROCK: 585 case FILE_ATTR_ROCK:
586 case FILE_ATTR_LUA:
585 { 587 {
588 char *plugin = buf, *argument = NULL;
586 int ret; 589 int ret;
590
591 if ((file->attr & FILE_ATTR_MASK) == FILE_ATTR_LUA) {
592 plugin = VIEWERS_DIR "/lua.rock"; /* Use a #define here ? */
593 argument = buf;
594 }
595
587 if (global_settings.party_mode && audio_status()) { 596 if (global_settings.party_mode && audio_status()) {
588 splash(HZ, ID2P(LANG_PARTY_MODE)); 597 splash(HZ, ID2P(LANG_PARTY_MODE));
589 break; 598 break;
590 } 599 }
591 ret = plugin_load(buf,NULL); 600 ret = plugin_load(plugin, argument);
592 switch (ret) 601 switch (ret)
593 { 602 {
594 case PLUGIN_GOTO_WPS: 603 case PLUGIN_GOTO_WPS:
diff --git a/apps/filetypes.c b/apps/filetypes.c
index 2c737ce883..b442a9ec2c 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -102,6 +102,7 @@ static const struct filetype inbuilt_filetypes[] = {
102#endif 102#endif
103 { "lng", FILE_ATTR_LNG, Icon_Language, LANG_LANGUAGE }, 103 { "lng", FILE_ATTR_LNG, Icon_Language, LANG_LANGUAGE },
104 { "rock",FILE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK }, 104 { "rock",FILE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK },
105 { "lua", FILE_ATTR_LUA, Icon_Plugin, VOICE_EXT_ROCK },
105#ifdef HAVE_LCD_BITMAP 106#ifdef HAVE_LCD_BITMAP
106 { "fnt", FILE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT }, 107 { "fnt", FILE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT },
107 { "kbd", FILE_ATTR_KBD, Icon_Keyboard, VOICE_EXT_KBD }, 108 { "kbd", FILE_ATTR_KBD, Icon_Keyboard, VOICE_EXT_KBD },
diff --git a/apps/filetypes.h b/apps/filetypes.h
index d3846b03bf..068ec3b259 100644
--- a/apps/filetypes.h
+++ b/apps/filetypes.h
@@ -43,6 +43,7 @@
43#define FILE_ATTR_CUE 0x0E00 /* cuesheet file */ 43#define FILE_ATTR_CUE 0x0E00 /* cuesheet file */
44#define FILE_ATTR_SBS 0x0F00 /* statusbar file */ 44#define FILE_ATTR_SBS 0x0F00 /* statusbar file */
45#define FILE_ATTR_RSBS 0x1000 /* remote statusbar file */ 45#define FILE_ATTR_RSBS 0x1000 /* remote statusbar file */
46#define FILE_ATTR_LUA 0x1100 /* Lua rockbox plugin */
46#define FILE_ATTR_MASK 0xFF00 /* which bits tree.c uses for file types */ 47#define FILE_ATTR_MASK 0xFF00 /* which bits tree.c uses for file types */
47 48
48struct filetype { 49struct filetype {