summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Hak <adiamas@rockbox.org>2002-10-26 05:26:23 +0000
committerRobert Hak <adiamas@rockbox.org>2002-10-26 05:26:23 +0000
commit5a9e8929cd38604f2a4ea6a9350830ef42c533d6 (patch)
tree7f872a27f4fbcf33afa024e8554d54546df61439
parent061763b2a679da199f14da5de36b307705b8c7d0 (diff)
downloadrockbox-5a9e8929cd38604f2a4ea6a9350830ef42c533d6.zip
rockbox-5a9e8929cd38604f2a4ea6a9350830ef42c533d6.tar.gz
rockbox-5a9e8929cd38604f2a4ea6a9350830ef42c533d6.tar.bz2
rockbox-5a9e8929cd38604f2a4ea6a9350830ef42c533d6.tar.xz
battery/volume status can be displayed numerically
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2750 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/lang/english.lang18
-rw-r--r--apps/recorder/icons.c53
-rw-r--r--apps/recorder/sokoban_levels.txt123
-rw-r--r--apps/settings.c14
-rw-r--r--apps/settings.h2
-rw-r--r--apps/settings_menu.c20
6 files changed, 148 insertions, 82 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index baadc2e..a9858ac 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -1028,4 +1028,22 @@ desc: in settings_menu
eng: "Ask Once"
new:
+id: LANG_BATTERY_DISPLAY
+desc: Battery type title
+eng: "Battery Display"
+new:
+
+id: LANG_VOLUME_DISPLAY
+desc: Volume type title
+eng: "Volume Display"
+new:
+id: LANG_DISPLAY_GRAPHIC
+desc: Label for type of icon display
+eng: "Graphic"
+new:
+
+id: LANG_DISPLAY_NUMERIC
+desc: Label for type of icon display
+eng: "Numeric"
+new:
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index adcfda5..f394b2b 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -152,22 +152,38 @@ void statusbar_icon_battery(int percent, bool charging)
{
int i;
int fill;
+ char buffer[5];
+ unsigned int width, height;
+
+ /* fill battery */
+ fill=percent;
+ if (fill < 0)
+ fill = 0;
+ if (fill > 100)
+ fill = 100;
+
+ if (global_settings.battery_type) {
+
+ /* Numeric display */
+ snprintf(buffer, sizeof(buffer), "%3d", percent);
+ lcd_setfont(FONT_SYSFIXED);
+ lcd_getstringsize(buffer, &width, &height);
+ if (height <= STATUSBAR_HEIGHT)
+ lcd_putsxy(ICON_BATTERY_X_POS + ICON_BATTERY_WIDTH / 2 -
+ width/2, STATUSBAR_Y_POS, buffer);
+ lcd_setfont(FONT_UI);
- /* draw battery */
- lcd_drawrect(ICON_BATTERY_X_POS, STATUSBAR_Y_POS, 17, 7);
- for (i=2; i < 5; i++)
- lcd_drawpixel(ICON_BATTERY_X_POS + 17, STATUSBAR_Y_POS + i);
-
- /* fill battery */
- fill=percent;
- if (fill < 0)
- fill = 0;
- if (fill > 100)
- fill = 100;
+ } else {
- fill = fill * 15 / 100;
+ /* draw battery */
+ lcd_drawrect(ICON_BATTERY_X_POS, STATUSBAR_Y_POS, 17, 7);
+ for (i=2; i < 5; i++)
+ lcd_drawpixel(ICON_BATTERY_X_POS + 17, STATUSBAR_Y_POS + i);
- lcd_fillrect(ICON_BATTERY_X_POS + 1, STATUSBAR_Y_POS + 1, fill, 5);
+ fill = fill * 15 / 100;
+
+ lcd_fillrect(ICON_BATTERY_X_POS + 1, STATUSBAR_Y_POS + 1, fill, 5);
+ }
/* draw power plug if charging */
if (charging)
@@ -207,8 +223,11 @@ void statusbar_icon_volume(int percent)
switch_tick = current_tick + HZ;
last_volume = volume;
}
- /* display volume lever numerical? */
- if (TIME_BEFORE(current_tick,switch_tick)) {
+
+ /* display volume level numerical? */
+ if (global_settings.volume_type ||
+ TIME_BEFORE(current_tick,switch_tick))
+ {
snprintf(buffer, sizeof(buffer), "%2d", percent);
lcd_setfont(FONT_SYSFIXED);
lcd_getstringsize(buffer, &width, &height);
@@ -216,8 +235,8 @@ void statusbar_icon_volume(int percent)
lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
width/2, STATUSBAR_Y_POS, buffer);
lcd_setfont(FONT_UI);
- }
- else { /* display volume bar */
+ } else {
+ /* display volume bar */
volume = volume * 14 / 100;
for(i=0; i < volume; i++) {
if(i%2 == 0)
diff --git a/apps/recorder/sokoban_levels.txt b/apps/recorder/sokoban_levels.txt
index 0b8fa14..6aaf606 100644
--- a/apps/recorder/sokoban_levels.txt
+++ b/apps/recorder/sokoban_levels.txt
@@ -1,12 +1,13 @@
+/*
# Map legend:
#
-# white space is clear back ground
-# X = black back ground
-# # = wall
-# . = block destination
-# @ = starting position
-# $ = movable block
-
+# 1 white space is clear back ground
+# 0 X = black back ground
+# 2 # = wall
+# 3 . = block destination
+# 5 @ = starting position
+# 4 $ = movable block
+# 7 % = a placed block
level: 1
XXXXXXXXXXXXXXXXXXXX
@@ -70,7 +71,7 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXX#####XXXXXX
XXXXXX#### .#XXXXXX
-XXXXXX# $ 7#XXXXXX
+XXXXXX# $ %#XXXXXX
XXXXXX# $$ $.#XXXXXX
XXXXXX##@##..#XXXXXX
XXXXXXX#######XXXXXX
@@ -180,7 +181,7 @@ XXXXXXXX#####XXXXXXX
XXXXXX### @#XXXXXXX
XXXXXX# $. ##XXXXXX
XXXXXX# .$. #XXXXXX
-XXXXXX### 7$ #XXXXXX
+XXXXXX### %$ #XXXXXX
XXXXXXXX# ##XXXXXX
XXXXXXXX#####XXXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -196,7 +197,7 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXX########XXXXXX
XXXXXX# # #XXXXXX
XXXXXX# $..$ #XXXXXX
-XXXXXX#@$.7 ##XXXXXX
+XXXXXX#@$.% ##XXXXXX
XXXXXX# $..$ #XXXXXX
XXXXXX# # #XXXXXX
XXXXXX########XXXXXX
@@ -250,7 +251,7 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXX########XXXXX
XXXXXXX# #. #XXXXX
XXXXXX## $...#XXXXX
-XXXXXX# $ #7.#XXXXX
+XXXXXX# $ #%.#XXXXX
XXXXX## ##$# ##XXXXX
XXXXX# $ $ #XXXXX
XXXXX# # #XXXXX
@@ -338,11 +339,11 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXX#########XXXXXX
-XXXXX# 7 #XXXXXX
+XXXXX# % #XXXXXX
XXXXX# $.$. @#XXXXXX
XXXXX# .$.$. #XXXXXX
XXXXX# $.$.$ #XXXXXX
-XXXXX# 7 #XXXXXX
+XXXXX# % #XXXXXX
XXXXX#########XXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -396,7 +397,7 @@ XXXXXX#####XXXXXXXXX
XXXXXX# ####XXXXXX
XXXXX## #$ #XXXXXX
XXXXX# $ $$ #XXXXXX
-XXXXX# #$#.7.#XXXXXX
+XXXXX# #$#.%.#XXXXXX
XXXXX# @...#XXXXXX
XXXXX#########XXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -412,8 +413,8 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXX#####XXXXXX
XXXXXX#### ##XXXXX
XXXXXX# $ $ #XXXXX
-XXXXXX#@#.7.# #XXXXX
-XXXXXX# #.7.# #XXXXX
+XXXXXX#@#.%.# #XXXXX
+XXXXXX# #.%.# #XXXXX
XXXXXX# $ $ #XXXXX
XXXXXX## ####XXXXX
XXXXXXX#####XXXXXXXX
@@ -466,9 +467,9 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXX#######XXXXXXXX
XXXXX# #####XXXX
-XXXXX# $ .7. $ #XXXX
-XXXXX#@$.7 7.$ #XXXX
-XXXXX# $ .7. $ #XXXX
+XXXXX# $ .%. $ #XXXX
+XXXXX#@$.% %.$ #XXXX
+XXXXX# $ .%. $ #XXXX
XXXXX###### #XXXX
XXXXXXXXXX######XXXX
XXXXXXXXXXXXXXXXXXXX
@@ -484,8 +485,8 @@ XXXXXXXXXXXXXXXXXXXX
XXXXX######XXXXXXXXX
XXXXX# #XXXXXXXXX
XXXXX# $ ####XXXXXX
-XXXXX# $7..7 #XXXXXX
-XXXXX# 7..7$ #XXXXXX
+XXXXX# $%..% #XXXXXX
+XXXXX# %..%$ #XXXXXX
XXXXX#### $ #XXXXXX
XXXXXXXX# @ #XXXXXX
XXXXXXXX######XXXXXX
@@ -574,9 +575,9 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXX########XXXXXX
XXXXXX# #.. ##XXXXX
-XXXXXX# $. $7 #XXXXX
+XXXXXX# $. $% #XXXXX
XXXXXX# $@$ #XXXXX
-XXXXXX# 7$ .$ #XXXXX
+XXXXXX# %$ .$ #XXXXX
XXXXXX## ..# #XXXXX
XXXXXXX########XXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -590,13 +591,13 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXX#######XXXXXXX
-XXXXX## 7 ##XXXXXX
+XXXXX## % ##XXXXXX
XXXXX# . . . #XXXXXX
-XXXXX# $ 7 #XXXXXX
-XXXXX#7$$7$$7#XXXXXX
-XXXXX# 7 $ #XXXXXX
+XXXXX# $ % #XXXXXX
+XXXXX#%$$%$$%#XXXXXX
+XXXXX# % $ #XXXXXX
XXXXX# . .@. #XXXXXX
-XXXXX## 7 ##XXXXXX
+XXXXX## % ##XXXXXX
XXXXXX#######XXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -609,9 +610,9 @@ XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXX#########XXXXXX
XXXXX# .$ @#XXXXXX
-XXXXX# $ 7 $ #XXXXXX
-XXXXX#7...7.7#XXXXXX
-XXXXX# $$7 #XXXXXX
+XXXXX# $ % $ #XXXXXX
+XXXXX#%...%.%#XXXXXX
+XXXXX# $$% #XXXXXX
XXXXX# . $ #XXXXXX
XXXXX#########XXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -681,7 +682,7 @@ XXXXXXXX#######XXXXX
XXXXXX### #XXXXX
XXXXX## # # #XXXXX
XXXXX# #.$$$ #XXXXX
-XXXXX# #.7# ###XXXXX
+XXXXX# #.%# ###XXXXX
XXXXX# ..# #XXXXXXX
XXXXX###..$ ##XXXXXX
XXXXXXX#.# $ #XXXXXX
@@ -718,7 +719,7 @@ XXXXX# #XXXXXXX
XXXXX# @ $# #XXXXXXX
XXXXX## # #XXXXXXX
XXXXX# $#.# #XXXXXXX
-XXXXX# .7.$#XXXXXXX
+XXXXX# .%.$#XXXXXXX
XXXXX## #.# #XXXXXXX
XXXXXX# #. ##XXXXXX
XXXXX## $.# #XXXXXX
@@ -737,7 +738,7 @@ XXXX#### #XXXXX
XXXX# .### ##XXXXX
XXXX# # # ##XXXXX
XXXX# # $ $#. #XXXXX
-XXXX# # 7 # #XXXXX
+XXXX# # % # #XXXXX
XXXX# .#$ $ # #XXXXX
XXXX## # # #XXXXX
XXXXX# ###. #XXXXX
@@ -775,9 +776,9 @@ XXXXXX##$# .#XXXXXX
XXXXXXX# #$# #XXXXXX
XXXXXX##. . #XXXXXX
XXXXXX# ## #XXXXXX
-XXXXXX# # 7#XXXXXX
+XXXXXX# # %#XXXXXX
XXXXXX# $ $ #XXXXXX
-XXXXXX# $#7 @#XXXXXX
+XXXXXX# $#% @#XXXXXX
XXXXXX# #.###XXXXXX
XXXXXX######XXXXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -807,11 +808,11 @@ XXXXXXXXX####XXXXXXX
XXXXXXX### ##XXXXXX
XXXXXX## ##XXXXX
XXXXXX# # ..#XXXXX
-XXXXX## $#7#$.#XXXXX
+XXXXX## $#%#$.#XXXXX
XXXXX# $ # $.#XXXXX
XXXXX# $ @ $.#XXXXX
XXXXX# $ # $.#XXXXX
-XXXXX##$$#7#$.#XXXXX
+XXXXX##$$#%#$.#XXXXX
XXXXXX#. # ..#XXXXX
XXXXXX##. ##XXXXX
XXXXXXX### ##XXXXXX
@@ -894,16 +895,16 @@ level: 50
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXX##########XXXXX
-XXXXX#..$ $ 7.#XXXXX
-XXXXX#.7 $ $..#XXXXX
-XXXXX##.$ $ 7##XXXXX
-XXXXXX#7 $ $.#XXXXXX
+XXXXX#..$ $ %.#XXXXX
+XXXXX#.% $ $..#XXXXX
+XXXXX##.$ $ %##XXXXX
+XXXXXX#% $ $.#XXXXXX
XXXXXX#.$ $ .#XXXXXX
XXXXXX#. $ $.#XXXXXX
-XXXXXX#.$@$ 7#XXXXXX
-XXXXX##7 $ $.##XXXXX
-XXXXX#..$ $ 7.#XXXXX
-XXXXX#.7 $ $..#XXXXX
+XXXXXX#.$@$ %#XXXXXX
+XXXXX##% $ $.##XXXXX
+XXXXX#..$ $ %.#XXXXX
+XXXXX#.% $ $..#XXXXX
XXXXX##########XXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
@@ -1170,7 +1171,7 @@ XXX# # @ $ # $#XXXX
XXX# # $ ####X
XXX## ####$## #X
XXX# $#.....# # #X
-XXX# $..77. $# ###X
+XXX# $..%%. $# ###X
XX## #.....# #XXX
XX# ### #######XXX
XX# $$ # #XXXXXXXX
@@ -1189,7 +1190,7 @@ XXXX# ## $ $ ##XXX
XXXX# $ ## ## .#XXX
XXXX# #$##$ #.#XXX
XXXX### $..##.#XXX
-XXXXX# #.7...#XXX
+XXXXX# #.%...#XXX
XXXXX# $$ #.....#XXX
XXXXX# #########XXX
XXXXX# #XXXXXXXXXXX
@@ -1261,9 +1262,9 @@ X# # $ # #$ ..#
X# # ### ## #.#
X# ### # # #$ ..#
X# # # $#### #.#
-X# #$ $ $ #7 ..#
+X# #$ $ $ #% ..#
X# $ # $ $ # #.#
-X#### $### #7 ..#
+X#### $### #% ..#
XXXX# $$ ###....#
XXXX# ##X######
XXXX########XXXXXXXX
@@ -1421,8 +1422,8 @@ X## # # ######
X## # $#$#@ # #
X# # $ # $ #
X# ### ######### ##
-X# ## ..7..... # ##
-X## ## 7.7..7.7 # ##
+X# ## ..%..... # ##
+X## ## %.%..%.% # ##
X# $########## ##$ #
X# $ $ $ $ #
X# # # # # #
@@ -1756,11 +1757,11 @@ XXXXXXXXXXXXXXXXXXXX
level: 98
XXXXX#########XXXXXX
-XXXXX#7.7#7.7#XXXXXX
-XXXXX#.7.7.7.#XXXXXX
-XXXXX#7.7.7.7#XXXXXX
-XXXXX#.7.7.7.#XXXXXX
-XXXXX#7.7.7.7#XXXXXX
+XXXXX#%.%#%.%#XXXXXX
+XXXXX#.%.%.%.#XXXXXX
+XXXXX#%.%.%.%#XXXXXX
+XXXXX#.%.%.%.#XXXXXX
+XXXXX#%.%.%.%#XXXXXX
XXXXX### ###XXXXXX
XXXXXXX# #XXXXXXXX
XXX###### ######XXXX
@@ -1782,7 +1783,7 @@ XXX#### $ #XXXX
X### # ##### #XXXX
X# # #....$ #XXXX
X# # $ ....# #XXXX
-X# $ # #.7..# #XXXX
+X# $ # #.%..# #XXXX
X### #### ### #XXXX
XXX#### @$ ##$##XXX
XXXXXX### $ #XXX
@@ -1793,9 +1794,9 @@ XXXXXXXXXXXXXXXXXXXX
level: 100
XXXXXX############XX
XXXXX##.. #XX
-XXXX##..7 $ $ #XX
-XXX##..7.# # #$ ##XX
-XXX#..7.# # # $ #XX
+XXXX##..% $ $ #XX
+XXX##..%.# # #$ ##XX
+XXX#..%.# # # $ #XX
####...# # # #XX
# ## # #XX
# @$ $ ### # # ##XX
diff --git a/apps/settings.c b/apps/settings.c
index 6c0b21d..b0da64f 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -82,7 +82,7 @@ offset abs
0x0d 0x21 <resume settings byte>
0x0e 0x22 <shuffle,dirfilter,sort_case,discharge,statusbar,show_hidden,
scroll bar>
-0x0f 0x23 <scroll speed>
+0x0f 0x23 <timeformat, scroll speed. volume type, battery type>
0x10 0x24 <ff/rewind min step, acceleration rate>
0x11 0x25 <AVC, channel config>
0x12 0x26 <(int) Resume playlist index, or -1 if no playlist resume>
@@ -294,10 +294,12 @@ int settings_save( void )
((global_settings.statusbar & 1) << 4) |
((global_settings.dirfilter & 2) << 4) |
((global_settings.scrollbar & 1) << 6));
-
+
config_block[0xf] = (unsigned char)
- ((global_settings.timeformat & 1) << 2) |
- ((global_settings.scroll_speed << 3));
+ (((global_settings.timeformat & 1) << 2) |
+ ( global_settings.scroll_speed << 3) |
+ ((global_settings.volume_type & 1) << 4) |
+ ((global_settings.battery_type & 1) << 5));
config_block[0x10] = (unsigned char)
((global_settings.ff_rewind_min_step & 15) << 4 |
@@ -466,6 +468,8 @@ void settings_load(void)
if (config_block[0xf] != 0xFF) {
global_settings.timeformat = (config_block[0xf] >> 2) & 1;
global_settings.scroll_speed = config_block[0xf] >> 3;
+ global_settings.volume_type = (config_block[0xf] >> 4) & 1;
+ global_settings.battery_type = (config_block[0xf] >> 5) & 1;
}
if (config_block[0x10] != 0xFF) {
@@ -670,6 +674,8 @@ void settings_reset(void) {
global_settings.discharge = 0;
global_settings.total_uptime = 0;
global_settings.timeformat = 0;
+ global_settings.volume_type = 0;
+ global_settings.battery_type = 0;
global_settings.scroll_speed = 8;
global_settings.ff_rewind_min_step = DEFAULT_FF_REWIND_MIN_STEP;
global_settings.ff_rewind_accel = DEFAULT_FF_REWIND_ACCEL_SETTING;
diff --git a/apps/settings.h b/apps/settings.h
index 8644b56..bc8767d 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -87,6 +87,8 @@ struct user_settings
int repeat_mode; /* 0=off 1=repeat all 2=repeat one */
int dirfilter; /* 0=display all, 1=only supported, 2=only music */
bool sort_case; /* dir sort order: 0=case insensitive, 1=sensitive */
+ int volume_type; /* how volume is displayed: 0=graphic, 1=percent */
+ int battery_type;
int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */
int scroll_speed; /* long texts scrolling speed: 1-30 */
bool playlist_shuffle;
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index 6a96ba4..90c7154 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -157,6 +157,24 @@ static bool sort_case(void)
return set_bool( str(LANG_SORT_CASE), &global_settings.sort_case );
}
+static bool battery_type(void)
+{
+ char* names[] = { str(LANG_DISPLAY_GRAPHIC),
+ str(LANG_DISPLAY_NUMERIC) };
+
+ return set_option( str(LANG_BATTERY_DISPLAY),
+ &global_settings.battery_type, names, 2, NULL);
+}
+
+static bool volume_type(void)
+{
+ char* names[] = { str(LANG_DISPLAY_GRAPHIC),
+ str(LANG_DISPLAY_NUMERIC) };
+
+ return set_option( str(LANG_VOLUME_DISPLAY), &global_settings.volume_type,
+ names, 2, NULL);
+}
+
static bool resume(void)
{
char* names[] = { str(LANG_SET_BOOL_NO),
@@ -427,6 +445,8 @@ static bool display_settings_menu(void)
{ str(LANG_CONTRAST), contrast },
#ifdef HAVE_LCD_BITMAP
{ str(LANG_PM_MENU), peak_meter_menu },
+ { str(LANG_VOLUME_DISPLAY), volume_type },
+ { str(LANG_BATTERY_DISPLAY), battery_type },
#endif
};