Index: trunk/apps/recorder/radio.c =================================================================== --- trunk.orig/apps/recorder/radio.c +++ trunk/apps/recorder/radio.c @@ -439,6 +439,7 @@ int radio_screen(void) int hours, minutes; struct audio_recording_options rec_options; #endif /* CONFIG_CODEC != SWCODEC */ + int repeating = false; #ifndef HAVE_NOISY_IDLE_MODE int button_timeout = current_tick + (2*HZ); #endif @@ -645,6 +646,7 @@ int radio_screen(void) case ACTION_STD_PREV: case ACTION_STD_NEXT: + repeating = false; next_station(button == ACTION_STD_PREV ? -1 : 1); end_search(); update_screen = true; @@ -654,7 +656,6 @@ int radio_screen(void) case ACTION_STD_PREVREPEAT: case ACTION_STD_NEXTREPEAT: { - int dir = search_dir; search_dir = button == ACTION_STD_PREVREPEAT ? -1 : 1; if (radio_mode != RADIO_SCAN_MODE) { @@ -663,12 +664,13 @@ int radio_screen(void) update_screen = true; talk = true; } - else if (dir == 0) + else if (!repeating) { + repeating = true; /* Starting auto scan */ tuner_set(RADIO_MUTE, 1); update_screen = true; - } + }else search_dir = 0; break; }