Index: apps/plugins/doom/i_sound.c =================================================================== --- apps/plugins/doom/i_sound.c (revision 13795) +++ apps/plugins/doom/i_sound.c (working copy) @@ -494,7 +494,7 @@ #if INPUT_SRC_CAPS != 0 /* Select playback */ - rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK); + rb->audio_set_input_source(AUDIO_SRC_FMPLAY,SRCF_PLAYBACK); rb->audio_set_output_source(AUDIO_SRC_PLAYBACK); #endif rb->pcm_set_frequency(SAMPLERATE); Index: apps/audio_path.c =================================================================== --- apps/audio_path.c (revision 13795) +++ apps/audio_path.c (working copy) @@ -85,8 +85,8 @@ /** Tuner **/ #if CONFIG_TUNER /* Switch radio off or on per source and flags. */ - if (source != AUDIO_SRC_FMRADIO) - radio_stop(); + if (source != AUDIO_SRC_FMRADIO && source != AUDIO_SRC_FMPLAY) + radio_stop(); else if (flags & SRCF_FMRADIO_PAUSED) radio_pause(); else Index: firmware/export/audio.h =================================================================== --- firmware/export/audio.h (revision 13795) +++ firmware/export/audio.h (working copy) @@ -133,7 +133,7 @@ HAVE_MIC_IN_(AUDIO_SRC_MIC,) HAVE_LINE_IN_(AUDIO_SRC_LINEIN,) HAVE_SPDIF_IN_(AUDIO_SRC_SPDIF,) - HAVE_FMRADIO_IN_(AUDIO_SRC_FMRADIO,) + HAVE_FMRADIO_IN_(AUDIO_SRC_FMRADIO, AUDIO_SRC_FMPLAY,) AUDIO_NUM_SOURCES, AUDIO_SRC_MAX = AUDIO_NUM_SOURCES-1, AUDIO_SRC_DEFAULT = AUDIO_SRC_PLAYBACK Index: firmware/target/coldfire/iaudio/x5/audio-x5.c =================================================================== --- firmware/target/coldfire/iaudio/x5/audio-x5.c (revision 13795) +++ firmware/target/coldfire/iaudio/x5/audio-x5.c (working copy) @@ -55,6 +55,14 @@ coldfire_set_dataincontrol(0); } break; + case AUDIO_SRC_FMPLAY: + if (source != last_source) + { + audiohw_disable_recording(); + audiohw_set_monitor(true); + coldfire_set_dataincontrol(0); + } + break; case AUDIO_SRC_MIC: /* recording only */ if (source != last_source) @@ -100,7 +108,7 @@ } /* end switch */ /* set line multiplexer */ - if (source == AUDIO_SRC_FMRADIO) + if (source == AUDIO_SRC_FMRADIO || source == AUDIO_SRC_FMPLAY) and_l(~(1 << 29), &GPIO_OUT); /* FM radio */ else or_l((1 << 29), &GPIO_OUT); /* Line In */