From 0afd9716a4879e66bc29826dba54c544920d1ee5 Mon Sep 17 00:00:00 2001 From: Anton Oleynikov Date: Sat, 19 Nov 2005 14:54:41 +0000 Subject: used generic yes/no dialog for confirmation of presets clearing git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7996 a1c6a512-1295-4272-9138-f99709370657 --- apps/recorder/radio.c | 102 +++++++++++++++++++++----------------------------- 1 file changed, 42 insertions(+), 60 deletions(-) (limited to 'apps') diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c index 60a14eff3d..3dc74cd2ce 100644 --- a/apps/recorder/radio.c +++ b/apps/recorder/radio.c @@ -55,6 +55,7 @@ #include "statusbar.h" #include "textarea.h" #include "splash.h" +#include "yesno.h" #ifdef CONFIG_TUNER @@ -1185,76 +1186,57 @@ static bool toggle_mono_mode(void) static bool scan_presets(void) { - bool exit = false; bool tuned = false; char buf[32]; int freq, i; + char *lines[]={str(LANG_FM_CLEAR_PRESETS)}; + struct text_message message={lines, 1}; - FOR_NB_SCREENS(i){ - gui_textarea_clear(&screens[i]); - screens[i].puts_scroll(0,0,str(LANG_FM_CLEAR_PRESETS)); - screens[i].puts_scroll(0,2,str(LANG_CONFIRM_WITH_PLAY_RECORDER)); - screens[i].puts_scroll(0,3,str(LANG_CANCEL_WITH_ANY_RECORDER)); - gui_textarea_update(&screens[i]); - } + if(gui_syncyesno_run(&message,NULL,NULL)==YESNO_YES){ + FOR_NB_SCREENS(i) + gui_textarea_clear(&screens[i]); + curr_freq = MIN_FREQ; + num_presets = 0; + while(curr_freq <= MAX_FREQ){ + if (num_presets >= MAX_PRESETS) + break; - while (!exit) { - int btn = button_get(true); - switch (btn) { - case SETTINGS_OK: - FOR_NB_SCREENS(i) - gui_textarea_clear(&screens[i]); - curr_freq = MIN_FREQ; - num_presets = 0; - while(curr_freq <= MAX_FREQ){ - if (num_presets >= MAX_PRESETS) - break; - - freq = curr_freq /100000; - snprintf(buf, 32, str(LANG_FM_SCANNING), freq/10, freq % 10); - gui_syncsplash(0, true, buf); - - /* Tune in and delay */ - radio_set(RADIO_FREQUENCY, curr_freq); - sleep(1); + freq = curr_freq /100000; + snprintf(buf, 32, str(LANG_FM_SCANNING), freq/10, freq % 10); + gui_syncsplash(0, true, buf); + + /* Tune in and delay */ + radio_set(RADIO_FREQUENCY, curr_freq); + sleep(1); - /* Start IF measurement */ - radio_set(RADIO_IF_MEASUREMENT, 1); - sleep(1); - - /* Now check how close to the IF frequency we are */ - tuned = radio_get(RADIO_TUNED); - - /* add preset */ - if(tuned){ - snprintf(buf, 32, str(LANG_FM_DEFAULT_PRESET_NAME),freq/10, freq % 10); - strcpy(presets[num_presets].name, buf); - presets[num_presets].frequency = curr_freq; - menu_insert(preset_menu, -1, - presets[num_presets].name, 0); - num_presets++; - } + /* Start IF measurement */ + radio_set(RADIO_IF_MEASUREMENT, 1); + sleep(1); - curr_freq += FREQ_STEP; - - } + /* Now check how close to the IF frequency we are */ + tuned = radio_get(RADIO_TUNED); - rebuild_preset_menu(); - radio_save_presets(); + /* add preset */ + if(tuned){ + snprintf(buf, 32, str(LANG_FM_DEFAULT_PRESET_NAME),freq/10, freq % 10); + strcpy(presets[num_presets].name, buf); + presets[num_presets].frequency = curr_freq; + menu_insert(preset_menu, -1, + presets[num_presets].name, 0); + num_presets++; + } - if(num_presets > 0 ){ - curr_freq = presets[0].frequency; - radio_set(RADIO_FREQUENCY, curr_freq); - remember_frequency(); - } - exit = true; - break; + curr_freq += FREQ_STEP; + + } - default: - /* ignore button releases */ - if (!(btn & BUTTON_REL)) - exit = true; - break; + rebuild_preset_menu(); + radio_save_presets(); + + if(num_presets > 0 ){ + curr_freq = presets[0].frequency; + radio_set(RADIO_FREQUENCY, curr_freq); + remember_frequency(); } } return true; -- cgit v1.2.3