mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
Fix some bugs with the colors stuff. You can now specify folder color with the folder extension.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13659 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d88d2557d0
commit
f8682a032e
4 changed files with 31 additions and 11 deletions
|
@ -39,6 +39,7 @@
|
||||||
#include "splash.h"
|
#include "splash.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "icons.h"
|
#include "icons.h"
|
||||||
|
#include "logf.h"
|
||||||
|
|
||||||
/* max filetypes (plugins & icons stored here) */
|
/* max filetypes (plugins & icons stored here) */
|
||||||
#if CONFIG_CODEC == SWCODEC
|
#if CONFIG_CODEC == SWCODEC
|
||||||
|
@ -160,7 +161,12 @@ void read_color_theme_file(void) {
|
||||||
{
|
{
|
||||||
if (!settings_parseline(buffer, &ext, &color))
|
if (!settings_parseline(buffer, &ext, &color))
|
||||||
continue;
|
continue;
|
||||||
for (i=0; i<filetype_count; i++)
|
if (!strcasecmp(ext, "folder"))
|
||||||
|
{
|
||||||
|
custom_colors[0] = hex_to_rgb(color);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (i=1; i<filetype_count; i++)
|
||||||
{
|
{
|
||||||
if (filetypes[i].extension &&
|
if (filetypes[i].extension &&
|
||||||
!strcasecmp(ext, filetypes[i].extension))
|
!strcasecmp(ext, filetypes[i].extension))
|
||||||
|
@ -369,12 +375,23 @@ static int find_attr(int attr)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_LCD_COLOR
|
#ifdef HAVE_LCD_COLOR
|
||||||
int filetype_get_color(int attr)
|
int filetype_get_color(const char * name, int attr)
|
||||||
{
|
{
|
||||||
int index = find_attr(attr);
|
char *extension;
|
||||||
if (index < 0)
|
int i;
|
||||||
|
if ((attr & ATTR_DIRECTORY)==ATTR_DIRECTORY)
|
||||||
|
return custom_colors[0];
|
||||||
|
extension = strrchr(name, '.');
|
||||||
|
if (!extension)
|
||||||
return -1;
|
return -1;
|
||||||
return custom_colors[index];
|
extension++;
|
||||||
|
logf("%s %s",name,extension);
|
||||||
|
for (i=1; i<filetype_count; i++)
|
||||||
|
{
|
||||||
|
if (filetypes[i].extension &&
|
||||||
|
!strcasecmp(extension, filetypes[i].extension))
|
||||||
|
return custom_colors[i];
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -60,7 +60,7 @@ void read_color_theme_file(void);
|
||||||
/* Return the attribute (FILE_ATTR_*) of the file */
|
/* Return the attribute (FILE_ATTR_*) of the file */
|
||||||
int filetype_get_attr(const char* file);
|
int filetype_get_attr(const char* file);
|
||||||
#ifdef HAVE_LCD_COLOR
|
#ifdef HAVE_LCD_COLOR
|
||||||
int filetype_get_color(int attr);
|
int filetype_get_color(const char * name, int attr);
|
||||||
#endif
|
#endif
|
||||||
int filetype_get_icon(int attr);
|
int filetype_get_icon(int attr);
|
||||||
/* return the plugin filename associated with the file */
|
/* return the plugin filename associated with the file */
|
||||||
|
|
|
@ -171,7 +171,7 @@ static int tree_get_filecolor(int selected_item, void * data)
|
||||||
struct tree_context * local_tc=(struct tree_context *)data;
|
struct tree_context * local_tc=(struct tree_context *)data;
|
||||||
struct entry* dc = local_tc->dircache;
|
struct entry* dc = local_tc->dircache;
|
||||||
struct entry* e = &dc[selected_item];
|
struct entry* e = &dc[selected_item];
|
||||||
return filetype_get_color(e->attr);
|
return filetype_get_color(e->name, e->attr);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
mp3:904010
|
folder:808080
|
||||||
ogg:D04040
|
ipod:00B0B0
|
||||||
|
mp3:00FF00
|
||||||
|
flac:00FF00
|
||||||
|
ogg:00FF00
|
||||||
txt:FF0000
|
txt:FF0000
|
||||||
cfg:00FF00
|
cfg:D00000
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue