diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/filetypes.c | 21 | ||||
-rw-r--r-- | apps/filetypes.h | 2 | ||||
-rw-r--r-- | apps/onplay.c | 2 |
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) */ |
223 | int filetype_load_menu(struct menu_item* menu,int max_items) | 223 | int 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); | |||
32 | char* filetype_get_plugin(const struct entry*); | 32 | char* filetype_get_plugin(const struct entry*); |
33 | void filetype_init(void); | 33 | void filetype_init(void); |
34 | bool filetype_supported(int); | 34 | bool filetype_supported(int); |
35 | int filetype_load_menu(struct menu_item*, int); | 35 | int filetype_load_menu(struct menu_item*, int, char*); |
36 | int filetype_load_plugin(const char*, char*); | 36 | int filetype_load_plugin(const char*, char*); |
37 | 37 | ||
38 | struct file_type { | 38 | struct 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 ); |