diff options
Diffstat (limited to 'apps/gui/gwps.c')
-rw-r--r-- | apps/gui/gwps.c | 58 |
1 files changed, 37 insertions, 21 deletions
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index 6c387ef62e..1d8d7255bf 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c | |||
@@ -115,8 +115,24 @@ static void next_track(void) | |||
115 | 115 | ||
116 | audio_next(); | 116 | audio_next(); |
117 | } | 117 | } |
118 | 118 | static char fix_wps_bars(void) | |
119 | 119 | { | |
120 | #ifdef HAVE_LCD_BITMAP | ||
121 | int i; | ||
122 | char wpsbars = 0; | ||
123 | FOR_NB_SCREENS(i) | ||
124 | { | ||
125 | bool draw = global_settings.statusbar; | ||
126 | if (gui_wps[i].data->wps_sb_tag) | ||
127 | draw = gui_wps[i].data->show_sb_on_wps; | ||
128 | if (draw) | ||
129 | wpsbars |= VP_IGNORE_SB_SETTING(i)|(1<<i); | ||
130 | } | ||
131 | return wpsbars; | ||
132 | #else | ||
133 | return 1; | ||
134 | #endif | ||
135 | } | ||
120 | long gui_wps_show(void) | 136 | long gui_wps_show(void) |
121 | { | 137 | { |
122 | long button = 0; | 138 | long button = 0; |
@@ -127,8 +143,8 @@ long gui_wps_show(void) | |||
127 | bool update_track = false; | 143 | bool update_track = false; |
128 | int i; | 144 | int i; |
129 | long last_left = 0, last_right = 0; | 145 | long last_left = 0, last_right = 0; |
146 | char wpsbars = 0, oldbars = 0; | ||
130 | 147 | ||
131 | viewportmanager_set_statusbar(false); | ||
132 | wps_state_init(); | 148 | wps_state_init(); |
133 | 149 | ||
134 | #ifdef HAVE_LCD_CHARCELLS | 150 | #ifdef HAVE_LCD_CHARCELLS |
@@ -149,6 +165,7 @@ long gui_wps_show(void) | |||
149 | ab_reset_markers(); | 165 | ab_reset_markers(); |
150 | #endif | 166 | #endif |
151 | 167 | ||
168 | oldbars = viewportmanager_set_statusbar(0); | ||
152 | if(audio_status() & AUDIO_STATUS_PLAY) | 169 | if(audio_status() & AUDIO_STATUS_PLAY) |
153 | { | 170 | { |
154 | wps_state.id3 = audio_current_track(); | 171 | wps_state.id3 = audio_current_track(); |
@@ -156,12 +173,13 @@ long gui_wps_show(void) | |||
156 | if (wps_state.id3) { | 173 | if (wps_state.id3) { |
157 | if (gui_wps_display()) | 174 | if (gui_wps_display()) |
158 | return 0; | 175 | return 0; |
159 | FOR_NB_SCREENS(i) | ||
160 | gui_wps_refresh(&gui_wps[i], 0, WPS_REFRESH_ALL); | ||
161 | } | 176 | } |
162 | 177 | ||
163 | restore = true; | 178 | restore = true; |
164 | } | 179 | } |
180 | wpsbars = fix_wps_bars(); | ||
181 | viewportmanager_set_statusbar(wpsbars); | ||
182 | |||
165 | while ( 1 ) | 183 | while ( 1 ) |
166 | { | 184 | { |
167 | bool audio_paused = (audio_status() & AUDIO_STATUS_PAUSE)?true:false; | 185 | bool audio_paused = (audio_status() & AUDIO_STATUS_PAUSE)?true:false; |
@@ -259,20 +277,19 @@ long gui_wps_show(void) | |||
259 | { | 277 | { |
260 | case ACTION_WPS_CONTEXT: | 278 | case ACTION_WPS_CONTEXT: |
261 | { | 279 | { |
262 | bool bars; | ||
263 | #if LCD_DEPTH > 1 | 280 | #if LCD_DEPTH > 1 |
264 | show_main_backdrop(); | 281 | show_main_backdrop(); |
265 | #endif | 282 | #endif |
266 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 | 283 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 |
267 | show_remote_main_backdrop(); | 284 | show_remote_main_backdrop(); |
268 | #endif | 285 | #endif |
269 | bars = viewportmanager_set_statusbar(true); | 286 | viewportmanager_set_statusbar(oldbars); |
270 | /* if music is stopped in the context menu we want to exit the wps */ | 287 | /* if music is stopped in the context menu we want to exit the wps */ |
271 | if (onplay(wps_state.id3->path, | 288 | if (onplay(wps_state.id3->path, |
272 | FILE_ATTR_AUDIO, CONTEXT_WPS) == ONPLAY_MAINMENU | 289 | FILE_ATTR_AUDIO, CONTEXT_WPS) == ONPLAY_MAINMENU |
273 | || !audio_status()) | 290 | || !audio_status()) |
274 | return GO_TO_ROOT; | 291 | return GO_TO_ROOT; |
275 | viewportmanager_set_statusbar(bars); | 292 | viewportmanager_set_statusbar(wpsbars); |
276 | /* track might have changed */ | 293 | /* track might have changed */ |
277 | update_track = true; | 294 | update_track = true; |
278 | 295 | ||
@@ -527,7 +544,7 @@ long gui_wps_show(void) | |||
527 | #ifdef HAVE_QUICKSCREEN | 544 | #ifdef HAVE_QUICKSCREEN |
528 | case ACTION_WPS_QUICKSCREEN: | 545 | case ACTION_WPS_QUICKSCREEN: |
529 | { | 546 | { |
530 | bool bars = viewportmanager_set_statusbar(true); | 547 | viewportmanager_set_statusbar(oldbars); |
531 | #if LCD_DEPTH > 1 | 548 | #if LCD_DEPTH > 1 |
532 | show_main_backdrop(); | 549 | show_main_backdrop(); |
533 | #endif | 550 | #endif |
@@ -536,7 +553,8 @@ long gui_wps_show(void) | |||
536 | #endif | 553 | #endif |
537 | if (quick_screen_quick(button)) | 554 | if (quick_screen_quick(button)) |
538 | return SYS_USB_CONNECTED; | 555 | return SYS_USB_CONNECTED; |
539 | viewportmanager_set_statusbar(bars); | 556 | wpsbars = fix_wps_bars(); |
557 | viewportmanager_set_statusbar(wpsbars); | ||
540 | #if LCD_DEPTH > 1 | 558 | #if LCD_DEPTH > 1 |
541 | show_wps_backdrop(); | 559 | show_wps_backdrop(); |
542 | #endif | 560 | #endif |
@@ -552,7 +570,7 @@ long gui_wps_show(void) | |||
552 | #ifdef BUTTON_F3 | 570 | #ifdef BUTTON_F3 |
553 | case ACTION_F3: | 571 | case ACTION_F3: |
554 | { | 572 | { |
555 | bool bars = viewportmanager_set_statusbar(true); | 573 | viewportmanager_set_statusbar(oldbars); |
556 | #if LCD_DEPTH > 1 | 574 | #if LCD_DEPTH > 1 |
557 | show_main_backdrop(); | 575 | show_main_backdrop(); |
558 | #endif | 576 | #endif |
@@ -562,7 +580,8 @@ long gui_wps_show(void) | |||
562 | if (quick_screen_f3(BUTTON_F3)) | 580 | if (quick_screen_f3(BUTTON_F3)) |
563 | return SYS_USB_CONNECTED; | 581 | return SYS_USB_CONNECTED; |
564 | restore = true; | 582 | restore = true; |
565 | viewportmanager_set_statusbar(bars); | 583 | wpsbars = fix_wps_bars(); |
584 | viewportmanager_set_statusbar(wpsbars); | ||
566 | } | 585 | } |
567 | break; | 586 | break; |
568 | #endif /* BUTTON_F3 */ | 587 | #endif /* BUTTON_F3 */ |
@@ -571,7 +590,7 @@ long gui_wps_show(void) | |||
571 | #ifdef HAVE_PITCHSCREEN | 590 | #ifdef HAVE_PITCHSCREEN |
572 | case ACTION_WPS_PITCHSCREEN: | 591 | case ACTION_WPS_PITCHSCREEN: |
573 | { | 592 | { |
574 | bool bars = viewportmanager_set_statusbar(true); | 593 | viewportmanager_set_statusbar(oldbars); |
575 | #if LCD_DEPTH > 1 | 594 | #if LCD_DEPTH > 1 |
576 | show_main_backdrop(); | 595 | show_main_backdrop(); |
577 | #endif | 596 | #endif |
@@ -587,7 +606,7 @@ long gui_wps_show(void) | |||
587 | show_remote_wps_backdrop(); | 606 | show_remote_wps_backdrop(); |
588 | #endif | 607 | #endif |
589 | restore = true; | 608 | restore = true; |
590 | viewportmanager_set_statusbar(bars); | 609 | viewportmanager_set_statusbar(wpsbars); |
591 | } | 610 | } |
592 | break; | 611 | break; |
593 | #endif /* HAVE_PITCHSCREEN */ | 612 | #endif /* HAVE_PITCHSCREEN */ |
@@ -613,7 +632,7 @@ long gui_wps_show(void) | |||
613 | 632 | ||
614 | case ACTION_WPS_ID3SCREEN: | 633 | case ACTION_WPS_ID3SCREEN: |
615 | { | 634 | { |
616 | bool bars = viewportmanager_set_statusbar(true); | 635 | viewportmanager_set_statusbar(oldbars); |
617 | #if LCD_DEPTH > 1 | 636 | #if LCD_DEPTH > 1 |
618 | show_main_backdrop(); | 637 | show_main_backdrop(); |
619 | #endif | 638 | #endif |
@@ -628,7 +647,7 @@ long gui_wps_show(void) | |||
628 | show_remote_wps_backdrop(); | 647 | show_remote_wps_backdrop(); |
629 | #endif | 648 | #endif |
630 | restore = true; | 649 | restore = true; |
631 | viewportmanager_set_statusbar(bars); | 650 | viewportmanager_set_statusbar(wpsbars); |
632 | } | 651 | } |
633 | break; | 652 | break; |
634 | 653 | ||
@@ -645,7 +664,7 @@ long gui_wps_show(void) | |||
645 | break; | 664 | break; |
646 | #endif | 665 | #endif |
647 | case SYS_POWEROFF: | 666 | case SYS_POWEROFF: |
648 | viewportmanager_set_statusbar(true); | 667 | viewportmanager_set_statusbar(oldbars); |
649 | #if LCD_DEPTH > 1 | 668 | #if LCD_DEPTH > 1 |
650 | show_main_backdrop(); | 669 | show_main_backdrop(); |
651 | #endif | 670 | #endif |
@@ -681,13 +700,10 @@ long gui_wps_show(void) | |||
681 | if (gui_wps_display()) { | 700 | if (gui_wps_display()) { |
682 | exit = true; | 701 | exit = true; |
683 | } | 702 | } |
684 | else if (wps_state.id3){ | ||
685 | FOR_NB_SCREENS(i) | ||
686 | gui_wps_refresh(&gui_wps[i], 0, WPS_REFRESH_NON_STATIC); | ||
687 | } | ||
688 | } | 703 | } |
689 | 704 | ||
690 | if (exit) { | 705 | if (exit) { |
706 | viewportmanager_set_statusbar(oldbars); | ||
691 | #ifdef HAVE_LCD_CHARCELLS | 707 | #ifdef HAVE_LCD_CHARCELLS |
692 | status_set_record(false); | 708 | status_set_record(false); |
693 | status_set_audio(false); | 709 | status_set_audio(false); |