From 0c86463646b58f4ea5c722d036b75aa75d925914 Mon Sep 17 00:00:00 2001 From: Iscle Date: Sat, 23 Mar 2024 01:54:16 +0100 Subject: [PATCH] Add new setter functions --- src/ViPER4Android.h | 4 ++++ src/ViperContext.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/ViPER4Android.h b/src/ViPER4Android.h index 439b349..e09ab83 100644 --- a/src/ViPER4Android.h +++ b/src/ViPER4Android.h @@ -44,4 +44,8 @@ typedef enum { PARAM_SET_FIELD_SURROUND_MID_IMAGE, PARAM_SET_IIR_EQUALIZER_ENABLE, PARAM_SET_IIR_EQUALIZER_BAND_LEVEL, + PARAM_SET_SPECTRUM_EXTENSION_ENABLE, + PARAM_SET_SPECTRUM_EXTENSION_STRENGTH, + PARAM_SET_HEADPHONE_SURROUND_ENABLE, + PARAM_SET_HEADPHONE_SURROUND_LEVEL, } param_set_t; diff --git a/src/ViperContext.cpp b/src/ViperContext.cpp index 69ec4cc..70474e6 100644 --- a/src/ViperContext.cpp +++ b/src/ViperContext.cpp @@ -487,6 +487,46 @@ int32_t ViperContext::handleSetParam(effect_param_t *pCmdParam, void *pReplyData viper.iirFilter.SetBandLevel(band, static_cast(level) / 100.0f); return 0; } + case PARAM_SET_SPECTRUM_EXTENSION_ENABLE: { + if (pCmdParam->vsize != sizeof(uint8_t)) { + VIPER_LOGE("handleSetParam() PARAM_SET_SPECTRUM_EXTENSION_ENABLE called with invalid vsize = %d, expected vsize = %zu", pCmdParam->vsize, sizeof(uint8_t)); + return -EINVAL; + } + bool enable = *(uint8_t *) (pCmdParam->data + vOffset) != 0; + VIPER_LOGD("handleSetParam() PARAM_SET_SPECTRUM_EXTENSION_ENABLE called with enable = %d", enable); + viper.spectrumExtend.SetEnable(enable); + return 0; + } + case PARAM_SET_SPECTRUM_EXTENSION_STRENGTH: { + if (pCmdParam->vsize != sizeof(uint8_t)) { + VIPER_LOGE("handleSetParam() PARAM_SET_SPECTRUM_EXTENSION_STRENGTH called with invalid vsize = %d, expected vsize = %zu", pCmdParam->vsize, sizeof(uint8_t)); + return -EINVAL; + } + uint8_t strength = *(uint8_t *) (pCmdParam->data + vOffset); + VIPER_LOGD("handleSetParam() PARAM_SET_SPECTRUM_EXTENSION_STRENGTH called with strength = %d", strength); + viper.spectrumExtend.SetExciter(static_cast(strength) / 100.0f); + return 0; + } + case PARAM_SET_HEADPHONE_SURROUND_ENABLE: { + if (pCmdParam->vsize != sizeof(uint8_t)) { + VIPER_LOGE("handleSetParam() PARAM_SET_HEADPHONE_SURROUND_ENABLE called with invalid vsize = %d, expected vsize = %zu", pCmdParam->vsize, sizeof(uint8_t)); + return -EINVAL; + } + bool enable = *(uint8_t *) (pCmdParam->data + vOffset) != 0; + VIPER_LOGD("handleSetParam() PARAM_SET_HEADPHONE_SURROUND_ENABLE called with enable = %d", enable); + viper.vhe.SetEnable(enable); + return 0; + } + case PARAM_SET_HEADPHONE_SURROUND_LEVEL: { + if (pCmdParam->vsize != sizeof(uint8_t)) { + VIPER_LOGE("handleSetParam() PARAM_SET_HEADPHONE_SURROUND_LEVEL called with invalid vsize = %d, expected vsize = %zu", pCmdParam->vsize, sizeof(uint8_t)); + return -EINVAL; + } + uint8_t level = *(uint8_t *) (pCmdParam->data + vOffset); + VIPER_LOGD("handleSetParam() PARAM_SET_HEADPHONE_SURROUND_LEVEL called with level = %d", level); + viper.vhe.SetEffectLevel(level); + return 0; + } default: { VIPER_LOGE("handleSetParam() called with unknown key: %d", key); return -EINVAL;