Audio effects: aligned Equalizer API argument types on OpenSL ES SLEqualizerItf.
Modified types of some arguments and returned values of the Equalizer class from int to short to match those defined by OpenSL ES SLEqualizerItf interface. Also fixed a problem with set properties in equalizer engine implementation. Change-Id: I75894bad0cb67b01c18ca5e22f9687e75ee491b8
This commit is contained in:
@ -182,9 +182,9 @@ public class Equalizer extends AudioEffect {
|
|||||||
}
|
}
|
||||||
int[] param = new int[1];
|
int[] param = new int[1];
|
||||||
param[0] = PARAM_NUM_BANDS;
|
param[0] = PARAM_NUM_BANDS;
|
||||||
short[] value = new short[1];
|
short[] result = new short[1];
|
||||||
checkStatus(getParameter(param, value));
|
checkStatus(getParameter(param, result));
|
||||||
mNumBands = value[0];
|
mNumBands = result[0];
|
||||||
return mNumBands;
|
return mNumBands;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,16 +199,8 @@ public class Equalizer extends AudioEffect {
|
|||||||
*/
|
*/
|
||||||
public short[] getBandLevelRange()
|
public short[] getBandLevelRange()
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[1];
|
|
||||||
int[] value = new int[2];
|
|
||||||
param[0] = PARAM_LEVEL_RANGE;
|
|
||||||
checkStatus(getParameter(param, value));
|
|
||||||
|
|
||||||
short[] result = new short[2];
|
short[] result = new short[2];
|
||||||
|
checkStatus(getParameter(PARAM_LEVEL_RANGE, result));
|
||||||
result[0] = (short)value[0];
|
|
||||||
result[1] = (short)value[1];
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,14 +214,14 @@ public class Equalizer extends AudioEffect {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws UnsupportedOperationException
|
* @throws UnsupportedOperationException
|
||||||
*/
|
*/
|
||||||
public void setBandLevel(int band, short level)
|
public void setBandLevel(short band, short level)
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[2];
|
int[] param = new int[2];
|
||||||
int[] value = new int[1];
|
short[] value = new short[1];
|
||||||
|
|
||||||
param[0] = PARAM_BAND_LEVEL;
|
param[0] = PARAM_BAND_LEVEL;
|
||||||
param[1] = band;
|
param[1] = (int)band;
|
||||||
value[0] = (int)level;
|
value[0] = level;
|
||||||
checkStatus(setParameter(param, value));
|
checkStatus(setParameter(param, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,16 +234,16 @@ public class Equalizer extends AudioEffect {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws UnsupportedOperationException
|
* @throws UnsupportedOperationException
|
||||||
*/
|
*/
|
||||||
public short getBandLevel(int band)
|
public short getBandLevel(short band)
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[2];
|
int[] param = new int[2];
|
||||||
int[] result = new int[1];
|
short[] result = new short[1];
|
||||||
|
|
||||||
param[0] = PARAM_BAND_LEVEL;
|
param[0] = PARAM_BAND_LEVEL;
|
||||||
param[1] = band;
|
param[1] = (int)band;
|
||||||
checkStatus(getParameter(param, result));
|
checkStatus(getParameter(param, result));
|
||||||
|
|
||||||
return (short)result[0];
|
return result[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -264,13 +256,13 @@ public class Equalizer extends AudioEffect {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws UnsupportedOperationException
|
* @throws UnsupportedOperationException
|
||||||
*/
|
*/
|
||||||
public int getCenterFreq(int band)
|
public int getCenterFreq(short band)
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[2];
|
int[] param = new int[2];
|
||||||
int[] result = new int[1];
|
int[] result = new int[1];
|
||||||
|
|
||||||
param[0] = PARAM_CENTER_FREQ;
|
param[0] = PARAM_CENTER_FREQ;
|
||||||
param[1] = band;
|
param[1] = (int)band;
|
||||||
checkStatus(getParameter(param, result));
|
checkStatus(getParameter(param, result));
|
||||||
|
|
||||||
return result[0];
|
return result[0];
|
||||||
@ -286,12 +278,12 @@ public class Equalizer extends AudioEffect {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws UnsupportedOperationException
|
* @throws UnsupportedOperationException
|
||||||
*/
|
*/
|
||||||
public int[] getBandFreqRange(int band)
|
public int[] getBandFreqRange(short band)
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[2];
|
int[] param = new int[2];
|
||||||
int[] result = new int[2];
|
int[] result = new int[2];
|
||||||
param[0] = PARAM_BAND_FREQ_RANGE;
|
param[0] = PARAM_BAND_FREQ_RANGE;
|
||||||
param[1] = band;
|
param[1] = (int)band;
|
||||||
checkStatus(getParameter(param, result));
|
checkStatus(getParameter(param, result));
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -305,10 +297,10 @@ public class Equalizer extends AudioEffect {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws UnsupportedOperationException
|
* @throws UnsupportedOperationException
|
||||||
*/
|
*/
|
||||||
public int getBand(int frequency)
|
public short getBand(int frequency)
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[2];
|
int[] param = new int[2];
|
||||||
int[] result = new int[1];
|
short[] result = new short[1];
|
||||||
|
|
||||||
param[0] = PARAM_GET_BAND;
|
param[0] = PARAM_GET_BAND;
|
||||||
param[1] = frequency;
|
param[1] = frequency;
|
||||||
@ -326,11 +318,9 @@ public class Equalizer extends AudioEffect {
|
|||||||
*/
|
*/
|
||||||
public short getCurrentPreset()
|
public short getCurrentPreset()
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[1];
|
short[] result = new short[1];
|
||||||
param[0] = PARAM_CURRENT_PRESET;
|
checkStatus(getParameter(PARAM_CURRENT_PRESET, result));
|
||||||
short[] value = new short[1];
|
return result[0];
|
||||||
checkStatus(getParameter(param, value));
|
|
||||||
return value[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -356,11 +346,9 @@ public class Equalizer extends AudioEffect {
|
|||||||
*/
|
*/
|
||||||
public short getNumberOfPresets()
|
public short getNumberOfPresets()
|
||||||
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException {
|
||||||
int[] param = new int[1];
|
short[] result = new short[1];
|
||||||
param[0] = PARAM_GET_NUM_OF_PRESETS;
|
checkStatus(getParameter(PARAM_GET_NUM_OF_PRESETS, result));
|
||||||
short[] value = new short[1];
|
return result[0];
|
||||||
checkStatus(getParameter(param, value));
|
|
||||||
return value[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1848,6 +1848,8 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
case EQ_PARAM_NUM_BANDS:
|
case EQ_PARAM_NUM_BANDS:
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
||||||
|
case EQ_PARAM_BAND_LEVEL:
|
||||||
|
case EQ_PARAM_GET_BAND:
|
||||||
if (*pValueSize < sizeof(int16_t)) {
|
if (*pValueSize < sizeof(int16_t)) {
|
||||||
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 1 %d", *pValueSize);
|
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 1 %d", *pValueSize);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -1856,6 +1858,13 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_LEVEL_RANGE:
|
case EQ_PARAM_LEVEL_RANGE:
|
||||||
|
if (*pValueSize < 2 * sizeof(int16_t)) {
|
||||||
|
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 2 %d", *pValueSize);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
*pValueSize = 2 * sizeof(int16_t);
|
||||||
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_BAND_FREQ_RANGE:
|
case EQ_PARAM_BAND_FREQ_RANGE:
|
||||||
if (*pValueSize < 2 * sizeof(int32_t)) {
|
if (*pValueSize < 2 * sizeof(int32_t)) {
|
||||||
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 2 %d", *pValueSize);
|
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 2 %d", *pValueSize);
|
||||||
@ -1863,8 +1872,7 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
}
|
}
|
||||||
*pValueSize = 2 * sizeof(int32_t);
|
*pValueSize = 2 * sizeof(int32_t);
|
||||||
break;
|
break;
|
||||||
case EQ_PARAM_BAND_LEVEL:
|
|
||||||
case EQ_PARAM_GET_BAND:
|
|
||||||
case EQ_PARAM_CENTER_FREQ:
|
case EQ_PARAM_CENTER_FREQ:
|
||||||
if (*pValueSize < sizeof(int32_t)) {
|
if (*pValueSize < sizeof(int32_t)) {
|
||||||
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 1 %d", *pValueSize);
|
LOGV("\tLVM_ERROR : Equalizer_getParameter() invalid pValueSize 1 %d", *pValueSize);
|
||||||
@ -1891,13 +1899,13 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
|
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case EQ_PARAM_NUM_BANDS:
|
case EQ_PARAM_NUM_BANDS:
|
||||||
*(int16_t *)pValue = FIVEBAND_NUMBANDS;
|
*(uint16_t *)pValue = (uint16_t)FIVEBAND_NUMBANDS;
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_NUM_BANDS %d", *(int16_t *)pValue);
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_NUM_BANDS %d", *(int16_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_LEVEL_RANGE:
|
case EQ_PARAM_LEVEL_RANGE:
|
||||||
*(int32_t *)pValue = -1500;
|
*(int16_t *)pValue = -1500;
|
||||||
*((int32_t *)pValue + 1) = 1500;
|
*((int16_t *)pValue + 1) = 1500;
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_LEVEL_RANGE min %d, max %d",
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_LEVEL_RANGE min %d, max %d",
|
||||||
// *(int32_t *)pValue, *((int32_t *)pValue + 1));
|
// *(int32_t *)pValue, *((int32_t *)pValue + 1));
|
||||||
break;
|
break;
|
||||||
@ -1908,7 +1916,7 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*(int32_t *)pValue = EqualizerGetBandLevel(pContext, param2);
|
*(int16_t *)pValue = (int16_t)EqualizerGetBandLevel(pContext, param2);
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_BAND_LEVEL band %d, level %d",
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_BAND_LEVEL band %d, level %d",
|
||||||
// param2, *(int32_t *)pValue);
|
// param2, *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
@ -1937,18 +1945,18 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
|
|
||||||
case EQ_PARAM_GET_BAND:
|
case EQ_PARAM_GET_BAND:
|
||||||
param2 = *pParam;
|
param2 = *pParam;
|
||||||
*(int32_t *)pValue = EqualizerGetBand(pContext, param2);
|
*(uint16_t *)pValue = (uint16_t)EqualizerGetBand(pContext, param2);
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_GET_BAND frequency %d, band %d",
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_GET_BAND frequency %d, band %d",
|
||||||
// param2, *(int32_t *)pValue);
|
// param2, *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
*(int16_t *)pValue = EqualizerGetPreset(pContext);
|
*(uint16_t *)pValue = (uint16_t)EqualizerGetPreset(pContext);
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_CUR_PRESET %d", *(int32_t *)pValue);
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_CUR_PRESET %d", *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
||||||
*(int16_t *)pValue = EqualizerGetNumPresets();
|
*(uint16_t *)pValue = (uint16_t)EqualizerGetNumPresets();
|
||||||
//LOGV("\tEqualizer_getParameter() EQ_PARAM_GET_NUM_OF_PRESETS %d", *(int16_t *)pValue);
|
//LOGV("\tEqualizer_getParameter() EQ_PARAM_GET_NUM_OF_PRESETS %d", *(int16_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1968,12 +1976,12 @@ int Equalizer_getParameter(EffectContext *pContext,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_PROPERTIES: {
|
case EQ_PARAM_PROPERTIES: {
|
||||||
uint16_t *p = (uint16_t *)pValue;
|
int16_t *p = (int16_t *)pValue;
|
||||||
LOGV("\tEqualizer_getParameter() EQ_PARAM_PROPERTIES");
|
LOGV("\tEqualizer_getParameter() EQ_PARAM_PROPERTIES");
|
||||||
p[0] = EqualizerGetPreset(pContext);
|
p[0] = (int16_t)EqualizerGetPreset(pContext);
|
||||||
p[1] = FIVEBAND_NUMBANDS;
|
p[1] = (int16_t)FIVEBAND_NUMBANDS;
|
||||||
for (int i = 0; i < FIVEBAND_NUMBANDS; i++) {
|
for (int i = 0; i < FIVEBAND_NUMBANDS; i++) {
|
||||||
p[2 + i] = EqualizerGetBandLevel(pContext, i);
|
p[2 + i] = (int16_t)EqualizerGetBandLevel(pContext, i);
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
@ -2011,7 +2019,7 @@ int Equalizer_setParameter (EffectContext *pContext, int32_t *pParam, void *pVal
|
|||||||
//LOGV("\tEqualizer_setParameter start");
|
//LOGV("\tEqualizer_setParameter start");
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
preset = *(int16_t *)pValue;
|
preset = (int32_t)(*(uint16_t *)pValue);
|
||||||
|
|
||||||
//LOGV("\tEqualizer_setParameter() EQ_PARAM_CUR_PRESET %d", preset);
|
//LOGV("\tEqualizer_setParameter() EQ_PARAM_CUR_PRESET %d", preset);
|
||||||
if ((preset >= EqualizerGetNumPresets())||(preset < 0)) {
|
if ((preset >= EqualizerGetNumPresets())||(preset < 0)) {
|
||||||
@ -2022,7 +2030,7 @@ int Equalizer_setParameter (EffectContext *pContext, int32_t *pParam, void *pVal
|
|||||||
break;
|
break;
|
||||||
case EQ_PARAM_BAND_LEVEL:
|
case EQ_PARAM_BAND_LEVEL:
|
||||||
band = *pParam;
|
band = *pParam;
|
||||||
level = *(int32_t *)pValue;
|
level = (int32_t)(*(int16_t *)pValue);
|
||||||
//LOGV("\tEqualizer_setParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", band, level);
|
//LOGV("\tEqualizer_setParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", band, level);
|
||||||
if (band >= FIVEBAND_NUMBANDS) {
|
if (band >= FIVEBAND_NUMBANDS) {
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
@ -2030,8 +2038,28 @@ int Equalizer_setParameter (EffectContext *pContext, int32_t *pParam, void *pVal
|
|||||||
}
|
}
|
||||||
EqualizerSetBandLevel(pContext, band, level);
|
EqualizerSetBandLevel(pContext, band, level);
|
||||||
break;
|
break;
|
||||||
|
case EQ_PARAM_PROPERTIES: {
|
||||||
|
//LOGV("\tEqualizer_setParameter() EQ_PARAM_PROPERTIES");
|
||||||
|
int16_t *p = (int16_t *)pValue;
|
||||||
|
if ((int)p[0] >= EqualizerGetNumPresets()) {
|
||||||
|
status = -EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (p[0] >= 0) {
|
||||||
|
EqualizerSetPreset(pContext, (int)p[0]);
|
||||||
|
} else {
|
||||||
|
if ((int)p[1] != FIVEBAND_NUMBANDS) {
|
||||||
|
status = -EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < FIVEBAND_NUMBANDS; i++) {
|
||||||
|
EqualizerSetBandLevel(pContext, i, (int)p[2 + i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} break;
|
||||||
default:
|
default:
|
||||||
LOGV("\tLVM_ERROR : setParameter() invalid param %d", param);
|
LOGV("\tLVM_ERROR : setParameter() invalid param %d", param);
|
||||||
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,6 +350,8 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
case EQ_PARAM_NUM_BANDS:
|
case EQ_PARAM_NUM_BANDS:
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
||||||
|
case EQ_PARAM_BAND_LEVEL:
|
||||||
|
case EQ_PARAM_GET_BAND:
|
||||||
if (*pValueSize < sizeof(int16_t)) {
|
if (*pValueSize < sizeof(int16_t)) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -357,14 +359,19 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_LEVEL_RANGE:
|
case EQ_PARAM_LEVEL_RANGE:
|
||||||
|
if (*pValueSize < 2 * sizeof(int16_t)) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
*pValueSize = 2 * sizeof(int16_t);
|
||||||
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_BAND_FREQ_RANGE:
|
case EQ_PARAM_BAND_FREQ_RANGE:
|
||||||
if (*pValueSize < 2 * sizeof(int32_t)) {
|
if (*pValueSize < 2 * sizeof(int32_t)) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
*pValueSize = 2 * sizeof(int32_t);
|
*pValueSize = 2 * sizeof(int32_t);
|
||||||
break;
|
break;
|
||||||
case EQ_PARAM_BAND_LEVEL:
|
|
||||||
case EQ_PARAM_GET_BAND:
|
|
||||||
case EQ_PARAM_CENTER_FREQ:
|
case EQ_PARAM_CENTER_FREQ:
|
||||||
if (*pValueSize < sizeof(int32_t)) {
|
if (*pValueSize < sizeof(int32_t)) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -375,19 +382,26 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
case EQ_PARAM_GET_PRESET_NAME:
|
case EQ_PARAM_GET_PRESET_NAME:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EQ_PARAM_PROPERTIES:
|
||||||
|
if (*pValueSize < (2 + kNumBands) * sizeof(uint16_t)) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
*pValueSize = (2 + kNumBands) * sizeof(uint16_t);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case EQ_PARAM_NUM_BANDS:
|
case EQ_PARAM_NUM_BANDS:
|
||||||
*(int16_t *)pValue = kNumBands;
|
*(uint16_t *)pValue = (uint16_t)kNumBands;
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_NUM_BANDS %d", *(int16_t *)pValue);
|
LOGV("Equalizer_getParameter() EQ_PARAM_NUM_BANDS %d", *(int16_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_LEVEL_RANGE:
|
case EQ_PARAM_LEVEL_RANGE:
|
||||||
*(int32_t *)pValue = -9600;
|
*(int16_t *)pValue = -9600;
|
||||||
*((int32_t *)pValue + 1) = 4800;
|
*((int16_t *)pValue + 1) = 4800;
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_LEVEL_RANGE min %d, max %d", *(int32_t *)pValue, *((int32_t *)pValue + 1));
|
LOGV("Equalizer_getParameter() EQ_PARAM_LEVEL_RANGE min %d, max %d", *(int32_t *)pValue, *((int32_t *)pValue + 1));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -397,7 +411,7 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
*(int32_t *)pValue = pEqualizer->getGain(param2);
|
*(int16_t *)pValue = (int16_t)pEqualizer->getGain(param2);
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", param2, *(int32_t *)pValue);
|
LOGV("Equalizer_getParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", param2, *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -423,17 +437,17 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
|
|
||||||
case EQ_PARAM_GET_BAND:
|
case EQ_PARAM_GET_BAND:
|
||||||
param2 = *pParam;
|
param2 = *pParam;
|
||||||
*(int32_t *)pValue = pEqualizer->getMostRelevantBand(param2);
|
*(uint16_t *)pValue = (uint16_t)pEqualizer->getMostRelevantBand(param2);
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_GET_BAND frequency %d, band %d", param2, *(int32_t *)pValue);
|
LOGV("Equalizer_getParameter() EQ_PARAM_GET_BAND frequency %d, band %d", param2, *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
*(int16_t *)pValue = pEqualizer->getPreset();
|
*(uint16_t *)pValue = (uint16_t)pEqualizer->getPreset();
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_CUR_PRESET %d", *(int32_t *)pValue);
|
LOGV("Equalizer_getParameter() EQ_PARAM_CUR_PRESET %d", *(int32_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
case EQ_PARAM_GET_NUM_OF_PRESETS:
|
||||||
*(int16_t *)pValue = pEqualizer->getNumPresets();
|
*(uint16_t *)pValue = (uint16_t)pEqualizer->getNumPresets();
|
||||||
LOGV("Equalizer_getParameter() EQ_PARAM_GET_NUM_OF_PRESETS %d", *(int16_t *)pValue);
|
LOGV("Equalizer_getParameter() EQ_PARAM_GET_NUM_OF_PRESETS %d", *(int16_t *)pValue);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -450,6 +464,16 @@ int Equalizer_getParameter(AudioEqualizer * pEqualizer, int32_t *pParam, size_t
|
|||||||
LOGV("Equalizer_getParameter() EQ_PARAM_GET_PRESET_NAME preset %d, name %s len %d", param2, gEqualizerPresets[param2].name, *pValueSize);
|
LOGV("Equalizer_getParameter() EQ_PARAM_GET_PRESET_NAME preset %d, name %s len %d", param2, gEqualizerPresets[param2].name, *pValueSize);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EQ_PARAM_PROPERTIES: {
|
||||||
|
int16_t *p = (int16_t *)pValue;
|
||||||
|
LOGV("Equalizer_getParameter() EQ_PARAM_PROPERTIES");
|
||||||
|
p[0] = (int16_t)pEqualizer->getPreset();
|
||||||
|
p[1] = (int16_t)kNumBands;
|
||||||
|
for (int i = 0; i < kNumBands; i++) {
|
||||||
|
p[2 + i] = (int16_t)pEqualizer->getGain(i);
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOGV("Equalizer_getParameter() invalid param %d", param);
|
LOGV("Equalizer_getParameter() invalid param %d", param);
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
@ -489,10 +513,10 @@ int Equalizer_setParameter (AudioEqualizer * pEqualizer, int32_t *pParam, void *
|
|||||||
|
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case EQ_PARAM_CUR_PRESET:
|
case EQ_PARAM_CUR_PRESET:
|
||||||
preset = *(int16_t *)pValue;
|
preset = (int32_t)(*(uint16_t *)pValue);
|
||||||
|
|
||||||
LOGV("setParameter() EQ_PARAM_CUR_PRESET %d", preset);
|
LOGV("setParameter() EQ_PARAM_CUR_PRESET %d", preset);
|
||||||
if (preset >= pEqualizer->getNumPresets()) {
|
if (preset < 0 || preset >= pEqualizer->getNumPresets()) {
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -501,7 +525,7 @@ int Equalizer_setParameter (AudioEqualizer * pEqualizer, int32_t *pParam, void *
|
|||||||
break;
|
break;
|
||||||
case EQ_PARAM_BAND_LEVEL:
|
case EQ_PARAM_BAND_LEVEL:
|
||||||
band = *pParam;
|
band = *pParam;
|
||||||
level = *(int32_t *)pValue;
|
level = (int32_t)(*(int16_t *)pValue);
|
||||||
LOGV("setParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", band, level);
|
LOGV("setParameter() EQ_PARAM_BAND_LEVEL band %d, level %d", band, level);
|
||||||
if (band >= kNumBands) {
|
if (band >= kNumBands) {
|
||||||
status = -EINVAL;
|
status = -EINVAL;
|
||||||
@ -510,8 +534,29 @@ int Equalizer_setParameter (AudioEqualizer * pEqualizer, int32_t *pParam, void *
|
|||||||
pEqualizer->setGain(band, level);
|
pEqualizer->setGain(band, level);
|
||||||
pEqualizer->commit(true);
|
pEqualizer->commit(true);
|
||||||
break;
|
break;
|
||||||
|
case EQ_PARAM_PROPERTIES: {
|
||||||
|
LOGV("setParameter() EQ_PARAM_PROPERTIES");
|
||||||
|
int16_t *p = (int16_t *)pValue;
|
||||||
|
if ((int)p[0] >= pEqualizer->getNumPresets()) {
|
||||||
|
status = -EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (p[0] >= 0) {
|
||||||
|
pEqualizer->setPreset((int)p[0]);
|
||||||
|
} else {
|
||||||
|
if ((int)p[1] != kNumBands) {
|
||||||
|
status = -EINVAL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < kNumBands; i++) {
|
||||||
|
pEqualizer->setGain(i, (int32_t)p[2 + i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pEqualizer->commit(true);
|
||||||
|
} break;
|
||||||
default:
|
default:
|
||||||
LOGV("setParameter() invalid param %d", param);
|
LOGV("setParameter() invalid param %d", param);
|
||||||
|
status = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user