From 07a7d47cc1889a476418dc791599625d4e38a100 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Sun, 12 Aug 2007 09:53:41 +0000 Subject: [PATCH] Revert my filetypes commits from today. the nvram buffer is 44bytes of which 43 are currently being used. We need to figure out what to do about this. So in the mean time, set the MAX_FILETYPES to a huge value so we don't have to worry about this for a long while. This build shold be safe to use again. If you downloaded a build after r14286 make sure you grab a new one git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14291 a1c6a512-1295-4272-9138-f99709370657 --- apps/filetypes.c | 62 ++++++++++++++++++-------------------------- apps/settings.h | 8 ------ apps/settings_list.c | 1 - apps/settings_list.h | 2 +- 4 files changed, 26 insertions(+), 47 deletions(-) diff --git a/apps/filetypes.c b/apps/filetypes.c index 090898a3af..21ce17ce40 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c @@ -41,12 +41,20 @@ #include "icons.h" #include "logf.h" +/* max filetypes (plugins & icons stored here) */ +#if CONFIG_CODEC == SWCODEC +#define MAX_FILETYPES 128 +#else +#define MAX_FILETYPES 48 +#endif + /* a table for the know file types */ const struct filetype inbuilt_filetypes[] = { { "mp3", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "mp2", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "mpa", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, #if CONFIG_CODEC == SWCODEC + /* Temporary hack to allow playlist creation */ { "mp1", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "ogg", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, { "wma", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA }, @@ -96,7 +104,7 @@ const struct filetype inbuilt_filetypes[] = { { "cue", FILE_ATTR_CUE, Icon_Bookmark, VOICE_EXT_CUESHEET }, #ifdef BOOTFILE_EXT { BOOTFILE_EXT, FILE_ATTR_MOD, Icon_Firmware, VOICE_EXT_AJZ }, -#endif /* #ifndef BOOTFILE_EXT */ +#endif /* #ifndef SIMULATOR */ }; void tree_get_filetypes(const struct filetype** types, int* count) @@ -115,14 +123,14 @@ struct file_type { char* plugin; /* Which plugin to use, NULL if unknown, or builtin */ char* extension; /* NULL for none */ }; -static struct file_type *filetypes; -static int *custom_filetype_icons; +static struct file_type filetypes[MAX_FILETYPES]; +static int custom_filetype_icons[MAX_FILETYPES]; static bool custom_icons_loaded = false; #ifdef HAVE_LCD_COLOR -static int *custom_colors; +static int custom_colors[MAX_FILETYPES+1]; #endif +static int filetype_count = 0; static unsigned char heighest_attr = 0; -static int max_types = 0, filetype_count; static char *filetypes_strdup(char* string) { @@ -142,10 +150,7 @@ void read_color_theme_file(void) { int fd; char *ext, *color; int i; - - if (max_types == 0) - return; - for (i = 0; i < filetype_count+1; i++) { + for (i = 0; i < MAX_FILETYPES+1; i++) { custom_colors[i] = -1; } snprintf(buffer, MAX_PATH, "%s/%s.colours", THEME_DIR, @@ -164,7 +169,7 @@ void read_color_theme_file(void) { } if (!strcasecmp(ext, "???")) { - custom_colors[filetype_count] = hex_to_rgb(color); + custom_colors[MAX_FILETYPES] = hex_to_rgb(color); continue; } for (i=1; i>8; + filetypes[filetype_count].attr = inbuilt_filetypes[i].tree_attr>>8; if (filetypes[filetype_count].attr > heighest_attr) heighest_attr = filetypes[filetype_count].attr; - filetypes[filetype_count].icon = inbuilt_filetypes[i].icon; + filetypes[filetype_count].icon = inbuilt_filetypes[i].icon; filetype_count++; } } @@ -302,15 +291,14 @@ static void read_config(char* config_file) int fd = open(config_file, O_RDONLY); if (fd < 0) return; - /* config file is in the form + /* config file is in the for ,, ignore line if either of the first two are missing */ while (read_line(fd, line, 64) > 0) { - if (filetype_count >= max_types) + if (filetype_count >= MAX_FILETYPES) { gui_syncsplash(HZ, ID2P(LANG_FILETYPES_FULL)); - global_status.filetype_count = 0; /* make plenty of room for next reboot */ break; } rm_whitespaces(line); @@ -359,7 +347,7 @@ int filetype_get_attr(const char* file) if (!extension) return 0; extension++; - for (i=0; i