From 5a9e8929cd38604f2a4ea6a9350830ef42c533d6 Mon Sep 17 00:00:00 2001 From: Robert Hak Date: Sat, 26 Oct 2002 05:26:23 +0000 Subject: [PATCH] battery/volume status can be displayed numerically git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2750 a1c6a512-1295-4272-9138-f99709370657 --- apps/lang/english.lang | 18 +++++ apps/recorder/icons.c | 53 ++++++++----- apps/recorder/sokoban_levels.txt | 123 ++++++++++++++++--------------- apps/settings.c | 14 +++- apps/settings.h | 2 + apps/settings_menu.c | 20 +++++ 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 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 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) { int i; int fill; + char buffer[5]; + unsigned int width, height; - /* 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; + /* fill battery */ + fill=percent; + if (fill < 0) + fill = 0; + if (fill > 100) + fill = 100; - fill = fill * 15 / 100; + if (global_settings.battery_type) { - lcd_fillrect(ICON_BATTERY_X_POS + 1, STATUSBAR_Y_POS + 1, fill, 5); + /* 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); + + } else { + + /* 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 = 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 0b8fa14f26..6aaf6063c6 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 6c0b21d088..b0da64f42a 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -82,7 +82,7 @@ offset abs 0x0d 0x21 0x0e 0x22 -0x0f 0x23 +0x0f 0x23 0x10 0x24 0x11 0x25 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 8644b56d85..bc8767d532 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 6a96ba4c81..90c7154412 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 };