summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/skin_engine/skin_display.c10
-rw-r--r--apps/gui/skin_engine/skin_parser.c6
-rw-r--r--apps/gui/skin_engine/skin_render.c6
-rw-r--r--apps/gui/skin_engine/skin_tokens.c18
4 files changed, 40 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c
index 47de463..d38c8fd 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -42,6 +42,7 @@
#include "playlist.h"
#include "audio.h"
#include "tagcache.h"
+#include "peakmeter.h"
#ifdef HAVE_LCD_BITMAP
#include "peakmeter.h"
@@ -159,6 +160,15 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
length = 100;
end = battery_level();
}
+ else if (pb->type == SKIN_TOKEN_PEAKMETER_LEFTBAR ||
+ pb->type == SKIN_TOKEN_PEAKMETER_RIGHTBAR)
+ {
+ int left, right, val;
+ peak_meter_current_vals(&left, &right);
+ val = pb->type == SKIN_TOKEN_PEAKMETER_LEFTBAR ? left : right;
+ length = MAX_PEAK;
+ end = peak_meter_scale_value(val, length);
+ }
#if CONFIG_TUNER
else if (in_radio_screen() || (get_radio_status() != FMRADIO_OFF))
{
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index f292ff3..5a90873 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -744,6 +744,10 @@ static int parse_progressbar_tag(struct skin_element* element,
token->type = SKIN_TOKEN_BATTERY_PERCENTBAR;
else if (token->type == SKIN_TOKEN_TUNER_RSSI)
token->type = SKIN_TOKEN_TUNER_RSSI_BAR;
+ else if (token->type == SKIN_TOKEN_PEAKMETER_LEFT)
+ token->type = SKIN_TOKEN_PEAKMETER_LEFTBAR;
+ else if (token->type == SKIN_TOKEN_PEAKMETER_RIGHT)
+ token->type = SKIN_TOKEN_PEAKMETER_RIGHTBAR;
pb->type = token->type;
return 0;
@@ -1410,6 +1414,8 @@ static int skin_element_callback(struct skin_element* element, void* data)
case SKIN_TOKEN_VOLUME:
case SKIN_TOKEN_BATTERY_PERCENT:
case SKIN_TOKEN_PLAYER_PROGRESSBAR:
+ case SKIN_TOKEN_PEAKMETER_LEFT:
+ case SKIN_TOKEN_PEAKMETER_RIGHT:
#ifdef HAVE_RADIO_RSSI
case SKIN_TOKEN_TUNER_RSSI:
#endif
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 68a5433..424e0c2 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -139,6 +139,12 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
draw_peakmeters(gwps, info->line_number, vp);
break;
#endif
+#ifdef HAVE_LCD_BITMAP
+ case SKIN_TOKEN_PEAKMETER_LEFTBAR:
+ case SKIN_TOKEN_PEAKMETER_RIGHTBAR:
+ data->peak_meter_enabled = true;
+ /* fall through to the progressbar code */
+#endif
case SKIN_TOKEN_VOLUMEBAR:
case SKIN_TOKEN_BATTERY_PERCENTBAR:
#ifdef HAVE_LCD_BITMAP
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index 217835a..c644d5b 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -59,6 +59,7 @@
#include "skin_engine.h"
#include "statusbar-skinned.h"
#include "root_menu.h"
+#include "peakmeter.h"
#ifdef HAVE_RECORDING
#include "recording.h"
#include "pcm_record.h"
@@ -1267,6 +1268,23 @@ const char *get_token_value(struct gui_wps *gwps,
#endif
+#ifdef HAVE_LCD_BITMAP
+ /* peakmeter */
+ case SKIN_TOKEN_PEAKMETER_LEFT:
+ case SKIN_TOKEN_PEAKMETER_RIGHT:
+ {
+ int left, right, val;
+ peak_meter_current_vals(&left, &right);
+ val = token->type == SKIN_TOKEN_PEAKMETER_LEFT ?
+ left : right;
+ val = peak_meter_scale_value(val, limit==1 ? MAX_PEAK : limit);
+ if (intval)
+ *intval = val;
+ snprintf(buf, buf_size, "%d", val);
+ data->peak_meter_enabled = true;
+ return buf;
+ }
+#endif
#if (CONFIG_CODEC == SWCODEC)
case SKIN_TOKEN_CROSSFADE: