forked from len0rd/rockbox
Make battery level (%bl) work with the bmp bars drawer like %pb and %pv
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25710 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
cbc65befa8
commit
4c65a1970e
3 changed files with 17 additions and 5 deletions
|
|
@ -27,6 +27,7 @@
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "rbunicode.h"
|
#include "rbunicode.h"
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
|
#include "powermgmt.h"
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -145,6 +146,11 @@ static void draw_progressbar(struct gui_wps *gwps,
|
||||||
length = maxvol-minvol;
|
length = maxvol-minvol;
|
||||||
elapsed = global_settings.volume-minvol;
|
elapsed = global_settings.volume-minvol;
|
||||||
}
|
}
|
||||||
|
else if (pb->type == WPS_TOKEN_BATTERY_PERCENTBAR)
|
||||||
|
{
|
||||||
|
length = 100;
|
||||||
|
elapsed = battery_level();
|
||||||
|
}
|
||||||
else if (id3 && id3->length)
|
else if (id3 && id3->length)
|
||||||
{
|
{
|
||||||
length = id3->length;
|
length = id3->length;
|
||||||
|
|
@ -608,8 +614,9 @@ static bool evaluate_conditional(struct gui_wps *gwps, int *token_index)
|
||||||
/* clear all pictures in the conditional and nested ones */
|
/* clear all pictures in the conditional and nested ones */
|
||||||
if (data->tokens[i].type == WPS_TOKEN_IMAGE_PRELOAD_DISPLAY)
|
if (data->tokens[i].type == WPS_TOKEN_IMAGE_PRELOAD_DISPLAY)
|
||||||
clear_image_pos(gwps, find_image(data->tokens[i].value.i&0xFF, data));
|
clear_image_pos(gwps, find_image(data->tokens[i].value.i&0xFF, data));
|
||||||
else if (data->tokens[i].type == WPS_TOKEN_VOLUMEBAR ||
|
else if (data->tokens[i].type == WPS_TOKEN_VOLUMEBAR ||
|
||||||
data->tokens[i].type == WPS_TOKEN_PROGRESSBAR)
|
data->tokens[i].type == WPS_TOKEN_PROGRESSBAR ||
|
||||||
|
data->tokens[i].type == WPS_TOKEN_BATTERY_PERCENTBAR )
|
||||||
{
|
{
|
||||||
struct progressbar *bar = (struct progressbar*)data->tokens[i].value.data;
|
struct progressbar *bar = (struct progressbar*)data->tokens[i].value.data;
|
||||||
bar->draw = false;
|
bar->draw = false;
|
||||||
|
|
@ -677,6 +684,7 @@ static bool get_line(struct gui_wps *gwps,
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
case WPS_TOKEN_VOLUMEBAR:
|
case WPS_TOKEN_VOLUMEBAR:
|
||||||
|
case WPS_TOKEN_BATTERY_PERCENTBAR:
|
||||||
case WPS_TOKEN_PROGRESSBAR:
|
case WPS_TOKEN_PROGRESSBAR:
|
||||||
{
|
{
|
||||||
struct progressbar *bar = (struct progressbar*)data->tokens[i].value.data;
|
struct progressbar *bar = (struct progressbar*)data->tokens[i].value.data;
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ static const struct wps_tag all_tags[] = {
|
||||||
{ WPS_TOKEN_ALIGN_RIGHT_RTL, "aR", 0, NULL },
|
{ WPS_TOKEN_ALIGN_RIGHT_RTL, "aR", 0, NULL },
|
||||||
{ WPS_NO_TOKEN, "ax", 0, parse_languagedirection },
|
{ WPS_NO_TOKEN, "ax", 0, parse_languagedirection },
|
||||||
|
|
||||||
{ WPS_TOKEN_BATTERY_PERCENT, "bl", WPS_REFRESH_DYNAMIC, NULL },
|
{ WPS_TOKEN_BATTERY_PERCENT, "bl", WPS_REFRESH_DYNAMIC, parse_progressbar },
|
||||||
{ WPS_TOKEN_BATTERY_VOLTS, "bv", WPS_REFRESH_DYNAMIC, NULL },
|
{ WPS_TOKEN_BATTERY_VOLTS, "bv", WPS_REFRESH_DYNAMIC, NULL },
|
||||||
{ WPS_TOKEN_BATTERY_TIME, "bt", WPS_REFRESH_DYNAMIC, NULL },
|
{ WPS_TOKEN_BATTERY_TIME, "bt", WPS_REFRESH_DYNAMIC, NULL },
|
||||||
{ WPS_TOKEN_BATTERY_SLEEPTIME, "bs", WPS_REFRESH_DYNAMIC, NULL },
|
{ WPS_TOKEN_BATTERY_SLEEPTIME, "bs", WPS_REFRESH_DYNAMIC, NULL },
|
||||||
|
|
@ -1166,7 +1166,7 @@ static int parse_progressbar(const char *wps_bufptr,
|
||||||
pb->width = vp->width;
|
pb->width = vp->width;
|
||||||
pb->height = SYSFONT_HEIGHT-2;
|
pb->height = SYSFONT_HEIGHT-2;
|
||||||
pb->y = -line_num - 1; /* Will be computed during the rendering */
|
pb->y = -line_num - 1; /* Will be computed during the rendering */
|
||||||
if (token->type == WPS_TOKEN_VOLUME)
|
if (token->type == WPS_TOKEN_VOLUME || token->type == WPS_TOKEN_BATTERY_PERCENT)
|
||||||
return 0; /* dont add it, let the regular token handling do the work */
|
return 0; /* dont add it, let the regular token handling do the work */
|
||||||
add_to_ll_chain(&wps_data->progressbars, item);
|
add_to_ll_chain(&wps_data->progressbars, item);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -1233,12 +1233,15 @@ static int parse_progressbar(const char *wps_bufptr,
|
||||||
add_to_ll_chain(&wps_data->progressbars, item);
|
add_to_ll_chain(&wps_data->progressbars, item);
|
||||||
if (token->type == WPS_TOKEN_VOLUME)
|
if (token->type == WPS_TOKEN_VOLUME)
|
||||||
token->type = WPS_TOKEN_VOLUMEBAR;
|
token->type = WPS_TOKEN_VOLUMEBAR;
|
||||||
|
else if (token->type == WPS_TOKEN_BATTERY_PERCENT)
|
||||||
|
token->type = WPS_TOKEN_BATTERY_PERCENTBAR;
|
||||||
pb->type = token->type;
|
pb->type = token->type;
|
||||||
|
|
||||||
return ptr+1-wps_bufptr;
|
return ptr+1-wps_bufptr;
|
||||||
#else
|
#else
|
||||||
(void)wps_bufptr;
|
(void)wps_bufptr;
|
||||||
if (token->type != WPS_TOKEN_VOLUME)
|
if (token->type != WPS_TOKEN_VOLUME &&
|
||||||
|
token->type != WPS_TOKEN_BATTERY_PERCENTBAR)
|
||||||
{
|
{
|
||||||
wps_data->full_line_progressbar =
|
wps_data->full_line_progressbar =
|
||||||
token->type == WPS_TOKEN_PLAYER_PROGRESSBAR;
|
token->type == WPS_TOKEN_PLAYER_PROGRESSBAR;
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ enum wps_token_type {
|
||||||
/* Battery */
|
/* Battery */
|
||||||
TOKEN_MARKER_BATTERY,
|
TOKEN_MARKER_BATTERY,
|
||||||
WPS_TOKEN_BATTERY_PERCENT,
|
WPS_TOKEN_BATTERY_PERCENT,
|
||||||
|
WPS_TOKEN_BATTERY_PERCENTBAR,
|
||||||
WPS_TOKEN_BATTERY_VOLTS,
|
WPS_TOKEN_BATTERY_VOLTS,
|
||||||
WPS_TOKEN_BATTERY_TIME,
|
WPS_TOKEN_BATTERY_TIME,
|
||||||
WPS_TOKEN_BATTERY_CHARGER_CONNECTED,
|
WPS_TOKEN_BATTERY_CHARGER_CONNECTED,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue