diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_display.c | 19 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 5 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 1 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_tokens.c | 14 |
4 files changed, 36 insertions, 3 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 78db4eb371..47de4638d8 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c | |||
@@ -162,9 +162,22 @@ void draw_progressbar(struct gui_wps *gwps, int line, struct progressbar *pb) | |||
162 | #if CONFIG_TUNER | 162 | #if CONFIG_TUNER |
163 | else if (in_radio_screen() || (get_radio_status() != FMRADIO_OFF)) | 163 | else if (in_radio_screen() || (get_radio_status() != FMRADIO_OFF)) |
164 | { | 164 | { |
165 | int min = fm_region_data[global_settings.fm_region].freq_min; | 165 | #ifdef HAVE_RADIO_RSSI |
166 | end = radio_current_frequency() - min; | 166 | if (pb->type == SKIN_TOKEN_TUNER_RSSI_BAR) |
167 | length = fm_region_data[global_settings.fm_region].freq_max - min; | 167 | { |
168 | int val = tuner_get(RADIO_RSSI); | ||
169 | int min = tuner_get(RADIO_RSSI_MIN); | ||
170 | int max = tuner_get(RADIO_RSSI_MAX); | ||
171 | end = val - min; | ||
172 | length = max - min; | ||
173 | } | ||
174 | else | ||
175 | #endif | ||
176 | { | ||
177 | int min = fm_region_data[global_settings.fm_region].freq_min; | ||
178 | end = radio_current_frequency() - min; | ||
179 | length = fm_region_data[global_settings.fm_region].freq_max - min; | ||
180 | } | ||
168 | } | 181 | } |
169 | #endif | 182 | #endif |
170 | else if (id3 && id3->length) | 183 | else if (id3 && id3->length) |
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index c94ef4e5b5..818edfbd07 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -742,6 +742,8 @@ static int parse_progressbar_tag(struct skin_element* element, | |||
742 | token->type = SKIN_TOKEN_VOLUMEBAR; | 742 | token->type = SKIN_TOKEN_VOLUMEBAR; |
743 | else if (token->type == SKIN_TOKEN_BATTERY_PERCENT) | 743 | else if (token->type == SKIN_TOKEN_BATTERY_PERCENT) |
744 | token->type = SKIN_TOKEN_BATTERY_PERCENTBAR; | 744 | token->type = SKIN_TOKEN_BATTERY_PERCENTBAR; |
745 | else if (token->type == SKIN_TOKEN_TUNER_RSSI) | ||
746 | token->type = SKIN_TOKEN_TUNER_RSSI_BAR; | ||
745 | pb->type = token->type; | 747 | pb->type = token->type; |
746 | 748 | ||
747 | return 0; | 749 | return 0; |
@@ -1408,6 +1410,9 @@ static int skin_element_callback(struct skin_element* element, void* data) | |||
1408 | case SKIN_TOKEN_VOLUME: | 1410 | case SKIN_TOKEN_VOLUME: |
1409 | case SKIN_TOKEN_BATTERY_PERCENT: | 1411 | case SKIN_TOKEN_BATTERY_PERCENT: |
1410 | case SKIN_TOKEN_PLAYER_PROGRESSBAR: | 1412 | case SKIN_TOKEN_PLAYER_PROGRESSBAR: |
1413 | #ifdef HAVE_RADIO_RSSI | ||
1414 | case SKIN_TOKEN_TUNER_RSSI: | ||
1415 | #endif | ||
1411 | function = parse_progressbar_tag; | 1416 | function = parse_progressbar_tag; |
1412 | break; | 1417 | break; |
1413 | case SKIN_TOKEN_SUBLINE_TIMEOUT: | 1418 | case SKIN_TOKEN_SUBLINE_TIMEOUT: |
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index a9e6319317..68a5433eb1 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c | |||
@@ -143,6 +143,7 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info, | |||
143 | case SKIN_TOKEN_BATTERY_PERCENTBAR: | 143 | case SKIN_TOKEN_BATTERY_PERCENTBAR: |
144 | #ifdef HAVE_LCD_BITMAP | 144 | #ifdef HAVE_LCD_BITMAP |
145 | case SKIN_TOKEN_PROGRESSBAR: | 145 | case SKIN_TOKEN_PROGRESSBAR: |
146 | case SKIN_TOKEN_TUNER_RSSI_BAR: | ||
146 | { | 147 | { |
147 | struct progressbar *bar = (struct progressbar*)token->value.data; | 148 | struct progressbar *bar = (struct progressbar*)token->value.data; |
148 | if (do_refresh) | 149 | if (do_refresh) |
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index efe67a186e..c2ee7bf426 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c | |||
@@ -478,6 +478,20 @@ const char *get_radio_token(struct wps_token *token, int preset_offset, | |||
478 | #ifdef HAVE_RADIO_RSSI | 478 | #ifdef HAVE_RADIO_RSSI |
479 | case SKIN_TOKEN_TUNER_RSSI: | 479 | case SKIN_TOKEN_TUNER_RSSI: |
480 | snprintf(buf, buf_size, "%d",tuner_get(RADIO_RSSI)); | 480 | snprintf(buf, buf_size, "%d",tuner_get(RADIO_RSSI)); |
481 | if (intval) | ||
482 | { | ||
483 | int val = tuner_get(RADIO_RSSI); | ||
484 | int min = tuner_get(RADIO_RSSI_MIN); | ||
485 | int max = tuner_get(RADIO_RSSI_MAX); | ||
486 | if (limit == TOKEN_VALUE_ONLY) | ||
487 | { | ||
488 | *intval = val; | ||
489 | } | ||
490 | else | ||
491 | { | ||
492 | *intval = 1+(limit-1)*(val-min)/(max-1-min); | ||
493 | } | ||
494 | } | ||
481 | return buf; | 495 | return buf; |
482 | case SKIN_TOKEN_TUNER_RSSI_MIN: | 496 | case SKIN_TOKEN_TUNER_RSSI_MIN: |
483 | snprintf(buf, buf_size, "%d",tuner_get(RADIO_RSSI_MIN)); | 497 | snprintf(buf, buf_size, "%d",tuner_get(RADIO_RSSI_MIN)); |