9bf3d2883aa8bc693933f873dd747bed818b69c1
[kugel-rb.git] / firmware / drivers / audio / sdl.c
blob9bf3d2883aa8bc693933f873dd747bed818b69c1
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"
26 /**
27 * Audio Hardware api. Make them do nothing as we cannot properly simulate with
28 * SDL. if we used DSP we would run code that doesn't actually run on the target
29 **/
31 extern void pcm_set_mixer_volume(int);
33 void audiohw_set_volume(int volume)
35 pcm_set_mixer_volume(
36 SDL_MIX_MAXVOLUME * ((volume - VOLUME_MIN) / 10) / (VOLUME_RANGE / 10));
39 const struct sound_settings_info audiohw_settings[] = {
40 [SOUND_VOLUME] = {"dB", 0, 1, VOLUME_MIN / 10, VOLUME_MAX / 10, -25},
41 /* Bass and treble tone controls */
42 #ifdef AUDIOHW_HAVE_BASS
43 [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0},
44 #endif
45 #ifdef AUDIOHW_HAVE_TREBLE
46 [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0},
47 #endif
48 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0},
49 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0},
50 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100},
51 #if defined(HAVE_RECORDING)
52 [SOUND_LEFT_GAIN] = {"dB", 1, 1,-128, 96, 0},
53 [SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0},
54 [SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16},
55 #endif
56 #if defined(AUDIOHW_HAVE_BASS_CUTOFF)
57 [SOUND_BASS_CUTOFF] = {"", 0, 1, 1, 4, 1},
58 #endif
59 #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF)
60 [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1},
61 #endif
62 #if defined(AUDIOHW_HAVE_DEPTH_3D)
63 [SOUND_DEPTH_3D] = {"%", 0, 1, 0, 15, 0},
64 #endif
65 /* Hardware EQ tone controls */
66 #if defined(AUDIOHW_HAVE_EQ_BAND1)
67 [SOUND_EQ_BAND1_GAIN] = {"dB", 0, 1, -12, 12, 0},
68 #endif
69 #if defined(AUDIOHW_HAVE_EQ_BAND2)
70 [SOUND_EQ_BAND2_GAIN] = {"dB", 0, 1, -12, 12, 0},
71 #endif
72 #if defined(AUDIOHW_HAVE_EQ_BAND3)
73 [SOUND_EQ_BAND3_GAIN] = {"dB", 0, 1, -12, 12, 0},
74 #endif
75 #if defined(AUDIOHW_HAVE_EQ_BAND4)
76 [SOUND_EQ_BAND4_GAIN] = {"dB", 0, 1, -12, 12, 0},
77 #endif
78 #if defined(AUDIOHW_HAVE_EQ_BAND5)
79 [SOUND_EQ_BAND5_GAIN] = {"dB", 0, 1, -12, 12, 0},
80 #endif
81 #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY)
82 [SOUND_EQ_BAND1_FREQUENCY] = {"", 0, 1, 1, 4, 1},
83 #endif
84 #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY)
85 [SOUND_EQ_BAND2_FREQUENCY] = {"", 0, 1, 1, 4, 1},
86 #endif
87 #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY)
88 [SOUND_EQ_BAND3_FREQUENCY] = {"", 0, 1, 1, 4, 1},
89 #endif
90 #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY)
91 [SOUND_EQ_BAND4_FREQUENCY] = {"", 0, 1, 1, 4, 1},
92 #endif
93 #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY)
94 [SOUND_EQ_BAND5_FREQUENCY] = {"", 0, 1, 1, 4, 1},
95 #endif
96 #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH)
97 [SOUND_EQ_BAND2_WIDTH] = {"", 0, 1, 0, 1, 0},
98 #endif
99 #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH)
100 [SOUND_EQ_BAND3_WIDTH] = {"", 0, 1, 0, 1, 0},
101 #endif
102 #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH)
103 [SOUND_EQ_BAND4_WIDTH] = {"", 0, 1, 0, 1, 0},
104 #endif
106 #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
107 [SOUND_LOUDNESS] = {"dB", 0, 1, 0, 17, 0},
108 [SOUND_AVC] = {"", 0, 1, -1, 4, 0},
109 [SOUND_MDB_STRENGTH] = {"dB", 0, 1, 0, 127, 48},
110 [SOUND_MDB_HARMONICS] = {"%", 0, 1, 0, 100, 50},
111 [SOUND_MDB_CENTER] = {"Hz", 0, 10, 20, 300, 60},
112 [SOUND_MDB_SHAPE] = {"Hz", 0, 10, 50, 300, 90},
113 [SOUND_MDB_ENABLE] = {"", 0, 1, 0, 1, 0},
114 [SOUND_SUPERBASS] = {"", 0, 1, 0, 1, 0},
115 #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */
119 * stubs here, for the simulator
122 #if defined(AUDIOHW_HAVE_PRESCALER)
123 void audiohw_set_prescaler(int value) { (void)value; }
124 #endif
125 #if defined(AUDIOHW_HAVE_BALANCE)
126 void audiohw_set_balance(int value) { (void)value; }
127 #endif
128 #if defined(AUDIOHW_HAVE_BASS)
129 void audiohw_set_bass(int value) { (void)value; }
130 #endif
131 #if defined(AUDIOHW_HAVE_TREBLE)
132 void audiohw_set_treble(int value) { (void)value; }
133 #endif
134 #if CONFIG_CODEC != SWCODEC
135 void audiohw_set_channel(int value) { (void)value; }
136 void audiohw_set_stereo_width(int value){ (void)value; }
137 #endif
138 #if defined(AUDIOHW_HAVE_BASS_CUTOFF)
139 void audiohw_set_bass_cutoff(int value) { (void)value; }
140 #endif
141 #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF)
142 void audiohw_set_treble_cutoff(int value){ (void)value; }
143 #endif
144 /* EQ-based tone controls */
145 #if defined(AUDIOHW_HAVE_EQ)
146 void audiohw_set_eq_band_gain(unsigned int band, int value)
147 { (void)band; (void)value; }
148 #endif
149 #if defined(AUDIOHW_HAVE_EQ_FREQUENCY)
150 void audiohw_set_eq_band_frequency(unsigned int band, int value)
151 { (void)band; (void)value; }
152 #endif
153 #if defined(AUDIOHW_HAVE_EQ_WIDTH)
154 void audiohw_set_eq_band_width(unsigned int band, int value)
155 { (void)band; (void)value; }
156 #endif
157 #if defined(AUDIOHW_HAVE_DEPTH_3D)
158 void audiohw_set_depth_3d(int value)
159 { (void)value; }
160 #endif
161 #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
162 int mas_codec_readreg(int reg)
164 (void)reg;
165 return 0;
168 int mas_codec_writereg(int reg, unsigned int val)
170 (void)reg;
171 (void)val;
172 return 0;
174 int mas_writemem(int bank, int addr, const unsigned long* src, int len)
176 (void)bank;
177 (void)addr;
178 (void)src;
179 (void)len;
180 return 0;
182 #endif