forked from len0rd/rockbox
calculate the string width for numerical volume display and time display in
status bar. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1828 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
861eac8aea
commit
11d208ca85
2 changed files with 35 additions and 5 deletions
|
@ -209,6 +209,10 @@ void statusbar_icon_volume(int percent)
|
||||||
int volume;
|
int volume;
|
||||||
int step=0;
|
int step=0;
|
||||||
char buffer[4];
|
char buffer[4];
|
||||||
|
unsigned int width, height;
|
||||||
|
#if defined(LOADABLE_FONTS)
|
||||||
|
unsigned char *font;
|
||||||
|
#endif
|
||||||
static long switch_tick;
|
static long switch_tick;
|
||||||
static int last_volume;
|
static int last_volume;
|
||||||
|
|
||||||
|
@ -231,8 +235,19 @@ void statusbar_icon_volume(int percent)
|
||||||
/* display volume lever numerical? */
|
/* display volume lever numerical? */
|
||||||
if (TIME_BEFORE(current_tick,switch_tick)) {
|
if (TIME_BEFORE(current_tick,switch_tick)) {
|
||||||
snprintf(buffer, sizeof(buffer), "%2d", percent);
|
snprintf(buffer, sizeof(buffer), "%2d", percent);
|
||||||
lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
|
#if defined(LCD_PROPFONTS)
|
||||||
6*strlen(buffer)/2, STATUSBAR_Y_POS, buffer, 0);
|
lcd_getstringsize(buffer, 0, &width, &height);
|
||||||
|
width += strlen(buffer) - 1;
|
||||||
|
#elif defined(LOADABLE_FONTS)
|
||||||
|
font = lcd_getcurrentldfont();
|
||||||
|
lcd_getstringsize(buffer, font, &width, &height);
|
||||||
|
#else
|
||||||
|
width = 6*strlen(buffer);
|
||||||
|
height = 8;
|
||||||
|
#endif
|
||||||
|
if (height <= STATUSBAR_HEIGHT)
|
||||||
|
lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
|
||||||
|
width/2, STATUSBAR_Y_POS, buffer, 0);
|
||||||
}
|
}
|
||||||
else { /* display volume bar */
|
else { /* display volume bar */
|
||||||
volume = volume * 14 / 100;
|
volume = volume * 14 / 100;
|
||||||
|
@ -290,6 +305,10 @@ void statusbar_time(void)
|
||||||
{
|
{
|
||||||
int hour,minute;
|
int hour,minute;
|
||||||
unsigned char buffer[6];
|
unsigned char buffer[6];
|
||||||
|
unsigned int width, height;
|
||||||
|
#if defined(LOADABLE_FONTS)
|
||||||
|
unsigned char *font;
|
||||||
|
#endif
|
||||||
|
|
||||||
hour = rtc_read(0x03);
|
hour = rtc_read(0x03);
|
||||||
minute = rtc_read(0x02);
|
minute = rtc_read(0x02);
|
||||||
|
@ -299,6 +318,17 @@ void statusbar_time(void)
|
||||||
hour & 0x0f,
|
hour & 0x0f,
|
||||||
(minute & 0xf0) >> 4,
|
(minute & 0xf0) >> 4,
|
||||||
minute & 0x0f);
|
minute & 0x0f);
|
||||||
lcd_putsxy(TIME_X_POS, STATUSBAR_Y_POS, buffer, 0);
|
#if defined(LCD_PROPFONTS)
|
||||||
|
lcd_getstringsize(buffer, 0, &width, &height);
|
||||||
|
width += strlen(buffer) - 1;
|
||||||
|
#elif defined(LOADABLE_FONTS)
|
||||||
|
font = lcd_getcurrentldfont();
|
||||||
|
lcd_getstringsize(buffer, font, &width, &height);
|
||||||
|
#else
|
||||||
|
width = 6*strlen(buffer);
|
||||||
|
height = 8;
|
||||||
|
#endif
|
||||||
|
if (height <= STATUSBAR_HEIGHT)
|
||||||
|
lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, 0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -45,7 +45,7 @@ extern unsigned char slider_bar[];
|
||||||
#define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2
|
#define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2
|
||||||
#define ICON_PLUG_WIDTH 7
|
#define ICON_PLUG_WIDTH 7
|
||||||
#define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2
|
#define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2
|
||||||
#define ICON_VOLUME_WIDTH 14
|
#define ICON_VOLUME_WIDTH 16
|
||||||
#define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2
|
#define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2
|
||||||
#define ICON_PLAY_STATE_WIDTH 7
|
#define ICON_PLAY_STATE_WIDTH 7
|
||||||
#define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2
|
#define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2
|
||||||
|
@ -54,7 +54,7 @@ extern unsigned char slider_bar[];
|
||||||
#define ICON_SHUFFLE_WIDTH 7
|
#define ICON_SHUFFLE_WIDTH 7
|
||||||
#define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2
|
#define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2
|
||||||
#define LOCK_WIDTH 5
|
#define LOCK_WIDTH 5
|
||||||
#define TIME_X_POS STATUSBAR_WIDTH-5*6-1
|
#define TIME_X_END STATUSBAR_WIDTH-1
|
||||||
|
|
||||||
/* Symbolic names for icons */
|
/* Symbolic names for icons */
|
||||||
enum
|
enum
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue