summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--post_proc/equalizer.c39
1 files changed, 30 insertions, 9 deletions
diff --git a/post_proc/equalizer.c b/post_proc/equalizer.c
index a26e4131..9af4ff0d 100644
--- a/post_proc/equalizer.c
+++ b/post_proc/equalizer.c
@@ -264,8 +264,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p,
case EQ_PARAM_BAND_LEVEL:
param2 = *param_tmp;
- if (param2 >= NUM_EQ_BANDS) {
+ if (param2 < 0 || param2 >= NUM_EQ_BANDS) {
p->status = -EINVAL;
+ if (param2 < 0) {
+ android_errorWriteLog(0x534e4554, "32438598");
+ ALOGW("\tERROR EQ_PARAM_BAND_LEVEL band %d", param2);
+ }
break;
}
*(int16_t *)value = (int16_t)equalizer_get_band_level(eq_ctxt, param2);
@@ -273,8 +277,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p,
case EQ_PARAM_CENTER_FREQ:
param2 = *param_tmp;
- if (param2 >= NUM_EQ_BANDS) {
- p->status = -EINVAL;
+ if (param2 < 0 || param2 >= NUM_EQ_BANDS) {
+ p->status = -EINVAL;
+ if (param2 < 0) {
+ android_errorWriteLog(0x534e4554, "32436341");
+ ALOGW("\tERROR EQ_PARAM_CENTER_FREQ band %d", param2);
+ }
break;
}
*(int32_t *)value = equalizer_get_center_frequency(eq_ctxt, param2);
@@ -282,8 +290,12 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p,
case EQ_PARAM_BAND_FREQ_RANGE:
param2 = *param_tmp;
- if (param2 >= NUM_EQ_BANDS) {
+ if (param2 < 0 || param2 >= NUM_EQ_BANDS) {
p->status = -EINVAL;
+ if (param2 < 0) {
+ android_errorWriteLog(0x534e4554, "32247948");
+ ALOGW("\tERROR EQ_PARAM_BAND_FREQ_RANGE band %d", param2);
+ }
break;
}
equalizer_get_band_freq_range(eq_ctxt, param2, (uint32_t *)value,
@@ -306,9 +318,14 @@ int equalizer_get_parameter(effect_context_t *context, effect_param_t *p,
case EQ_PARAM_GET_PRESET_NAME:
param2 = *param_tmp;
ALOGV("%s: EQ_PARAM_GET_PRESET_NAME: param2: %d", __func__, param2);
- if (param2 >= equalizer_get_num_presets(eq_ctxt)) {
- p->status = -EINVAL;
- break;
+ if ((param2 < 0 && param2 != PRESET_CUSTOM) ||
+ param2 >= equalizer_get_num_presets(eq_ctxt)) {
+ p->status = -EINVAL;
+ if (param2 < 0) {
+ android_errorWriteLog(0x534e4554, "32588016");
+ ALOGW("\tERROR EQ_PARAM_GET_PRESET_NAME preset %d", param2);
+ }
+ break;
}
name = (char *)value;
strlcpy(name, equalizer_get_preset_name(eq_ctxt, param2), p->vsize - 1);
@@ -363,8 +380,12 @@ int equalizer_set_parameter(effect_context_t *context, effect_param_t *p,
case EQ_PARAM_BAND_LEVEL:
band = *param_tmp;
level = (int32_t)(*(int16_t *)value);
- if (band >= NUM_EQ_BANDS) {
- p->status = -EINVAL;
+ if (band < 0 || band >= NUM_EQ_BANDS) {
+ p->status = -EINVAL;
+ if (band < 0) {
+ android_errorWriteLog(0x534e4554, "32585400");
+ ALOGW("\tERROR EQ_PARAM_BAND_LEVEL band %d", band);
+ }
break;
}
equalizer_set_band_level(eq_ctxt, band, level);