1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Anton Oleynikov 2005-11-19 14:54:41 +00:00
parent 8690a394b1
commit 0afd9716a4

View file

@ -55,6 +55,7 @@
#include "statusbar.h" #include "statusbar.h"
#include "textarea.h" #include "textarea.h"
#include "splash.h" #include "splash.h"
#include "yesno.h"
#ifdef CONFIG_TUNER #ifdef CONFIG_TUNER
@ -1185,76 +1186,57 @@ static bool toggle_mono_mode(void)
static bool scan_presets(void) static bool scan_presets(void)
{ {
bool exit = false;
bool tuned = false; bool tuned = false;
char buf[32]; char buf[32];
int freq, i; int freq, i;
char *lines[]={str(LANG_FM_CLEAR_PRESETS)};
struct text_message message={lines, 1};
FOR_NB_SCREENS(i){ if(gui_syncyesno_run(&message,NULL,NULL)==YESNO_YES){
gui_textarea_clear(&screens[i]); FOR_NB_SCREENS(i)
screens[i].puts_scroll(0,0,str(LANG_FM_CLEAR_PRESETS)); gui_textarea_clear(&screens[i]);
screens[i].puts_scroll(0,2,str(LANG_CONFIRM_WITH_PLAY_RECORDER)); curr_freq = MIN_FREQ;
screens[i].puts_scroll(0,3,str(LANG_CANCEL_WITH_ANY_RECORDER)); num_presets = 0;
gui_textarea_update(&screens[i]); while(curr_freq <= MAX_FREQ){
} if (num_presets >= MAX_PRESETS)
break;
while (!exit) { freq = curr_freq /100000;
int btn = button_get(true); snprintf(buf, 32, str(LANG_FM_SCANNING), freq/10, freq % 10);
switch (btn) { gui_syncsplash(0, true, buf);
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; /* Tune in and delay */
snprintf(buf, 32, str(LANG_FM_SCANNING), freq/10, freq % 10); radio_set(RADIO_FREQUENCY, curr_freq);
gui_syncsplash(0, true, buf); sleep(1);
/* Tune in and delay */
radio_set(RADIO_FREQUENCY, curr_freq);
sleep(1);
/* Start IF measurement */ /* Start IF measurement */
radio_set(RADIO_IF_MEASUREMENT, 1); radio_set(RADIO_IF_MEASUREMENT, 1);
sleep(1); sleep(1);
/* Now check how close to the IF frequency we are */ /* Now check how close to the IF frequency we are */
tuned = radio_get(RADIO_TUNED); tuned = radio_get(RADIO_TUNED);
/* add preset */ /* add preset */
if(tuned){ if(tuned){
snprintf(buf, 32, str(LANG_FM_DEFAULT_PRESET_NAME),freq/10, freq % 10); snprintf(buf, 32, str(LANG_FM_DEFAULT_PRESET_NAME),freq/10, freq % 10);
strcpy(presets[num_presets].name, buf); strcpy(presets[num_presets].name, buf);
presets[num_presets].frequency = curr_freq; presets[num_presets].frequency = curr_freq;
menu_insert(preset_menu, -1, menu_insert(preset_menu, -1,
presets[num_presets].name, 0); presets[num_presets].name, 0);
num_presets++; num_presets++;
} }
curr_freq += FREQ_STEP; curr_freq += FREQ_STEP;
} }
rebuild_preset_menu(); rebuild_preset_menu();
radio_save_presets(); radio_save_presets();
if(num_presets > 0 ){ if(num_presets > 0 ){
curr_freq = presets[0].frequency; curr_freq = presets[0].frequency;
radio_set(RADIO_FREQUENCY, curr_freq); radio_set(RADIO_FREQUENCY, curr_freq);
remember_frequency(); remember_frequency();
}
exit = true;
break;
default:
/* ignore button releases */
if (!(btn & BUTTON_REL))
exit = true;
break;
} }
} }
return true; return true;