summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine')
-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 47de4638d8..d38c8fd0ce 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -42,6 +42,7 @@
42#include "playlist.h" 42#include "playlist.h"
43#include "audio.h" 43#include "audio.h"
44#include "tagcache.h" 44#include "tagcache.h"
45#include "peakmeter.h"
45 46
46#ifdef HAVE_LCD_BITMAP 47#ifdef HAVE_LCD_BITMAP
47#include "peakmeter.h" 48#include "peakmeter.h"
@@ -159,6 +160,15 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb)
159 length = 100; 160 length = 100;
160 end = battery_level(); 161 end = battery_level();
161 } 162 }
163 else if (pb->type == SKIN_TOKEN_PEAKMETER_LEFTBAR ||
164 pb->type == SKIN_TOKEN_PEAKMETER_RIGHTBAR)
165 {
166 int left, right, val;
167 peak_meter_current_vals(&left, &right);
168 val = pb->type == SKIN_TOKEN_PEAKMETER_LEFTBAR ? left : right;
169 length = MAX_PEAK;
170 end = peak_meter_scale_value(val, length);
171 }
162#if CONFIG_TUNER 172#if CONFIG_TUNER
163 else if (in_radio_screen() || (get_radio_status() != FMRADIO_OFF)) 173 else if (in_radio_screen() || (get_radio_status() != FMRADIO_OFF))
164 { 174 {
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index f292ff3946..5a90873d86 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,
744 token->type = SKIN_TOKEN_BATTERY_PERCENTBAR; 744 token->type = SKIN_TOKEN_BATTERY_PERCENTBAR;
745 else if (token->type == SKIN_TOKEN_TUNER_RSSI) 745 else if (token->type == SKIN_TOKEN_TUNER_RSSI)
746 token->type = SKIN_TOKEN_TUNER_RSSI_BAR; 746 token->type = SKIN_TOKEN_TUNER_RSSI_BAR;
747 else if (token->type == SKIN_TOKEN_PEAKMETER_LEFT)
748 token->type = SKIN_TOKEN_PEAKMETER_LEFTBAR;
749 else if (token->type == SKIN_TOKEN_PEAKMETER_RIGHT)
750 token->type = SKIN_TOKEN_PEAKMETER_RIGHTBAR;
747 pb->type = token->type; 751 pb->type = token->type;
748 752
749 return 0; 753 return 0;
@@ -1410,6 +1414,8 @@ static int skin_element_callback(struct skin_element* element, void* data)
1410 case SKIN_TOKEN_VOLUME: 1414 case SKIN_TOKEN_VOLUME:
1411 case SKIN_TOKEN_BATTERY_PERCENT: 1415 case SKIN_TOKEN_BATTERY_PERCENT:
1412 case SKIN_TOKEN_PLAYER_PROGRESSBAR: 1416 case SKIN_TOKEN_PLAYER_PROGRESSBAR:
1417 case SKIN_TOKEN_PEAKMETER_LEFT:
1418 case SKIN_TOKEN_PEAKMETER_RIGHT:
1413#ifdef HAVE_RADIO_RSSI 1419#ifdef HAVE_RADIO_RSSI
1414 case SKIN_TOKEN_TUNER_RSSI: 1420 case SKIN_TOKEN_TUNER_RSSI:
1415#endif 1421#endif
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 68a5433eb1..424e0c29cc 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,
139 draw_peakmeters(gwps, info->line_number, vp); 139 draw_peakmeters(gwps, info->line_number, vp);
140 break; 140 break;
141#endif 141#endif
142#ifdef HAVE_LCD_BITMAP
143 case SKIN_TOKEN_PEAKMETER_LEFTBAR:
144 case SKIN_TOKEN_PEAKMETER_RIGHTBAR:
145 data->peak_meter_enabled = true;
146 /* fall through to the progressbar code */
147#endif
142 case SKIN_TOKEN_VOLUMEBAR: 148 case SKIN_TOKEN_VOLUMEBAR:
143 case SKIN_TOKEN_BATTERY_PERCENTBAR: 149 case SKIN_TOKEN_BATTERY_PERCENTBAR:
144#ifdef HAVE_LCD_BITMAP 150#ifdef HAVE_LCD_BITMAP
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index 217835a1e2..c644d5b3aa 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -59,6 +59,7 @@
59#include "skin_engine.h" 59#include "skin_engine.h"
60#include "statusbar-skinned.h" 60#include "statusbar-skinned.h"
61#include "root_menu.h" 61#include "root_menu.h"
62#include "peakmeter.h"
62#ifdef HAVE_RECORDING 63#ifdef HAVE_RECORDING
63#include "recording.h" 64#include "recording.h"
64#include "pcm_record.h" 65#include "pcm_record.h"
@@ -1267,6 +1268,23 @@ const char *get_token_value(struct gui_wps *gwps,
1267#endif 1268#endif
1268 1269
1269 1270
1271#ifdef HAVE_LCD_BITMAP
1272 /* peakmeter */
1273 case SKIN_TOKEN_PEAKMETER_LEFT:
1274 case SKIN_TOKEN_PEAKMETER_RIGHT:
1275 {
1276 int left, right, val;
1277 peak_meter_current_vals(&left, &right);
1278 val = token->type == SKIN_TOKEN_PEAKMETER_LEFT ?
1279 left : right;
1280 val = peak_meter_scale_value(val, limit==1 ? MAX_PEAK : limit);
1281 if (intval)
1282 *intval = val;
1283 snprintf(buf, buf_size, "%d", val);
1284 data->peak_meter_enabled = true;
1285 return buf;
1286 }
1287#endif
1270 1288
1271#if (CONFIG_CODEC == SWCODEC) 1289#if (CONFIG_CODEC == SWCODEC)
1272 case SKIN_TOKEN_CROSSFADE: 1290 case SKIN_TOKEN_CROSSFADE: