diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-08-10 14:15:03 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-08-10 14:15:03 +0000 |
| commit | 489962dc4e34cc89c2bf9d124feb74954eb92c68 (patch) | |
| tree | ef53892652379e43dde6dd013a2ad5081a718d25 /apps/misc.c | |
| parent | a547fc1b351f98f620ba61e240ebbf0729727e1c (diff) | |
| download | rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.zip rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.gz rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.bz2 rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.xz | |
Fix FS#11526 - %Vf(<hex>) was acceptable on grey remotes with colour main
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27768 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
| -rw-r--r-- | apps/misc.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/apps/misc.c b/apps/misc.c index 9fbdd43..31f0ac4 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -930,20 +930,31 @@ int hex_to_rgb(const char* hex, int* color) /* '0'-'3' are ASCII 0x30 to 0x33 */ #define is0123(x) (((x) & 0xfc) == 0x30) -bool parse_color(char *text, int *value) +bool parse_color(enum screen_type screen, char *text, int *value) { (void)text; (void)value; /* silence warnings on mono bitmap */ + int depth = screens[screen].depth; + #ifdef HAVE_LCD_COLOR - if (hex_to_rgb(text, value) < 0) - return false; + if (depth > 2) + { + if (hex_to_rgb(text, value) < 0) + return false; + else + return true; + } #endif #if LCD_DEPTH == 2 || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH == 2) - if (text[1] != '\0' || !is0123(*text)) - return false; - *value = *text - '0'; + if (depth == 2) + { + if (text[1] != '\0' || !is0123(*text)) + return false; + *value = *text - '0'; + return true; + } #endif - return true; + return false; } /* only used in USB HID and set_time screen */ |