diff options
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r-- | apps/gui/skin_engine/skin_display.c | 10 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 6 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 6 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 18 |
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: |