Index: apps/recorder/radio.c =================================================================== --- apps/recorder/radio.c (revision 14687) +++ apps/recorder/radio.c (working copy) @@ -66,6 +66,8 @@ #if CONFIG_TUNER +#define FMJINGLE_DIR FMPRESET_PATH "/jingles" + #if CONFIG_KEYPAD == RECORDER_PAD #define FM_RECORD #define FM_PRESET_ADD @@ -315,6 +317,18 @@ return i; } +static void talk_preset(void) +{ + char jingle_filename[MAX_PATH+1]; + + snprintf(jingle_filename, sizeof(jingle_filename), "%s/%s.mp3", + FMJINGLE_DIR, presets[curr_preset].name); + + if (talk_file(jingle_filename, false) <= 0) + if (talk_menus_enabled()) + talk_value(curr_freq / 1000, UNIT_KHZ, false); +} + static void remember_frequency(void) { const struct fm_region_data * const fmr = @@ -337,7 +351,10 @@ /* Must stay on the current grid for the region */ curr_freq = snap_freq_to_grid(presets[curr_preset].frequency); + talk_preset(); + tuner_set(RADIO_FREQUENCY, curr_freq); + remember_frequency(); } @@ -374,6 +391,9 @@ if (radio_status == FMRADIO_PLAYING) tuner_set(RADIO_MUTE, 1); + if (talk_menus_enabled()) + talk_value(curr_freq / 1000, UNIT_KHZ, false); + tuner_set(RADIO_FREQUENCY, curr_freq); if (radio_status == FMRADIO_PLAYING) @@ -491,9 +511,10 @@ scan_presets(); curr_preset = find_preset(curr_freq); - if(curr_preset != -1) + if(curr_preset != -1) { radio_mode = RADIO_PRESET_MODE; - + talk_preset(); + } #ifdef HAS_BUTTONBAR gui_buttonbar_set(&buttonbar, str(LANG_BUTTONBAR_MENU), str(LANG_PRESET), str(LANG_FM_BUTTONBAR_RECORD));