summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/as3525/audio-as3525.c43
1 files changed, 37 insertions, 6 deletions
diff --git a/firmware/target/arm/as3525/audio-as3525.c b/firmware/target/arm/as3525/audio-as3525.c
index 63aaf367e8..410fdfad79 100644
--- a/firmware/target/arm/as3525/audio-as3525.c
+++ b/firmware/target/arm/as3525/audio-as3525.c
@@ -7,7 +7,7 @@
7 * \/ \/ \/ \/ \/ 7 * \/ \/ \/ \/ \/
8 * $Id$ 8 * $Id$
9 * 9 *
10 * Copyright © 2008 Rafaël Carré 10 * Copyright (C) 2009 by Bertrik Sikken
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License 13 * modify it under the terms of the GNU General Public License
@@ -18,20 +18,51 @@
18 * KIND, either express or implied. 18 * KIND, either express or implied.
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21#include "config.h"
21#include "system.h" 22#include "system.h"
22#include "cpu.h" 23#include "cpu.h"
23#include "audio.h" 24#include "audio.h"
25#include "audiohw.h"
24#include "sound.h" 26#include "sound.h"
25 27
26/* TODO */ 28int audio_channels = 2;
29int audio_output_source = AUDIO_SRC_PLAYBACK;
27 30
28void audio_set_output_source(int source) 31void audio_set_output_source(int source)
29{ 32{
30 (void)source; 33 if ((unsigned)source >= AUDIO_NUM_SOURCES)
31} 34 source = AUDIO_SRC_PLAYBACK;
35
36 audio_output_source = source;
37} /* audio_set_output_source */
32 38
33void audio_input_mux(int source, unsigned flags) 39void audio_input_mux(int source, unsigned flags)
34{ 40{
35 (void)source; 41 static int last_source = AUDIO_SRC_PLAYBACK;
42
36 (void)flags; 43 (void)flags;
37} 44
45 switch (source)
46 {
47 default: /* playback - no recording */
48 source = AUDIO_SRC_PLAYBACK;
49 case AUDIO_SRC_PLAYBACK:
50 audio_channels = 2;
51 if (source != last_source)
52 {
53 audiohw_set_monitor(false);
54 }
55 break;
56
57 case AUDIO_SRC_FMRADIO: /* recording and playback */
58 audio_channels = 2;
59 if (source == last_source)
60 break;
61
62 audiohw_set_monitor(true);
63 break;
64 } /* end switch */
65
66 last_source = source;
67} /* audio_input_mux */
68