summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/filetypes.c21
-rw-r--r--apps/filetypes.h2
-rw-r--r--apps/onplay.c2
3 files changed, 16 insertions, 9 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c
index 68540802b0..8c19cdd32c 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -220,21 +220,28 @@ int filetype_get_attr(const char* name)
220} 220}
221 221
222/* fill a menu list with viewers (used in onplay.c) */ 222/* fill a menu list with viewers (used in onplay.c) */
223int filetype_load_menu(struct menu_item* menu,int max_items) 223int filetype_load_menu(struct menu_item* menu, int max_items,
224 char *filename)
224{ 225{
225 int i; 226 int i;
226 int cnt=0; 227 int cnt=0;
227 228
228 for (i=0; i < cnt_filetypes; i++) 229 for (i=0; i < cnt_exttypes; i++)
229 { 230 {
230 if (filetypes[i].plugin) 231 if(exttypes[i].type->plugin)
231 { 232 {
232 menu[cnt].desc = filetypes[i].plugin; 233 if (strcasecmp(&filename[strlen(filename)-
233 cnt++; 234 strlen(exttypes[i].extension)],
234 if (cnt == max_items) 235 exttypes[i].extension) == 0)
235 break; 236 {
237 menu[cnt].desc = exttypes[i].type->plugin;
238 cnt++;
239 if (cnt == max_items)
240 break;
241 }
236 } 242 }
237 } 243 }
244
238 return cnt; 245 return cnt;
239} 246}
240 247
diff --git a/apps/filetypes.h b/apps/filetypes.h
index e72dd6ffd3..fd1e07721e 100644
--- a/apps/filetypes.h
+++ b/apps/filetypes.h
@@ -32,7 +32,7 @@ int filetype_get_icon(int);
32char* filetype_get_plugin(const struct entry*); 32char* filetype_get_plugin(const struct entry*);
33void filetype_init(void); 33void filetype_init(void);
34bool filetype_supported(int); 34bool filetype_supported(int);
35int filetype_load_menu(struct menu_item*, int); 35int filetype_load_menu(struct menu_item*, int, char*);
36int filetype_load_plugin(const char*, char*); 36int filetype_load_plugin(const char*, char*);
37 37
38struct file_type { 38struct file_type {
diff --git a/apps/onplay.c b/apps/onplay.c
index 7ebe4e1f45..9267c2341b 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -56,7 +56,7 @@ static bool list_viewers(void)
56 int m, i, result; 56 int m, i, result;
57 int ret = 0; 57 int ret = 0;
58 58
59 i=filetype_load_menu(menu,sizeof(menu)/sizeof(*menu)); 59 i=filetype_load_menu(menu,sizeof(menu)/sizeof(*menu),selected_file);
60 if (i) 60 if (i)
61 { 61 {
62 m = menu_init( menu, i, NULL, NULL, NULL, NULL ); 62 m = menu_init( menu, i, NULL, NULL, NULL, NULL );