summaryrefslogtreecommitdiff
path: root/apps/recorder/radio.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder/radio.c')
-rw-r--r--apps/recorder/radio.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index d01d24ccf2..8c8c56cb34 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -459,7 +459,6 @@ int radio_screen(void)
459 bool update_screen = true; 459 bool update_screen = true;
460 bool screen_freeze = false; 460 bool screen_freeze = false;
461 bool keep_playing = false; 461 bool keep_playing = false;
462 bool statusbar = global_settings.statusbar;
463 bool talk = false; 462 bool talk = false;
464#ifdef FM_RECORD_DBLPRE 463#ifdef FM_RECORD_DBLPRE
465 int lastbutton = BUTTON_NONE; 464 int lastbutton = BUTTON_NONE;
@@ -477,6 +476,7 @@ int radio_screen(void)
477 int button_timeout = current_tick + (2*HZ); 476 int button_timeout = current_tick + (2*HZ);
478#endif 477#endif
479 struct viewport vp[NB_SCREENS]; 478 struct viewport vp[NB_SCREENS];
479 int oldbars = 0, fmbars = VP_SB_ALLSCREENS;
480#ifdef HAVE_BUTTONBAR 480#ifdef HAVE_BUTTONBAR
481 struct gui_buttonbar buttonbar; 481 struct gui_buttonbar buttonbar;
482 gui_buttonbar_init(&buttonbar); 482 gui_buttonbar_init(&buttonbar);
@@ -487,8 +487,9 @@ int radio_screen(void)
487 in_screen = true; 487 in_screen = true;
488 488
489 /* always display status bar in radio screen for now */ 489 /* always display status bar in radio screen for now */
490 global_status.statusbar_forced = statusbar?0:1; 490 FOR_NB_SCREENS(i)
491 global_settings.statusbar = true; 491 fmbars |= VP_SB_IGNORE_SETTING(i);
492 oldbars = viewportmanager_set_statusbar(fmbars);
492 FOR_NB_SCREENS(i) 493 FOR_NB_SCREENS(i)
493 { 494 {
494 viewport_set_defaults(&vp[i], i); 495 viewport_set_defaults(&vp[i], i);
@@ -744,8 +745,10 @@ int radio_screen(void)
744 break; 745 break;
745 746
746 case ACTION_FM_MENU: 747 case ACTION_FM_MENU:
748 viewportmanager_set_statusbar(oldbars);
747 radio_menu(); 749 radio_menu();
748 curr_preset = find_preset(curr_freq); 750 curr_preset = find_preset(curr_freq);
751 viewportmanager_set_statusbar(fmbars);
749 FOR_NB_SCREENS(i) 752 FOR_NB_SCREENS(i)
750 { 753 {
751 screens[i].set_viewport(&vp[i]); 754 screens[i].set_viewport(&vp[i]);
@@ -777,7 +780,9 @@ int radio_screen(void)
777 780
778 break; 781 break;
779 } 782 }
783 viewportmanager_set_statusbar(oldbars);
780 handle_radio_presets(); 784 handle_radio_presets();
785 viewportmanager_set_statusbar(fmbars);
781 FOR_NB_SCREENS(i) 786 FOR_NB_SCREENS(i)
782 { 787 {
783 screens[i].set_viewport(&vp[i]); 788 screens[i].set_viewport(&vp[i]);
@@ -1073,9 +1078,7 @@ int radio_screen(void)
1073 cpu_idle_mode(false); 1078 cpu_idle_mode(false);
1074#endif 1079#endif
1075 1080
1076 /* restore status bar settings */ 1081 viewportmanager_set_statusbar(oldbars);
1077 global_settings.statusbar = statusbar;
1078 global_status.statusbar_forced = 0;
1079 in_screen = false; 1082 in_screen = false;
1080#if CONFIG_CODEC != SWCODEC 1083#if CONFIG_CODEC != SWCODEC
1081 return have_recorded; 1084 return have_recorded;