summaryrefslogtreecommitdiff
path: root/apps/filetypes.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2007-04-18 13:03:01 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2007-04-18 13:03:01 +0000
commit36a2e3087295385d15797f83120222ff71dc32bf (patch)
tree99ef6148d8b020396734f9c3dcfd520d730045f3 /apps/filetypes.c
parentf44f961812c059b69df19ac5bd828986ba10513f (diff)
downloadrockbox-36a2e3087295385d15797f83120222ff71dc32bf.tar.gz
rockbox-36a2e3087295385d15797f83120222ff71dc32bf.zip
Move the inbuilt filetype info into filetypes.c and rename the defines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13201 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/filetypes.c')
-rw-r--r--apps/filetypes.c74
1 files changed, 65 insertions, 9 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c
index a4eac70374..0daae1b617 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -48,8 +48,66 @@
48#define MAX_FILETYPES 48 48#define MAX_FILETYPES 48
49#endif 49#endif
50 50
51/* number of bytes for the binary icon */ 51/* a table for the know file types */
52#define ICON_LENGTH 6 52const struct filetype inbuilt_filetypes[] = {
53 { "mp3", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
54 { "mp2", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
55 { "mpa", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
56#if CONFIG_CODEC == SWCODEC
57 /* Temporary hack to allow playlist creation */
58 { "mp1", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
59 { "ogg", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
60 { "wma", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
61 { "wav", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
62 { "flac",FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
63 { "ac3", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
64 { "a52", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
65 { "mpc", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
66 { "wv", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
67 { "m4a", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
68 { "m4b", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
69 { "mp4", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
70 { "shn", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
71 { "aif", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
72 { "aiff",FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
73 { "spx" ,FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
74 { "sid", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
75 { "adx", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
76 { "nsf", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
77 { "nsfe",FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
78 { "spc", FILE_ATTR_AUDIO, Icon_Audio, VOICE_EXT_MPA },
79#endif
80 { "m3u", FILE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
81 { "m3u8",FILE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
82 { "cfg", FILE_ATTR_CFG, Icon_Config, VOICE_EXT_CFG },
83 { "wps", FILE_ATTR_WPS, Icon_Wps, VOICE_EXT_WPS },
84#ifdef HAVE_REMOTE_LCD
85 { "rwps",FILE_ATTR_RWPS, Icon_Wps, VOICE_EXT_RWPS },
86#endif
87#if LCD_DEPTH > 1
88 { "bmp", FILE_ATTR_BMP, Icon_Wps, VOICE_EXT_WPS },
89#endif
90#if CONFIG_TUNER
91 { "fmr", FILE_ATTR_FMR, Icon_Preset, LANG_FMR },
92#endif
93 { "lng", FILE_ATTR_LNG, Icon_Language, LANG_LANGUAGE },
94 { "rock",FILE_ATTR_ROCK,Icon_Plugin, VOICE_EXT_ROCK },
95#ifdef HAVE_LCD_BITMAP
96 { "fnt", FILE_ATTR_FONT,Icon_Font, VOICE_EXT_FONT },
97 { "kbd", FILE_ATTR_KBD, Icon_Keyboard, VOICE_EXT_KBD },
98#endif
99 { "bmark",FILE_ATTR_BMARK, Icon_Bookmark, VOICE_EXT_BMARK },
100 { "cue", FILE_ATTR_CUE, Icon_Bookmark, LANG_CUESHEET },
101#ifdef BOOTFILE_EXT
102 { BOOTFILE_EXT, FILE_ATTR_MOD, Icon_Firmware, VOICE_EXT_AJZ },
103#endif /* #ifndef SIMULATOR */
104};
105
106void tree_get_filetypes(const struct filetype** types, int* count)
107{
108 *types = inbuilt_filetypes;
109 *count = sizeof(inbuilt_filetypes) / sizeof(*inbuilt_filetypes);
110}
53 111
54/* mask for dynamic filetype info in attribute */ 112/* mask for dynamic filetype info in attribute */
55#define FILETYPES_MASK 0xFF00 113#define FILETYPES_MASK 0xFF00
@@ -155,17 +213,15 @@ static void rm_whitespaces(char* str)
155 213
156static void read_builtin_types(void) 214static void read_builtin_types(void)
157{ 215{
158 const struct filetype *types; 216 int count = sizeof(inbuilt_filetypes)/sizeof(*inbuilt_filetypes), i;
159 int count, i;
160 tree_get_filetypes(&types, &count);
161 for(i=0; i<count && (filetype_count < MAX_FILETYPES); i++) 217 for(i=0; i<count && (filetype_count < MAX_FILETYPES); i++)
162 { 218 {
163 filetypes[filetype_count].extension = types[i].extension; 219 filetypes[filetype_count].extension = inbuilt_filetypes[i].extension;
164 filetypes[filetype_count].plugin = NULL; 220 filetypes[filetype_count].plugin = NULL;
165 filetypes[filetype_count].attr = types[i].tree_attr>>8; 221 filetypes[filetype_count].attr = inbuilt_filetypes[i].tree_attr>>8;
166 if (filetypes[filetype_count].attr > heighest_attr) 222 if (filetypes[filetype_count].attr > heighest_attr)
167 heighest_attr = filetypes[filetype_count].attr; 223 heighest_attr = filetypes[filetype_count].attr;
168 filetypes[filetype_count].icon = types[i].icon; 224 filetypes[filetype_count].icon = inbuilt_filetypes[i].icon;
169 filetype_count++; 225 filetype_count++;
170 } 226 }
171} 227}
@@ -247,7 +303,7 @@ int filetype_get_attr(const char* file)
247 { 303 {
248 if (filetypes[i].extension && 304 if (filetypes[i].extension &&
249 !strcasecmp(extension, filetypes[i].extension)) 305 !strcasecmp(extension, filetypes[i].extension))
250 return (filetypes[i].attr<<8)&TREE_ATTR_MASK; 306 return (filetypes[i].attr<<8)&FILE_ATTR_MASK;
251 } 307 }
252 return 0; 308 return 0;
253} 309}