diff options
Diffstat (limited to 'firmware/target/arm')
-rw-r--r-- | firmware/target/arm/as3525/audio-as3525.c | 43 |
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 */ | 28 | int audio_channels = 2; |
29 | int audio_output_source = AUDIO_SRC_PLAYBACK; | ||
27 | 30 | ||
28 | void audio_set_output_source(int source) | 31 | void 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 | ||
33 | void audio_input_mux(int source, unsigned flags) | 39 | void 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 | |||