summaryrefslogtreecommitdiff
path: root/apps/filetypes.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/filetypes.c')
-rw-r--r--apps/filetypes.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c
index a6ccff32ba..89933c8774 100644
--- a/apps/filetypes.c
+++ b/apps/filetypes.c
@@ -39,6 +39,7 @@
39#include "splash.h" 39#include "splash.h"
40#include "buffer.h" 40#include "buffer.h"
41#include "icons.h" 41#include "icons.h"
42#include "logf.h"
42 43
43/* max filetypes (plugins & icons stored here) */ 44/* max filetypes (plugins & icons stored here) */
44#if CONFIG_CODEC == SWCODEC 45#if CONFIG_CODEC == SWCODEC
@@ -160,7 +161,12 @@ void read_color_theme_file(void) {
160 { 161 {
161 if (!settings_parseline(buffer, &ext, &color)) 162 if (!settings_parseline(buffer, &ext, &color))
162 continue; 163 continue;
163 for (i=0; i<filetype_count; i++) 164 if (!strcasecmp(ext, "folder"))
165 {
166 custom_colors[0] = hex_to_rgb(color);
167 continue;
168 }
169 for (i=1; i<filetype_count; i++)
164 { 170 {
165 if (filetypes[i].extension && 171 if (filetypes[i].extension &&
166 !strcasecmp(ext, filetypes[i].extension)) 172 !strcasecmp(ext, filetypes[i].extension))
@@ -369,12 +375,23 @@ static int find_attr(int attr)
369} 375}
370 376
371#ifdef HAVE_LCD_COLOR 377#ifdef HAVE_LCD_COLOR
372int filetype_get_color(int attr) 378int filetype_get_color(const char * name, int attr)
373{ 379{
374 int index = find_attr(attr); 380 char *extension;
375 if (index < 0) 381 int i;
382 if ((attr & ATTR_DIRECTORY)==ATTR_DIRECTORY)
383 return custom_colors[0];
384 extension = strrchr(name, '.');
385 if (!extension)
376 return -1; 386 return -1;
377 return custom_colors[index]; 387 extension++;
388 logf("%s %s",name,extension);
389 for (i=1; i<filetype_count; i++)
390 {
391 if (filetypes[i].extension &&
392 !strcasecmp(extension, filetypes[i].extension))
393 return custom_colors[i];
394 }
378 return -1; 395 return -1;
379} 396}
380#endif 397#endif