summaryrefslogtreecommitdiff
path: root/apps/gui/gwps.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/gwps.c')
-rw-r--r--apps/gui/gwps.c58
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 118static 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}
120long gui_wps_show(void) 136long 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);