diff options
author | William Wilgus <me.theuser@yahoo.com> | 2019-07-25 00:48:40 -0500 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2019-07-25 00:48:40 -0500 |
commit | 5f9d1f59d308e5832432d6f3d4e7380ef656521b (patch) | |
tree | 30ceec1aea278524893f7a20808f856eaa3f76bd | |
parent | 7e4902bf6bfcf0acef0889bf4e3fae04a8839079 (diff) | |
download | rockbox-5f9d1f59d308e5832432d6f3d4e7380ef656521b.tar.gz rockbox-5f9d1f59d308e5832432d6f3d4e7380ef656521b.zip |
Add sound_current to plugin api
Adds:
sound_current(int setting)
returns the current sound setting from global_settings
complements sound_max, sound_min and sound_default
Change-Id: I35bd893753c958f808492906fe533edc51d5d57c
-rw-r--r-- | apps/plugin.c | 7 | ||||
-rw-r--r-- | firmware/export/sound.h | 1 | ||||
-rw-r--r-- | firmware/sound.c | 89 |
3 files changed, 90 insertions, 7 deletions
diff --git a/apps/plugin.c b/apps/plugin.c index f9cef981bf..41434f27c4 100644 --- a/apps/plugin.c +++ b/apps/plugin.c | |||
@@ -84,7 +84,6 @@ char *plugin_get_current_filename(void); | |||
84 | static void* plugin_get_audio_buffer(size_t *buffer_size); | 84 | static void* plugin_get_audio_buffer(size_t *buffer_size); |
85 | static void plugin_release_audio_buffer(void); | 85 | static void plugin_release_audio_buffer(void); |
86 | static void plugin_tsr(bool (*exit_callback)(bool)); | 86 | static void plugin_tsr(bool (*exit_callback)(bool)); |
87 | int sound_current(int setting); /*stub*/ | ||
88 | 87 | ||
89 | #ifdef HAVE_PLUGIN_CHECK_OPEN_CLOSE | 88 | #ifdef HAVE_PLUGIN_CHECK_OPEN_CLOSE |
90 | /* File handle leak prophylaxis */ | 89 | /* File handle leak prophylaxis */ |
@@ -1080,9 +1079,3 @@ char *plugin_get_current_filename(void) | |||
1080 | { | 1079 | { |
1081 | return current_plugin; | 1080 | return current_plugin; |
1082 | } | 1081 | } |
1083 | |||
1084 | int sound_current(int setting) /*stub*/ | ||
1085 | { | ||
1086 | (void) setting; | ||
1087 | return 0; | ||
1088 | } | ||
diff --git a/firmware/export/sound.h b/firmware/export/sound.h index 501c6a48a1..3a26e30b68 100644 --- a/firmware/export/sound.h +++ b/firmware/export/sound.h | |||
@@ -31,6 +31,7 @@ int sound_numdecimals(int setting); | |||
31 | int sound_steps(int setting); | 31 | int sound_steps(int setting); |
32 | int sound_min(int setting); | 32 | int sound_min(int setting); |
33 | int sound_max(int setting); | 33 | int sound_max(int setting); |
34 | int sound_current(int setting); | ||
34 | int sound_default(int setting); | 35 | int sound_default(int setting); |
35 | sound_set_type* sound_get_fn(int setting); | 36 | sound_set_type* sound_get_fn(int setting); |
36 | 37 | ||
diff --git a/firmware/sound.c b/firmware/sound.c index a19cc15c41..9db30524d6 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -25,6 +25,8 @@ | |||
25 | #include "config.h" | 25 | #include "config.h" |
26 | #include "system.h" | 26 | #include "system.h" |
27 | #include "sound.h" | 27 | #include "sound.h" |
28 | #include "settings.h" /* sound_current */ | ||
29 | |||
28 | #ifdef HAVE_SW_VOLUME_CONTROL | 30 | #ifdef HAVE_SW_VOLUME_CONTROL |
29 | #include "pcm_sw_volume.h" | 31 | #include "pcm_sw_volume.h" |
30 | #endif /* HAVE_SW_VOLUME_CONTROL */ | 32 | #endif /* HAVE_SW_VOLUME_CONTROL */ |
@@ -37,6 +39,10 @@ | |||
37 | #define AUDIOHW_SOUND_SETTINGS_VAL2PHYS | 39 | #define AUDIOHW_SOUND_SETTINGS_VAL2PHYS |
38 | #include "audiohw_settings.h" | 40 | #include "audiohw_settings.h" |
39 | 41 | ||
42 | /* Returns current sound settings from global_settings */ | ||
43 | #define SOUND_CUR_SET(name, var) \ | ||
44 | case SOUND_##name: return var; | ||
45 | |||
40 | extern bool audio_is_initialized; | 46 | extern bool audio_is_initialized; |
41 | 47 | ||
42 | static const struct sound_setting_entry * get_setting_entry(int setting) | 48 | static const struct sound_setting_entry * get_setting_entry(int setting) |
@@ -102,6 +108,89 @@ void sound_set(int setting, int value) | |||
102 | sound_set_val(value); | 108 | sound_set_val(value); |
103 | } | 109 | } |
104 | 110 | ||
111 | int sound_current(int setting) | ||
112 | { | ||
113 | switch(setting) | ||
114 | { | ||
115 | #ifndef PLATFORM_HAS_VOLUME_CHANGE | ||
116 | SOUND_CUR_SET(VOLUME, global_settings.volume) | ||
117 | #endif | ||
118 | #if defined(AUDIOHW_HAVE_BASS) | ||
119 | SOUND_CUR_SET(BASS, global_settings.bass) | ||
120 | #endif | ||
121 | #if defined(AUDIOHW_HAVE_TREBLE) | ||
122 | SOUND_CUR_SET(TREBLE, global_settings.treble) | ||
123 | #endif | ||
124 | SOUND_CUR_SET(BALANCE, global_settings.balance) | ||
125 | SOUND_CUR_SET(CHANNELS, global_settings.channel_config) | ||
126 | SOUND_CUR_SET(STEREO_WIDTH, global_settings.stereo_width) | ||
127 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
128 | SOUND_CUR_SET(LOUDNESS, global_settings.loudness) | ||
129 | SOUND_CUR_SET(AVC, global_settings.avc) | ||
130 | SOUND_CUR_SET(MDB_STRENGTH, global_settings.mdb_strength) | ||
131 | SOUND_CUR_SET(MDB_HARMONICS, global_settings.mdb_harmonics) | ||
132 | SOUND_CUR_SET(MDB_CENTER, global_settings.mdb_center) | ||
133 | SOUND_CUR_SET(MDB_SHAPE, global_settings.mdb_shape) | ||
134 | SOUND_CUR_SET(MDB_ENABLE, global_settings.mdb_enable) | ||
135 | SOUND_CUR_SET(SUPERBASS, global_settings.superbass) | ||
136 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ | ||
137 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) | ||
138 | SOUND_CUR_SET(BASS_CUTOFF, global_settings.bass_cutoff) | ||
139 | #endif | ||
140 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
141 | SOUND_CUR_SET(TREBLE_CUTOFF, global_settings.treble_cutoff) | ||
142 | #endif | ||
143 | #if defined(AUDIOHW_HAVE_DEPTH_3D) | ||
144 | SOUND_CUR_SET(DEPTH_3D, global_settings.depth_3d) | ||
145 | #endif | ||
146 | #if defined(AUDIOHW_HAVE_FILTER_ROLL_OFF) | ||
147 | SOUND_CUR_SET(FILTER_ROLL_OFF, global_settings.filter_roll_off) | ||
148 | #endif | ||
149 | /* Hardware EQ tone controls */ | ||
150 | #if defined(AUDIOHW_HAVE_EQ) | ||
151 | SOUND_CUR_SET(EQ_BAND1_GAIN, global_settings.hw_eq_band1_gain) | ||
152 | #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY) | ||
153 | SOUND_CUR_SET(EQ_BAND1_FREQUENCY, global_settings.hw_eq_band1_frequency) | ||
154 | #endif | ||
155 | #if defined(AUDIOHW_HAVE_EQ_BAND2) | ||
156 | SOUND_CUR_SET(EQ_BAND2_GAIN, global_settings.hw_eq_band2_gain) | ||
157 | #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY) | ||
158 | SOUND_CUR_SET(EQ_BAND2_FREQUENCY, global_settings.hw_eq_band2_frequency) | ||
159 | #endif | ||
160 | #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH) | ||
161 | SOUND_CUR_SET(EQ_BAND2_WIDTH, global_settings.hw_eq_band2_width) | ||
162 | #endif | ||
163 | #endif /* AUDIOHW_HAVE_EQ_BAND2 */ | ||
164 | #if defined(AUDIOHW_HAVE_EQ_BAND3) | ||
165 | SOUND_CUR_SET(EQ_BAND3_GAIN, global_settings.hw_eq_band3_gain) | ||
166 | #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY) | ||
167 | SOUND_CUR_SET(EQ_BAND3_FREQUENCY, global_settings.hw_eq_band3_frequency) | ||
168 | #endif | ||
169 | #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH) | ||
170 | SOUND_CUR_SET(EQ_BAND3_WIDTH, global_settings.hw_eq_band3_width) | ||
171 | #endif | ||
172 | #endif /* AUDIOHW_HAVE_EQ_BAND3 */ | ||
173 | #if defined(AUDIOHW_HAVE_EQ_BAND4) | ||
174 | SOUND_CUR_SET(EQ_BAND4_GAIN, global_settings.hw_eq_band4_gain) | ||
175 | #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY) | ||
176 | SOUND_CUR_SET(EQ_BAND4_FREQUENCY, global_settings.hw_eq_band4_frequency) | ||
177 | #endif | ||
178 | #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH) | ||
179 | SOUND_CUR_SET(EQ_BAND4_WIDTH, global_settings.hw_eq_band4_width) | ||
180 | #endif | ||
181 | #endif /* AUDIOHW_HAVE_EQ_BAND4 */ | ||
182 | #if defined(AUDIOHW_HAVE_EQ_BAND5) | ||
183 | SOUND_CUR_SET(EQ_BAND5_GAIN, global_settings.hw_eq_band5_gain) | ||
184 | #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY) | ||
185 | SOUND_CUR_SET(EQ_BAND5_FREQUENCY, global_settings.hw_eq_band5_frequency) | ||
186 | #endif | ||
187 | #endif /* AUDIOHW_HAVE_EQ_BAND5 */ | ||
188 | #endif /* AUDIOHW_HAVE_EQ */ | ||
189 | default: | ||
190 | return INT_MIN; | ||
191 | } /* switch(setting) */ | ||
192 | }/* sound_current */ | ||
193 | |||
105 | #if !defined(AUDIOHW_HAVE_CLIPPING) | 194 | #if !defined(AUDIOHW_HAVE_CLIPPING) |
106 | /* | 195 | /* |
107 | * The prescaler compensates for any kind of boosts, to prevent clipping. | 196 | * The prescaler compensates for any kind of boosts, to prevent clipping. |