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.tar.gz
rockbox-5a9e8929cd38604f2a4ea6a9350830ef42c533d6.zip
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 baadc2e2ca..a9858acddd 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -1028,4 +1028,22 @@ desc: in settings_menu
1028eng: "Ask Once" 1028eng: "Ask Once"
1029new: 1029new:
1030 1030
1031id: LANG_BATTERY_DISPLAY
1032desc: Battery type title
1033eng: "Battery Display"
1034new:
1035
1036id: LANG_VOLUME_DISPLAY
1037desc: Volume type title
1038eng: "Volume Display"
1039new:
1031 1040
1041id: LANG_DISPLAY_GRAPHIC
1042desc: Label for type of icon display
1043eng: "Graphic"
1044new:
1045
1046id: LANG_DISPLAY_NUMERIC
1047desc: Label for type of icon display
1048eng: "Numeric"
1049new:
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index adcfda5255..f394b2bd31 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -152,22 +152,38 @@ void statusbar_icon_battery(int percent, bool charging)
152{ 152{
153 int i; 153 int i;
154 int fill; 154 int fill;
155 char buffer[5];
156 unsigned int width, height;
157
158 /* fill battery */
159 fill=percent;
160 if (fill < 0)
161 fill = 0;
162 if (fill > 100)
163 fill = 100;
164
165 if (global_settings.battery_type) {
166
167 /* Numeric display */
168 snprintf(buffer, sizeof(buffer), "%3d", percent);
169 lcd_setfont(FONT_SYSFIXED);
170 lcd_getstringsize(buffer, &width, &height);
171 if (height <= STATUSBAR_HEIGHT)
172 lcd_putsxy(ICON_BATTERY_X_POS + ICON_BATTERY_WIDTH / 2 -
173 width/2, STATUSBAR_Y_POS, buffer);
174 lcd_setfont(FONT_UI);
155 175
156 /* draw battery */ 176 } else {
157 lcd_drawrect(ICON_BATTERY_X_POS, STATUSBAR_Y_POS, 17, 7);
158 for (i=2; i < 5; i++)
159 lcd_drawpixel(ICON_BATTERY_X_POS + 17, STATUSBAR_Y_POS + i);
160
161 /* fill battery */
162 fill=percent;
163 if (fill < 0)
164 fill = 0;
165 if (fill > 100)
166 fill = 100;
167 177
168 fill = fill * 15 / 100; 178 /* draw battery */
179 lcd_drawrect(ICON_BATTERY_X_POS, STATUSBAR_Y_POS, 17, 7);
180 for (i=2; i < 5; i++)
181 lcd_drawpixel(ICON_BATTERY_X_POS + 17, STATUSBAR_Y_POS + i);
169 182
170 lcd_fillrect(ICON_BATTERY_X_POS + 1, STATUSBAR_Y_POS + 1, fill, 5); 183 fill = fill * 15 / 100;
184
185 lcd_fillrect(ICON_BATTERY_X_POS + 1, STATUSBAR_Y_POS + 1, fill, 5);
186 }
171 187
172 /* draw power plug if charging */ 188 /* draw power plug if charging */
173 if (charging) 189 if (charging)
@@ -207,8 +223,11 @@ void statusbar_icon_volume(int percent)
207 switch_tick = current_tick + HZ; 223 switch_tick = current_tick + HZ;
208 last_volume = volume; 224 last_volume = volume;
209 } 225 }
210 /* display volume lever numerical? */ 226
211 if (TIME_BEFORE(current_tick,switch_tick)) { 227 /* display volume level numerical? */
228 if (global_settings.volume_type ||
229 TIME_BEFORE(current_tick,switch_tick))
230 {
212 snprintf(buffer, sizeof(buffer), "%2d", percent); 231 snprintf(buffer, sizeof(buffer), "%2d", percent);
213 lcd_setfont(FONT_SYSFIXED); 232 lcd_setfont(FONT_SYSFIXED);
214 lcd_getstringsize(buffer, &width, &height); 233 lcd_getstringsize(buffer, &width, &height);
@@ -216,8 +235,8 @@ void statusbar_icon_volume(int percent)
216 lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 235 lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
217 width/2, STATUSBAR_Y_POS, buffer); 236 width/2, STATUSBAR_Y_POS, buffer);
218 lcd_setfont(FONT_UI); 237 lcd_setfont(FONT_UI);
219 } 238 } else {
220 else { /* display volume bar */ 239 /* display volume bar */
221 volume = volume * 14 / 100; 240 volume = volume * 14 / 100;
222 for(i=0; i < volume; i++) { 241 for(i=0; i < volume; i++) {
223 if(i%2 == 0) 242 if(i%2 == 0)
diff --git a/apps/recorder/sokoban_levels.txt b/apps/recorder/sokoban_levels.txt
index 0b8fa14f26..6aaf6063c6 100644
--- a/apps/recorder/sokoban_levels.txt
+++ b/apps/recorder/sokoban_levels.txt
@@ -1,12 +1,13 @@
1/*
1# Map legend: 2# Map legend:
2# 3#
3# white space is clear back ground 4# 1 white space is clear back ground
4# X = black back ground 5# 0 X = black back ground
5# # = wall 6# 2 # = wall
6# . = block destination 7# 3 . = block destination
7# @ = starting position 8# 5 @ = starting position
8# $ = movable block 9# 4 $ = movable block
9 10# 7 % = a placed block
10 11
11level: 1 12level: 1
12XXXXXXXXXXXXXXXXXXXX 13XXXXXXXXXXXXXXXXXXXX
@@ -70,7 +71,7 @@ XXXXXXXXXXXXXXXXXXXX
70XXXXXXXXXXXXXXXXXXXX 71XXXXXXXXXXXXXXXXXXXX
71XXXXXXXXX#####XXXXXX 72XXXXXXXXX#####XXXXXX
72XXXXXX#### .#XXXXXX 73XXXXXX#### .#XXXXXX
73XXXXXX# $ 7#XXXXXX 74XXXXXX# $ %#XXXXXX
74XXXXXX# $$ $.#XXXXXX 75XXXXXX# $$ $.#XXXXXX
75XXXXXX##@##..#XXXXXX 76XXXXXX##@##..#XXXXXX
76XXXXXXX#######XXXXXX 77XXXXXXX#######XXXXXX
@@ -180,7 +181,7 @@ XXXXXXXX#####XXXXXXX
180XXXXXX### @#XXXXXXX 181XXXXXX### @#XXXXXXX
181XXXXXX# $. ##XXXXXX 182XXXXXX# $. ##XXXXXX
182XXXXXX# .$. #XXXXXX 183XXXXXX# .$. #XXXXXX
183XXXXXX### 7$ #XXXXXX 184XXXXXX### %$ #XXXXXX
184XXXXXXXX# ##XXXXXX 185XXXXXXXX# ##XXXXXX
185XXXXXXXX#####XXXXXXX 186XXXXXXXX#####XXXXXXX
186XXXXXXXXXXXXXXXXXXXX 187XXXXXXXXXXXXXXXXXXXX
@@ -196,7 +197,7 @@ XXXXXXXXXXXXXXXXXXXX
196XXXXXX########XXXXXX 197XXXXXX########XXXXXX
197XXXXXX# # #XXXXXX 198XXXXXX# # #XXXXXX
198XXXXXX# $..$ #XXXXXX 199XXXXXX# $..$ #XXXXXX
199XXXXXX#@$.7 ##XXXXXX 200XXXXXX#@$.% ##XXXXXX
200XXXXXX# $..$ #XXXXXX 201XXXXXX# $..$ #XXXXXX
201XXXXXX# # #XXXXXX 202XXXXXX# # #XXXXXX
202XXXXXX########XXXXXX 203XXXXXX########XXXXXX
@@ -250,7 +251,7 @@ XXXXXXXXXXXXXXXXXXXX
250XXXXXXX########XXXXX 251XXXXXXX########XXXXX
251XXXXXXX# #. #XXXXX 252XXXXXXX# #. #XXXXX
252XXXXXX## $...#XXXXX 253XXXXXX## $...#XXXXX
253XXXXXX# $ #7.#XXXXX 254XXXXXX# $ #%.#XXXXX
254XXXXX## ##$# ##XXXXX 255XXXXX## ##$# ##XXXXX
255XXXXX# $ $ #XXXXX 256XXXXX# $ $ #XXXXX
256XXXXX# # #XXXXX 257XXXXX# # #XXXXX
@@ -338,11 +339,11 @@ XXXXXXXXXXXXXXXXXXXX
338XXXXXXXXXXXXXXXXXXXX 339XXXXXXXXXXXXXXXXXXXX
339XXXXXXXXXXXXXXXXXXXX 340XXXXXXXXXXXXXXXXXXXX
340XXXXX#########XXXXXX 341XXXXX#########XXXXXX
341XXXXX# 7 #XXXXXX 342XXXXX# % #XXXXXX
342XXXXX# $.$. @#XXXXXX 343XXXXX# $.$. @#XXXXXX
343XXXXX# .$.$. #XXXXXX 344XXXXX# .$.$. #XXXXXX
344XXXXX# $.$.$ #XXXXXX 345XXXXX# $.$.$ #XXXXXX
345XXXXX# 7 #XXXXXX 346XXXXX# % #XXXXXX
346XXXXX#########XXXXXX 347XXXXX#########XXXXXX
347XXXXXXXXXXXXXXXXXXXX 348XXXXXXXXXXXXXXXXXXXX
348XXXXXXXXXXXXXXXXXXXX 349XXXXXXXXXXXXXXXXXXXX
@@ -396,7 +397,7 @@ XXXXXX#####XXXXXXXXX
396XXXXXX# ####XXXXXX 397XXXXXX# ####XXXXXX
397XXXXX## #$ #XXXXXX 398XXXXX## #$ #XXXXXX
398XXXXX# $ $$ #XXXXXX 399XXXXX# $ $$ #XXXXXX
399XXXXX# #$#.7.#XXXXXX 400XXXXX# #$#.%.#XXXXXX
400XXXXX# @...#XXXXXX 401XXXXX# @...#XXXXXX
401XXXXX#########XXXXXX 402XXXXX#########XXXXXX
402XXXXXXXXXXXXXXXXXXXX 403XXXXXXXXXXXXXXXXXXXX
@@ -412,8 +413,8 @@ XXXXXXXXXXXXXXXXXXXX
412XXXXXXXXX#####XXXXXX 413XXXXXXXXX#####XXXXXX
413XXXXXX#### ##XXXXX 414XXXXXX#### ##XXXXX
414XXXXXX# $ $ #XXXXX 415XXXXXX# $ $ #XXXXX
415XXXXXX#@#.7.# #XXXXX 416XXXXXX#@#.%.# #XXXXX
416XXXXXX# #.7.# #XXXXX 417XXXXXX# #.%.# #XXXXX
417XXXXXX# $ $ #XXXXX 418XXXXXX# $ $ #XXXXX
418XXXXXX## ####XXXXX 419XXXXXX## ####XXXXX
419XXXXXXX#####XXXXXXXX 420XXXXXXX#####XXXXXXXX
@@ -466,9 +467,9 @@ XXXXXXXXXXXXXXXXXXXX
466XXXXXXXXXXXXXXXXXXXX 467XXXXXXXXXXXXXXXXXXXX
467XXXXX#######XXXXXXXX 468XXXXX#######XXXXXXXX
468XXXXX# #####XXXX 469XXXXX# #####XXXX
469XXXXX# $ .7. $ #XXXX 470XXXXX# $ .%. $ #XXXX
470XXXXX#@$.7 7.$ #XXXX 471XXXXX#@$.% %.$ #XXXX
471XXXXX# $ .7. $ #XXXX 472XXXXX# $ .%. $ #XXXX
472XXXXX###### #XXXX 473XXXXX###### #XXXX
473XXXXXXXXXX######XXXX 474XXXXXXXXXX######XXXX
474XXXXXXXXXXXXXXXXXXXX 475XXXXXXXXXXXXXXXXXXXX
@@ -484,8 +485,8 @@ XXXXXXXXXXXXXXXXXXXX
484XXXXX######XXXXXXXXX 485XXXXX######XXXXXXXXX
485XXXXX# #XXXXXXXXX 486XXXXX# #XXXXXXXXX
486XXXXX# $ ####XXXXXX 487XXXXX# $ ####XXXXXX
487XXXXX# $7..7 #XXXXXX 488XXXXX# $%..% #XXXXXX
488XXXXX# 7..7$ #XXXXXX 489XXXXX# %..%$ #XXXXXX
489XXXXX#### $ #XXXXXX 490XXXXX#### $ #XXXXXX
490XXXXXXXX# @ #XXXXXX 491XXXXXXXX# @ #XXXXXX
491XXXXXXXX######XXXXXX 492XXXXXXXX######XXXXXX
@@ -574,9 +575,9 @@ XXXXXXXXXXXXXXXXXXXX
574XXXXXXXXXXXXXXXXXXXX 575XXXXXXXXXXXXXXXXXXXX
575XXXXXX########XXXXXX 576XXXXXX########XXXXXX
576XXXXXX# #.. ##XXXXX 577XXXXXX# #.. ##XXXXX
577XXXXXX# $. $7 #XXXXX 578XXXXXX# $. $% #XXXXX
578XXXXXX# $@$ #XXXXX 579XXXXXX# $@$ #XXXXX
579XXXXXX# 7$ .$ #XXXXX 580XXXXXX# %$ .$ #XXXXX
580XXXXXX## ..# #XXXXX 581XXXXXX## ..# #XXXXX
581XXXXXXX########XXXXX 582XXXXXXX########XXXXX
582XXXXXXXXXXXXXXXXXXXX 583XXXXXXXXXXXXXXXXXXXX
@@ -590,13 +591,13 @@ XXXXXXXXXXXXXXXXXXXX
590XXXXXXXXXXXXXXXXXXXX 591XXXXXXXXXXXXXXXXXXXX
591XXXXXXXXXXXXXXXXXXXX 592XXXXXXXXXXXXXXXXXXXX
592XXXXXX#######XXXXXXX 593XXXXXX#######XXXXXXX
593XXXXX## 7 ##XXXXXX 594XXXXX## % ##XXXXXX
594XXXXX# . . . #XXXXXX 595XXXXX# . . . #XXXXXX
595XXXXX# $ 7 #XXXXXX 596XXXXX# $ % #XXXXXX
596XXXXX#7$$7$$7#XXXXXX 597XXXXX#%$$%$$%#XXXXXX
597XXXXX# 7 $ #XXXXXX 598XXXXX# % $ #XXXXXX
598XXXXX# . .@. #XXXXXX 599XXXXX# . .@. #XXXXXX
599XXXXX## 7 ##XXXXXX 600XXXXX## % ##XXXXXX
600XXXXXX#######XXXXXXX 601XXXXXX#######XXXXXXX
601XXXXXXXXXXXXXXXXXXXX 602XXXXXXXXXXXXXXXXXXXX
602XXXXXXXXXXXXXXXXXXXX 603XXXXXXXXXXXXXXXXXXXX
@@ -609,9 +610,9 @@ XXXXXXXXXXXXXXXXXXXX
609XXXXXXXXXXXXXXXXXXXX 610XXXXXXXXXXXXXXXXXXXX
610XXXXX#########XXXXXX 611XXXXX#########XXXXXX
611XXXXX# .$ @#XXXXXX 612XXXXX# .$ @#XXXXXX
612XXXXX# $ 7 $ #XXXXXX 613XXXXX# $ % $ #XXXXXX
613XXXXX#7...7.7#XXXXXX 614XXXXX#%...%.%#XXXXXX
614XXXXX# $$7 #XXXXXX 615XXXXX# $$% #XXXXXX
615XXXXX# . $ #XXXXXX 616XXXXX# . $ #XXXXXX
616XXXXX#########XXXXXX 617XXXXX#########XXXXXX
617XXXXXXXXXXXXXXXXXXXX 618XXXXXXXXXXXXXXXXXXXX
@@ -681,7 +682,7 @@ XXXXXXXX#######XXXXX
681XXXXXX### #XXXXX 682XXXXXX### #XXXXX
682XXXXX## # # #XXXXX 683XXXXX## # # #XXXXX
683XXXXX# #.$$$ #XXXXX 684XXXXX# #.$$$ #XXXXX
684XXXXX# #.7# ###XXXXX 685XXXXX# #.%# ###XXXXX
685XXXXX# ..# #XXXXXXX 686XXXXX# ..# #XXXXXXX
686XXXXX###..$ ##XXXXXX 687XXXXX###..$ ##XXXXXX
687XXXXXXX#.# $ #XXXXXX 688XXXXXXX#.# $ #XXXXXX
@@ -718,7 +719,7 @@ XXXXX# #XXXXXXX
718XXXXX# @ $# #XXXXXXX 719XXXXX# @ $# #XXXXXXX
719XXXXX## # #XXXXXXX 720XXXXX## # #XXXXXXX
720XXXXX# $#.# #XXXXXXX 721XXXXX# $#.# #XXXXXXX
721XXXXX# .7.$#XXXXXXX 722XXXXX# .%.$#XXXXXXX
722XXXXX## #.# #XXXXXXX 723XXXXX## #.# #XXXXXXX
723XXXXXX# #. ##XXXXXX 724XXXXXX# #. ##XXXXXX
724XXXXX## $.# #XXXXXX 725XXXXX## $.# #XXXXXX
@@ -737,7 +738,7 @@ XXXX#### #XXXXX
737XXXX# .### ##XXXXX 738XXXX# .### ##XXXXX
738XXXX# # # ##XXXXX 739XXXX# # # ##XXXXX
739XXXX# # $ $#. #XXXXX 740XXXX# # $ $#. #XXXXX
740XXXX# # 7 # #XXXXX 741XXXX# # % # #XXXXX
741XXXX# .#$ $ # #XXXXX 742XXXX# .#$ $ # #XXXXX
742XXXX## # # #XXXXX 743XXXX## # # #XXXXX
743XXXXX# ###. #XXXXX 744XXXXX# ###. #XXXXX
@@ -775,9 +776,9 @@ XXXXXX##$# .#XXXXXX
775XXXXXXX# #$# #XXXXXX 776XXXXXXX# #$# #XXXXXX
776XXXXXX##. . #XXXXXX 777XXXXXX##. . #XXXXXX
777XXXXXX# ## #XXXXXX 778XXXXXX# ## #XXXXXX
778XXXXXX# # 7#XXXXXX 779XXXXXX# # %#XXXXXX
779XXXXXX# $ $ #XXXXXX 780XXXXXX# $ $ #XXXXXX
780XXXXXX# $#7 @#XXXXXX 781XXXXXX# $#% @#XXXXXX
781XXXXXX# #.###XXXXXX 782XXXXXX# #.###XXXXXX
782XXXXXX######XXXXXXXX 783XXXXXX######XXXXXXXX
783XXXXXXXXXXXXXXXXXXXX 784XXXXXXXXXXXXXXXXXXXX
@@ -807,11 +808,11 @@ XXXXXXXXX####XXXXXXX
807XXXXXXX### ##XXXXXX 808XXXXXXX### ##XXXXXX
808XXXXXX## ##XXXXX 809XXXXXX## ##XXXXX
809XXXXXX# # ..#XXXXX 810XXXXXX# # ..#XXXXX
810XXXXX## $#7#$.#XXXXX 811XXXXX## $#%#$.#XXXXX
811XXXXX# $ # $.#XXXXX 812XXXXX# $ # $.#XXXXX
812XXXXX# $ @ $.#XXXXX 813XXXXX# $ @ $.#XXXXX
813XXXXX# $ # $.#XXXXX 814XXXXX# $ # $.#XXXXX
814XXXXX##$$#7#$.#XXXXX 815XXXXX##$$#%#$.#XXXXX
815XXXXXX#. # ..#XXXXX 816XXXXXX#. # ..#XXXXX
816XXXXXX##. ##XXXXX 817XXXXXX##. ##XXXXX
817XXXXXXX### ##XXXXXX 818XXXXXXX### ##XXXXXX
@@ -894,16 +895,16 @@ level: 50
894XXXXXXXXXXXXXXXXXXXX 895XXXXXXXXXXXXXXXXXXXX
895XXXXXXXXXXXXXXXXXXXX 896XXXXXXXXXXXXXXXXXXXX
896XXXXX##########XXXXX 897XXXXX##########XXXXX
897XXXXX#..$ $ 7.#XXXXX 898XXXXX#..$ $ %.#XXXXX
898XXXXX#.7 $ $..#XXXXX 899XXXXX#.% $ $..#XXXXX
899XXXXX##.$ $ 7##XXXXX 900XXXXX##.$ $ %##XXXXX
900XXXXXX#7 $ $.#XXXXXX 901XXXXXX#% $ $.#XXXXXX
901XXXXXX#.$ $ .#XXXXXX 902XXXXXX#.$ $ .#XXXXXX
902XXXXXX#. $ $.#XXXXXX 903XXXXXX#. $ $.#XXXXXX
903XXXXXX#.$@$ 7#XXXXXX 904XXXXXX#.$@$ %#XXXXXX
904XXXXX##7 $ $.##XXXXX 905XXXXX##% $ $.##XXXXX
905XXXXX#..$ $ 7.#XXXXX 906XXXXX#..$ $ %.#XXXXX
906XXXXX#.7 $ $..#XXXXX 907XXXXX#.% $ $..#XXXXX
907XXXXX##########XXXXX 908XXXXX##########XXXXX
908XXXXXXXXXXXXXXXXXXXX 909XXXXXXXXXXXXXXXXXXXX
909XXXXXXXXXXXXXXXXXXXX 910XXXXXXXXXXXXXXXXXXXX
@@ -1170,7 +1171,7 @@ XXX# # @ $ # $#XXXX
1170XXX# # $ ####X 1171XXX# # $ ####X
1171XXX## ####$## #X 1172XXX## ####$## #X
1172XXX# $#.....# # #X 1173XXX# $#.....# # #X
1173XXX# $..77. $# ###X 1174XXX# $..%%. $# ###X
1174XX## #.....# #XXX 1175XX## #.....# #XXX
1175XX# ### #######XXX 1176XX# ### #######XXX
1176XX# $$ # #XXXXXXXX 1177XX# $$ # #XXXXXXXX
@@ -1189,7 +1190,7 @@ XXXX# ## $ $ ##XXX
1189XXXX# $ ## ## .#XXX 1190XXXX# $ ## ## .#XXX
1190XXXX# #$##$ #.#XXX 1191XXXX# #$##$ #.#XXX
1191XXXX### $..##.#XXX 1192XXXX### $..##.#XXX
1192XXXXX# #.7...#XXX 1193XXXXX# #.%...#XXX
1193XXXXX# $$ #.....#XXX 1194XXXXX# $$ #.....#XXX
1194XXXXX# #########XXX 1195XXXXX# #########XXX
1195XXXXX# #XXXXXXXXXXX 1196XXXXX# #XXXXXXXXXXX
@@ -1261,9 +1262,9 @@ X# # $ # #$ ..#
1261X# # ### ## #.# 1262X# # ### ## #.#
1262X# ### # # #$ ..# 1263X# ### # # #$ ..#
1263X# # # $#### #.# 1264X# # # $#### #.#
1264X# #$ $ $ #7 ..# 1265X# #$ $ $ #% ..#
1265X# $ # $ $ # #.# 1266X# $ # $ $ # #.#
1266X#### $### #7 ..# 1267X#### $### #% ..#
1267XXXX# $$ ###....# 1268XXXX# $$ ###....#
1268XXXX# ##X###### 1269XXXX# ##X######
1269XXXX########XXXXXXXX 1270XXXX########XXXXXXXX
@@ -1421,8 +1422,8 @@ X## # # ######
1421X## # $#$#@ # # 1422X## # $#$#@ # #
1422X# # $ # $ # 1423X# # $ # $ #
1423X# ### ######### ## 1424X# ### ######### ##
1424X# ## ..7..... # ## 1425X# ## ..%..... # ##
1425X## ## 7.7..7.7 # ## 1426X## ## %.%..%.% # ##
1426X# $########## ##$ # 1427X# $########## ##$ #
1427X# $ $ $ $ # 1428X# $ $ $ $ #
1428X# # # # # # 1429X# # # # # #
@@ -1756,11 +1757,11 @@ XXXXXXXXXXXXXXXXXXXX
1756 1757
1757level: 98 1758level: 98
1758XXXXX#########XXXXXX 1759XXXXX#########XXXXXX
1759XXXXX#7.7#7.7#XXXXXX 1760XXXXX#%.%#%.%#XXXXXX
1760XXXXX#.7.7.7.#XXXXXX 1761XXXXX#.%.%.%.#XXXXXX
1761XXXXX#7.7.7.7#XXXXXX 1762XXXXX#%.%.%.%#XXXXXX
1762XXXXX#.7.7.7.#XXXXXX 1763XXXXX#.%.%.%.#XXXXXX
1763XXXXX#7.7.7.7#XXXXXX 1764XXXXX#%.%.%.%#XXXXXX
1764XXXXX### ###XXXXXX 1765XXXXX### ###XXXXXX
1765XXXXXXX# #XXXXXXXX 1766XXXXXXX# #XXXXXXXX
1766XXX###### ######XXXX 1767XXX###### ######XXXX
@@ -1782,7 +1783,7 @@ XXX#### $ #XXXX
1782X### # ##### #XXXX 1783X### # ##### #XXXX
1783X# # #....$ #XXXX 1784X# # #....$ #XXXX
1784X# # $ ....# #XXXX 1785X# # $ ....# #XXXX
1785X# $ # #.7..# #XXXX 1786X# $ # #.%..# #XXXX
1786X### #### ### #XXXX 1787X### #### ### #XXXX
1787XXX#### @$ ##$##XXX 1788XXX#### @$ ##$##XXX
1788XXXXXX### $ #XXX 1789XXXXXX### $ #XXX
@@ -1793,9 +1794,9 @@ XXXXXXXXXXXXXXXXXXXX
1793level: 100 1794level: 100
1794XXXXXX############XX 1795XXXXXX############XX
1795XXXXX##.. #XX 1796XXXXX##.. #XX
1796XXXX##..7 $ $ #XX 1797XXXX##..% $ $ #XX
1797XXX##..7.# # #$ ##XX 1798XXX##..%.# # #$ ##XX
1798XXX#..7.# # # $ #XX 1799XXX#..%.# # # $ #XX
1799####...# # # #XX 1800####...# # # #XX
1800# ## # #XX 1801# ## # #XX
1801# @$ $ ### # # ##XX 1802# @$ $ ### # # ##XX
diff --git a/apps/settings.c b/apps/settings.c
index 6c0b21d088..b0da64f42a 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -82,7 +82,7 @@ offset abs
820x0d 0x21 <resume settings byte> 820x0d 0x21 <resume settings byte>
830x0e 0x22 <shuffle,dirfilter,sort_case,discharge,statusbar,show_hidden, 830x0e 0x22 <shuffle,dirfilter,sort_case,discharge,statusbar,show_hidden,
84 scroll bar> 84 scroll bar>
850x0f 0x23 <scroll speed> 850x0f 0x23 <timeformat, scroll speed. volume type, battery type>
860x10 0x24 <ff/rewind min step, acceleration rate> 860x10 0x24 <ff/rewind min step, acceleration rate>
870x11 0x25 <AVC, channel config> 870x11 0x25 <AVC, channel config>
880x12 0x26 <(int) Resume playlist index, or -1 if no playlist resume> 880x12 0x26 <(int) Resume playlist index, or -1 if no playlist resume>
@@ -294,10 +294,12 @@ int settings_save( void )
294 ((global_settings.statusbar & 1) << 4) | 294 ((global_settings.statusbar & 1) << 4) |
295 ((global_settings.dirfilter & 2) << 4) | 295 ((global_settings.dirfilter & 2) << 4) |
296 ((global_settings.scrollbar & 1) << 6)); 296 ((global_settings.scrollbar & 1) << 6));
297 297
298 config_block[0xf] = (unsigned char) 298 config_block[0xf] = (unsigned char)
299 ((global_settings.timeformat & 1) << 2) | 299 (((global_settings.timeformat & 1) << 2) |
300 ((global_settings.scroll_speed << 3)); 300 ( global_settings.scroll_speed << 3) |
301 ((global_settings.volume_type & 1) << 4) |
302 ((global_settings.battery_type & 1) << 5));
301 303
302 config_block[0x10] = (unsigned char) 304 config_block[0x10] = (unsigned char)
303 ((global_settings.ff_rewind_min_step & 15) << 4 | 305 ((global_settings.ff_rewind_min_step & 15) << 4 |
@@ -466,6 +468,8 @@ void settings_load(void)
466 if (config_block[0xf] != 0xFF) { 468 if (config_block[0xf] != 0xFF) {
467 global_settings.timeformat = (config_block[0xf] >> 2) & 1; 469 global_settings.timeformat = (config_block[0xf] >> 2) & 1;
468 global_settings.scroll_speed = config_block[0xf] >> 3; 470 global_settings.scroll_speed = config_block[0xf] >> 3;
471 global_settings.volume_type = (config_block[0xf] >> 4) & 1;
472 global_settings.battery_type = (config_block[0xf] >> 5) & 1;
469 } 473 }
470 474
471 if (config_block[0x10] != 0xFF) { 475 if (config_block[0x10] != 0xFF) {
@@ -670,6 +674,8 @@ void settings_reset(void) {
670 global_settings.discharge = 0; 674 global_settings.discharge = 0;
671 global_settings.total_uptime = 0; 675 global_settings.total_uptime = 0;
672 global_settings.timeformat = 0; 676 global_settings.timeformat = 0;
677 global_settings.volume_type = 0;
678 global_settings.battery_type = 0;
673 global_settings.scroll_speed = 8; 679 global_settings.scroll_speed = 8;
674 global_settings.ff_rewind_min_step = DEFAULT_FF_REWIND_MIN_STEP; 680 global_settings.ff_rewind_min_step = DEFAULT_FF_REWIND_MIN_STEP;
675 global_settings.ff_rewind_accel = DEFAULT_FF_REWIND_ACCEL_SETTING; 681 global_settings.ff_rewind_accel = DEFAULT_FF_REWIND_ACCEL_SETTING;
diff --git a/apps/settings.h b/apps/settings.h
index 8644b56d85..bc8767d532 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -87,6 +87,8 @@ struct user_settings
87 int repeat_mode; /* 0=off 1=repeat all 2=repeat one */ 87 int repeat_mode; /* 0=off 1=repeat all 2=repeat one */
88 int dirfilter; /* 0=display all, 1=only supported, 2=only music */ 88 int dirfilter; /* 0=display all, 1=only supported, 2=only music */
89 bool sort_case; /* dir sort order: 0=case insensitive, 1=sensitive */ 89 bool sort_case; /* dir sort order: 0=case insensitive, 1=sensitive */
90 int volume_type; /* how volume is displayed: 0=graphic, 1=percent */
91 int battery_type;
90 int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */ 92 int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */
91 int scroll_speed; /* long texts scrolling speed: 1-30 */ 93 int scroll_speed; /* long texts scrolling speed: 1-30 */
92 bool playlist_shuffle; 94 bool playlist_shuffle;
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index 6a96ba4c81..90c7154412 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -157,6 +157,24 @@ static bool sort_case(void)
157 return set_bool( str(LANG_SORT_CASE), &global_settings.sort_case ); 157 return set_bool( str(LANG_SORT_CASE), &global_settings.sort_case );
158} 158}
159 159
160static bool battery_type(void)
161{
162 char* names[] = { str(LANG_DISPLAY_GRAPHIC),
163 str(LANG_DISPLAY_NUMERIC) };
164
165 return set_option( str(LANG_BATTERY_DISPLAY),
166 &global_settings.battery_type, names, 2, NULL);
167}
168
169static bool volume_type(void)
170{
171 char* names[] = { str(LANG_DISPLAY_GRAPHIC),
172 str(LANG_DISPLAY_NUMERIC) };
173
174 return set_option( str(LANG_VOLUME_DISPLAY), &global_settings.volume_type,
175 names, 2, NULL);
176}
177
160static bool resume(void) 178static bool resume(void)
161{ 179{
162 char* names[] = { str(LANG_SET_BOOL_NO), 180 char* names[] = { str(LANG_SET_BOOL_NO),
@@ -427,6 +445,8 @@ static bool display_settings_menu(void)
427 { str(LANG_CONTRAST), contrast }, 445 { str(LANG_CONTRAST), contrast },
428#ifdef HAVE_LCD_BITMAP 446#ifdef HAVE_LCD_BITMAP
429 { str(LANG_PM_MENU), peak_meter_menu }, 447 { str(LANG_PM_MENU), peak_meter_menu },
448 { str(LANG_VOLUME_DISPLAY), volume_type },
449 { str(LANG_BATTERY_DISPLAY), battery_type },
430#endif 450#endif
431 }; 451 };
432 452