Should clear up rest of red. Add a required #define in the config for c200. Fix up...
[kugel-rb.git] / firmware / drivers / audio / sdl.c
blob7d6d7452df413e070960e7b0d86f13d0dc367f04
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright © 2010 Thomas Martitz
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #include <SDL_audio.h>
23 #include "config.h"
24 #include "audiohw.h"
25 #include "pcm_sampr.h"
27 /**
28 * Audio Hardware api. Make them do nothing as we cannot properly simulate with
29 * SDL. if we used DSP we would run code that doesn't actually run on the target
30 **/
32 extern void pcm_set_mixer_volume(int);
34 void audiohw_set_volume(int volume)
36 #if CONFIG_CODEC == SWCODEC
37 pcm_set_mixer_volume(
38 SDL_MIX_MAXVOLUME * ((volume - VOLUME_MIN) / 10) / (VOLUME_RANGE / 10));
39 #else
40 (void)volume;
41 #endif
44 const struct sound_settings_info audiohw_settings[] = {
45 [SOUND_VOLUME] = {"dB", 0, 1, VOLUME_MIN / 10, VOLUME_MAX / 10, -25},
46 /* Bass and treble tone controls */
47 #ifdef AUDIOHW_HAVE_BASS
48 [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0},
49 #endif
50 #ifdef AUDIOHW_HAVE_TREBLE
51 [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0},
52 #endif
53 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0},
54 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0},
55 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100},
56 #if defined(HAVE_RECORDING)
57 [SOUND_LEFT_GAIN] = {"dB", 1, 1,-128, 96, 0},
58 [SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0},
59 [SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16},
60 #endif
61 #if defined(AUDIOHW_HAVE_BASS_CUTOFF)
62 [SOUND_BASS_CUTOFF] = {"", 0, 1, 1, 4, 1},
63 #endif
64 #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF)
65 [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1},
66 #endif
67 #if defined(AUDIOHW_HAVE_DEPTH_3D)
68 [SOUND_DEPTH_3D] = {"%", 0, 1, 0, 15, 0},
69 #endif
70 /* Hardware EQ tone controls */
71 #if defined(AUDIOHW_HAVE_EQ_BAND1)
72 [SOUND_EQ_BAND1_GAIN] = {"dB", 0, 1, -12, 12, 0},
73 #endif
74 #if defined(AUDIOHW_HAVE_EQ_BAND2)
75 [SOUND_EQ_BAND2_GAIN] = {"dB", 0, 1, -12, 12, 0},
76 #endif
77 #if defined(AUDIOHW_HAVE_EQ_BAND3)
78 [SOUND_EQ_BAND3_GAIN] = {"dB", 0, 1, -12, 12, 0},
79 #endif
80 #if defined(AUDIOHW_HAVE_EQ_BAND4)
81 [SOUND_EQ_BAND4_GAIN] = {"dB", 0, 1, -12, 12, 0},
82 #endif
83 #if defined(AUDIOHW_HAVE_EQ_BAND5)
84 [SOUND_EQ_BAND5_GAIN] = {"dB", 0, 1, -12, 12, 0},
85 #endif
86 #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY)
87 [SOUND_EQ_BAND1_FREQUENCY] = {"", 0, 1, 1, 4, 1},
88 #endif
89 #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY)
90 [SOUND_EQ_BAND2_FREQUENCY] = {"", 0, 1, 1, 4, 1},
91 #endif
92 #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY)
93 [SOUND_EQ_BAND3_FREQUENCY] = {"", 0, 1, 1, 4, 1},
94 #endif
95 #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY)
96 [SOUND_EQ_BAND4_FREQUENCY] = {"", 0, 1, 1, 4, 1},
97 #endif
98 #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY)
99 [SOUND_EQ_BAND5_FREQUENCY] = {"", 0, 1, 1, 4, 1},
100 #endif
101 #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH)
102 [SOUND_EQ_BAND2_WIDTH] = {"", 0, 1, 0, 1, 0},
103 #endif
104 #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH)
105 [SOUND_EQ_BAND3_WIDTH] = {"", 0, 1, 0, 1, 0},
106 #endif
107 #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH)
108 [SOUND_EQ_BAND4_WIDTH] = {"", 0, 1, 0, 1, 0},
109 #endif
111 #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
112 [SOUND_LOUDNESS] = {"dB", 0, 1, 0, 17, 0},
113 [SOUND_AVC] = {"", 0, 1, -1, 4, 0},
114 [SOUND_MDB_STRENGTH] = {"dB", 0, 1, 0, 127, 48},
115 [SOUND_MDB_HARMONICS] = {"%", 0, 1, 0, 100, 50},
116 [SOUND_MDB_CENTER] = {"Hz", 0, 10, 20, 300, 60},
117 [SOUND_MDB_SHAPE] = {"Hz", 0, 10, 50, 300, 90},
118 [SOUND_MDB_ENABLE] = {"", 0, 1, 0, 1, 0},
119 [SOUND_SUPERBASS] = {"", 0, 1, 0, 1, 0},
120 #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */
124 * stubs here, for the simulator
127 #if defined(AUDIOHW_HAVE_PRESCALER)
128 void audiohw_set_prescaler(int value) { (void)value; }
129 #endif
130 #if defined(AUDIOHW_HAVE_BALANCE)
131 void audiohw_set_balance(int value) { (void)value; }
132 #endif
133 #if defined(AUDIOHW_HAVE_BASS)
134 void audiohw_set_bass(int value) { (void)value; }
135 #endif
136 #if defined(AUDIOHW_HAVE_TREBLE)
137 void audiohw_set_treble(int value) { (void)value; }
138 #endif
139 #if CONFIG_CODEC != SWCODEC
140 void audiohw_set_channel(int value) { (void)value; }
141 void audiohw_set_stereo_width(int value){ (void)value; }
142 #endif
143 #if defined(AUDIOHW_HAVE_BASS_CUTOFF)
144 void audiohw_set_bass_cutoff(int value) { (void)value; }
145 #endif
146 #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF)
147 void audiohw_set_treble_cutoff(int value){ (void)value; }
148 #endif
149 /* EQ-based tone controls */
150 #if defined(AUDIOHW_HAVE_EQ)
151 void audiohw_set_eq_band_gain(unsigned int band, int value)
152 { (void)band; (void)value; }
153 #endif
154 #if defined(AUDIOHW_HAVE_EQ_FREQUENCY)
155 void audiohw_set_eq_band_frequency(unsigned int band, int value)
156 { (void)band; (void)value; }
157 #endif
158 #if defined(AUDIOHW_HAVE_EQ_WIDTH)
159 void audiohw_set_eq_band_width(unsigned int band, int value)
160 { (void)band; (void)value; }
161 #endif
162 #if defined(AUDIOHW_HAVE_DEPTH_3D)
163 void audiohw_set_depth_3d(int value)
164 { (void)value; }
165 #endif
166 #ifdef HAVE_RECORDING
167 #if SAMPR_TYPE_REC != 0
168 unsigned int pcm_sampr_type_rec_to_play(unsigned int samplerate)
169 { return samplerate; }
170 #endif
171 #endif /* HAVE_RECORDING */
172 #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
173 int mas_codec_readreg(int reg)
175 (void)reg;
176 return 0;
179 int mas_codec_writereg(int reg, unsigned int val)
181 (void)reg;
182 (void)val;
183 return 0;
185 int mas_writemem(int bank, int addr, const unsigned long* src, int len)
187 (void)bank;
188 (void)addr;
189 (void)src;
190 (void)len;
191 return 0;
193 #endif