diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/recorder/radio.c | 68 |
1 files changed, 23 insertions, 45 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index 7eed961202..9e891389bd 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c | |||
@@ -455,6 +455,19 @@ static void talk_preset(int preset, bool fallback, bool enqueue) | |||
455 | } | 455 | } |
456 | } | 456 | } |
457 | 457 | ||
458 | static void fms_restore(struct viewport vp[NB_SCREENS]) | ||
459 | { | ||
460 | struct screen *display; | ||
461 | int i; | ||
462 | FOR_NB_SCREENS(i) | ||
463 | { | ||
464 | display = &screens[i]; | ||
465 | display->set_viewport(&vp[i]); | ||
466 | display->clear_viewport(); | ||
467 | display->update_viewport(); | ||
468 | } | ||
469 | } | ||
470 | |||
458 | int radio_screen(void) | 471 | int radio_screen(void) |
459 | { | 472 | { |
460 | char buf[MAX_PATH]; | 473 | char buf[MAX_PATH]; |
@@ -502,11 +515,8 @@ int radio_screen(void) | |||
502 | if (global_settings.buttonbar) | 515 | if (global_settings.buttonbar) |
503 | vp[i].height -= BUTTONBAR_HEIGHT; | 516 | vp[i].height -= BUTTONBAR_HEIGHT; |
504 | #endif | 517 | #endif |
505 | screens[i].set_viewport(&vp[i]); | ||
506 | screens[i].stop_scroll(); | ||
507 | screens[i].clear_viewport(); | ||
508 | screens[i].update_viewport(); | ||
509 | } | 518 | } |
519 | fms_restore(vp); | ||
510 | 520 | ||
511 | fh = font_get(FONT_UI)->height; | 521 | fh = font_get(FONT_UI)->height; |
512 | 522 | ||
@@ -754,13 +764,7 @@ int radio_screen(void) | |||
754 | } | 764 | } |
755 | radio_menu(); | 765 | radio_menu(); |
756 | curr_preset = find_preset(curr_freq); | 766 | curr_preset = find_preset(curr_freq); |
757 | FOR_NB_SCREENS(i) | 767 | fms_restore(vp); |
758 | { | ||
759 | screens[i].set_viewport(&vp[i]); | ||
760 | screens[i].clear_viewport(); | ||
761 | screens[i].update_viewport(); | ||
762 | screens[i].set_viewport(NULL); | ||
763 | } | ||
764 | #ifdef HAVE_BUTTONBAR | 768 | #ifdef HAVE_BUTTONBAR |
765 | gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU), | 769 | gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU), |
766 | str(LANG_PRESET), | 770 | str(LANG_PRESET), |
@@ -775,25 +779,14 @@ int radio_screen(void) | |||
775 | { | 779 | { |
776 | splash(HZ, ID2P(LANG_FM_NO_PRESETS)); | 780 | splash(HZ, ID2P(LANG_FM_NO_PRESETS)); |
777 | update_screen = true; | 781 | update_screen = true; |
778 | FOR_NB_SCREENS(i) | 782 | fms_restore(vp); |
779 | { | ||
780 | screens[i].set_viewport(&vp[i]); | ||
781 | screens[i].clear_viewport(); | ||
782 | screens[i].update_viewport(); | ||
783 | screens[i].set_viewport(NULL); | ||
784 | } | ||
785 | 783 | ||
786 | break; | 784 | break; |
787 | } | 785 | } |
788 | handle_radio_presets(); | ||
789 | FOR_NB_SCREENS(i) | 786 | FOR_NB_SCREENS(i) |
790 | { | 787 | screens[i].scroll_stop(&vp[i]); |
791 | screens[i].set_viewport(&vp[i]); | 788 | handle_radio_presets(); |
792 | screens[i].stop_scroll(); | 789 | fms_restore(vp); |
793 | screens[i].clear_viewport(); | ||
794 | screens[i].update_viewport(); | ||
795 | screens[i].set_viewport(NULL); | ||
796 | } | ||
797 | #ifdef HAVE_BUTTONBAR | 790 | #ifdef HAVE_BUTTONBAR |
798 | gui_buttonbar_set(&buttonbar, | 791 | gui_buttonbar_set(&buttonbar, |
799 | str(LANG_BUTTONBAR_MENU), | 792 | str(LANG_BUTTONBAR_MENU), |
@@ -812,14 +805,7 @@ int radio_screen(void) | |||
812 | done = true; | 805 | done = true; |
813 | break; | 806 | break; |
814 | } | 807 | } |
815 | FOR_NB_SCREENS(i) | 808 | fms_restore(vp); |
816 | { | ||
817 | screens[i].set_viewport(&vp[i]); | ||
818 | screens[i].stop_scroll(); | ||
819 | screens[i].clear_viewport(); | ||
820 | screens[i].update_viewport(); | ||
821 | screens[i].set_viewport(NULL); | ||
822 | } | ||
823 | update_screen = true; | 809 | update_screen = true; |
824 | } | 810 | } |
825 | break; | 811 | break; |
@@ -940,7 +926,6 @@ int radio_screen(void) | |||
940 | peak_meter_screen(&screens[i],0, fh*(top_of_screen + 4),fh); | 926 | peak_meter_screen(&screens[i],0, fh*(top_of_screen + 4),fh); |
941 | screens[i].update_rect(0, fh*(top_of_screen + 4), | 927 | screens[i].update_rect(0, fh*(top_of_screen + 4), |
942 | screens[i].getwidth(), fh); | 928 | screens[i].getwidth(), fh); |
943 | screens[i].set_viewport(NULL); | ||
944 | } | 929 | } |
945 | } | 930 | } |
946 | 931 | ||
@@ -1039,11 +1024,7 @@ int radio_screen(void) | |||
1039 | #endif /* CONFIG_CODEC != SWCODEC */ | 1024 | #endif /* CONFIG_CODEC != SWCODEC */ |
1040 | 1025 | ||
1041 | FOR_NB_SCREENS(i) | 1026 | FOR_NB_SCREENS(i) |
1042 | { | ||
1043 | screens[i].update_viewport(); | 1027 | screens[i].update_viewport(); |
1044 | screens[i].set_viewport(NULL); | ||
1045 | } | ||
1046 | |||
1047 | #ifdef HAVE_BUTTONBAR | 1028 | #ifdef HAVE_BUTTONBAR |
1048 | gui_buttonbar_draw(&buttonbar); | 1029 | gui_buttonbar_draw(&buttonbar); |
1049 | #endif | 1030 | #endif |
@@ -1087,12 +1068,7 @@ int radio_screen(void) | |||
1087 | if(audio_status() & AUDIO_STATUS_ERROR) | 1068 | if(audio_status() & AUDIO_STATUS_ERROR) |
1088 | { | 1069 | { |
1089 | splash(0, str(LANG_DISK_FULL)); | 1070 | splash(0, str(LANG_DISK_FULL)); |
1090 | FOR_NB_SCREENS(i) | 1071 | fms_restore(vp); |
1091 | { | ||
1092 | screens[i].set_viewport(&vp[i]); | ||
1093 | screens[i].update_viewport(); | ||
1094 | screens[i].set_viewport(NULL); | ||
1095 | } | ||
1096 | audio_error_clear(); | 1072 | audio_error_clear(); |
1097 | 1073 | ||
1098 | while(1) | 1074 | while(1) |
@@ -1138,6 +1114,7 @@ int radio_screen(void) | |||
1138 | FOR_NB_SCREENS(i) | 1114 | FOR_NB_SCREENS(i) |
1139 | { | 1115 | { |
1140 | screens[i].scroll_stop(&vp[i]); | 1116 | screens[i].scroll_stop(&vp[i]); |
1117 | screens[i].set_viewport(NULL); | ||
1141 | } | 1118 | } |
1142 | in_screen = false; | 1119 | in_screen = false; |
1143 | #if CONFIG_CODEC != SWCODEC | 1120 | #if CONFIG_CODEC != SWCODEC |
@@ -1489,6 +1466,7 @@ static int handle_radio_presets(void) | |||
1489 | result = 2; | 1466 | result = 2; |
1490 | } | 1467 | } |
1491 | } | 1468 | } |
1469 | gui_synclist_scroll_stop(&lists); | ||
1492 | return result - 1; | 1470 | return result - 1; |
1493 | } | 1471 | } |
1494 | 1472 | ||