diff options
Diffstat (limited to 'apps/recorder/radio.c')
-rw-r--r-- | apps/recorder/radio.c | 15 |
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; |