author | Jian Xu <jian.xu@amlogic.com> | 2019-09-18 02:42:19 (GMT) |
---|---|---|
committer | Gerrit Code Review <gituser@scgit2.amlogic.com> | 2019-09-18 02:42:19 (GMT) |
commit | c87c9a3b6c94c083fb31d99aa9b05ace67c35696 (patch) | |
tree | eca6e997a6280759c62743a7cf7b2aba8d8fdb2e | |
parent | 7c33718f1ba7081ed9235b88330e33bcc35f31b7 (diff) | |
parent | b982f0cbdd8a077be63b1f37c47a735584822fad (diff) | |
download | av-c87c9a3b6c94c083fb31d99aa9b05ace67c35696.zip av-c87c9a3b6c94c083fb31d99aa9b05ace67c35696.tar.gz av-c87c9a3b6c94c083fb31d99aa9b05ace67c35696.tar.bz2 |
Merge "audio: effect: virtualx support 5.1 ch input [2/2]" into o-amlogic
-rw-r--r-- | libaudioeffect/VirtualX/Android.mk | 4 | ||||
-rw-r--r-- | libaudioeffect/VirtualX/Virtualx.cpp | 652 | ||||
-rw-r--r-- | libaudioeffect/VirtualX/Virtualx.h | 101 | ||||
-rw-r--r-- | libaudioeffect/effects_tool/Android.mk | 23 | ||||
-rw-r--r-- | libaudioeffect/effects_tool/main.cpp | 1298 | ||||
-rw-r--r-- | libaudioeffect/effects_tool/main2.cpp | 2012 |
6 files changed, 3429 insertions, 661 deletions
diff --git a/libaudioeffect/VirtualX/Android.mk b/libaudioeffect/VirtualX/Android.mk index 22f1699..c5930c2 100644 --- a/libaudioeffect/VirtualX/Android.mk +++ b/libaudioeffect/VirtualX/Android.mk @@ -12,14 +12,14 @@ LOCAL_SHARED_LIBRARIES := \ libcutils \ libdl \ libutils \ - libamaudioutils + libamaudioutils \ LOCAL_C_INCLUDES := \ $(LOCAL_PATH) \ hardware/amlogic/audio/utils/ini/include \ hardware/libhardware/include/hardware \ hardware/libhardware/include \ - system/media/audio/include + system/media/audio/include \ LOCAL_SRC_FILES := Virtualx.cpp diff --git a/libaudioeffect/VirtualX/Virtualx.cpp b/libaudioeffect/VirtualX/Virtualx.cpp index ea1a421..3487bbb 100644 --- a/libaudioeffect/VirtualX/Virtualx.cpp +++ b/libaudioeffect/VirtualX/Virtualx.cpp @@ -40,13 +40,12 @@ #include <pthread.h> #include <cutils/properties.h> - extern "C" { #define MODEL_SUM_DEFAULT_PATH "/vendor/etc/tvconfig/model/model_sum.ini" #define AUDIO_EFFECT_DEFAULT_PATH "/vendor/etc/tvconfig/audio/AMLOGIC_AUDIO_EFFECT_DEFAULT.ini" -#define DTS_VIRTUALX_FRAME_SIZE 256 -#define DTS_FXP32( val, x ) ( int32_t )( val * ( ( int64_t )1L << ( 32 - x ) ) ) +#define DTS_VIRTUALX_FRAME_SIZE 256 +#define DTS_FXP32(val, x) (int32_t)(val * ((int64_t)1L << (32 - x))) #if defined(__LP64__) #define LIBVX_PATH_A "/vendor/lib64/soundfx/libvx.so" @@ -70,103 +69,17 @@ const effect_descriptor_t VirtualxDescriptor = { "VirtualX", "DTS Labs", }; + enum Virtualx_state_e { VIRTUALX_STATE_UNINITIALIZED, VIRTUALX_STATE_INITIALIZED, VIRTUALX_STATE_ACTIVE, }; -typedef enum { - VIRTUALX_MODE_STANDARD = 0, - VIRTUALX_MODE_MUSIC, - VIRTUALX_MODE_MOVIE, - VIRTUALX_MODE_CLEAR_VOICE, - VIRTUALX_MODE_ENHANCED_BASS, - VIRTUALX_MODE_CUSTOM, - VIRTUALX_MODE_NUM, -} VXmode; - -typedef enum { - VIRTUALX_PARAM_ENABLE = 0, - VIRTUALX_PARAM_DIALOGCLARTY_MODE = 1, - VIRTUALX_PARAM_SURROUND_MODE = 2, - DTS_PARAM_MBHL_ENABLE_I32 = 3, - DTS_PARAM_MBHL_BYPASS_GAIN_I32 = 4, - DTS_PARAM_MBHL_REFERENCE_LEVEL_I32 = 5, - DTS_PARAM_MBHL_VOLUME_I32 = 6, - DTS_PARAM_MBHL_VOLUME_STEP_I32 = 7, - DTS_PARAM_MBHL_BALANCE_STEP_I32 = 8, - DTS_PARAM_MBHL_OUTPUT_GAIN_I32 = 9, - DTS_PARAM_MBHL_MODE_I32 = 10, - DTS_PARAM_MBHL_PROCESS_DISCARD_I32 = 11, - DTS_PARAM_MBHL_CROSS_LOW_I32 = 12, - DTS_PARAM_MBHL_CROSS_MID_I32 = 13, - DTS_PARAM_MBHL_COMP_ATTACK_I32 = 14, - DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32 = 15, - DTS_PARAM_MBHL_COMP_LOW_RATIO_I32 = 16, - DTS_PARAM_MBHL_COMP_LOW_THRESH_I32 = 17, - DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32 = 18, - DTS_PARAM_MBHL_COMP_MID_RELEASE_I32 = 19, - DTS_PARAM_MBHL_COMP_MID_RATIO_I32 = 20, - DTS_PARAM_MBHL_COMP_MID_THRESH_I32 = 21, - DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32 = 22, - DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32 = 23, - DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32 = 24, - DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32 = 25, - DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32 = 26, - DTS_PARAM_MBHL_BOOST_I32 = 27, - DTS_PARAM_MBHL_THRESHOLD_I32 = 28, - DTS_PARAM_MBHL_SLOW_OFFSET_I32 = 29, - DTS_PARAM_MBHL_FAST_ATTACK_I32 = 30, - DTS_PARAM_MBHL_FAST_RELEASE_I32 = 31, - DTS_PARAM_MBHL_SLOW_ATTACK_I32 = 32, - DTS_PARAM_MBHL_SLOW_RELEASE_I32 = 33, - DTS_PARAM_MBHL_DELAY_I32 = 34, - DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32 = 35, - DTS_PARAM_TBHDX_ENABLE_I32 = 36, - DTS_PARAM_TBHDX_MONO_MODE_I32 = 37, - DTS_PARAM_TBHDX_MAXGAIN_I32 = 38, - DTS_PARAM_TBHDX_SPKSIZE_I32 = 39, - DTS_PARAM_TBHDX_HP_ENABLE_I32 = 40, - DTS_PARAM_TBHDX_TEMP_GAIN_I32 = 41, - DTS_PARAM_TBHDX_PROCESS_DISCARD_I32 = 42, - DTS_PARAM_TBHDX_HPORDER_I32 = 43, - DTS_PARAM_VX_ENABLE_I32 = 44, - DTS_PARAM_VX_INPUT_MODE_I32 = 45, - DTS_PARAM_VX_OUTPUT_MODE_I32 = 46, - DTS_PARAM_VX_HEADROOM_GAIN_I32 = 47, - DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32 = 48, - DTS_PARAM_VX_REFERENCE_LEVEL_I32 = 49, - DTS_PARAM_TSX_ENABLE_I32 = 50, - DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32 = 51, - DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32 = 52, - DTS_PARAM_TSX_LPR_GAIN_I32 = 53, - DTS_PARAM_TSX_CENTER_GAIN_I32 = 54, - DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32 = 55, - DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32 = 56, - DTS_PARAM_TSX_PROCESS_DISCARD_I32 = 57, - DTS_PARAM_TSX_HEIGHT_DISCARD_I32 = 58, - DTS_PARAM_TSX_FRNT_CTRL_I32 = 59, - DTS_PARAM_TSX_SRND_CTRL_I32 = 60, - DTS_PARAM_VX_DC_ENABLE_I32 = 61, - DTS_PARAM_VX_DC_CONTROL_I32 = 62, - DTS_PARAM_VX_DEF_ENABLE_I32 = 63, - DTS_PARAM_VX_DEF_CONTROL_I32 = 64, - DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32 = 65, - DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32 = 66, - DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32 = 67, - DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32 = 68, - DTS_PARAM_TBHDX_APP_SPKSIZE_I32 = 69, - DTS_PARAM_TBHDX_APP_HPRATIO_F32 = 70, - DTS_PARAM_TBHDX_APP_EXTBASS_F32 = 71, - DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32 = 72, - DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32 = 73, - -}Virtualxparams; typedef struct Virtualxapi_s { int (*VX_init)(void *); int (*VX_release)(void); - int (*VX_process)(int32_t **in,int32_t **out); + int (*VX_process)(int32_t **in,int32_t **out,int ch); int (*MBHL_process)(int32_t **in,int32_t **out); int (*setvxlib1_enable)(int32_t value); int (*getvxlib1_enable)(int32_t *value); @@ -296,6 +209,7 @@ typedef struct Virtualxapi_s { int (*gettruvolume_ctrtarget)(int32_t *value); int (*settruvolume_ctrpreset)(int32_t value); int (*gettruvolume_ctrpreset)(int32_t *value); + int (*setlc_inmode)(int32_t value); int (*settbhd_FilterDesign)(int32_t spksize,float basslvl, float hpratio,float extbass); int (*setmbhl_FilterDesign)(float lowCrossFreq,float midCrossFreq); } Virtualxapi; @@ -375,13 +289,13 @@ typedef struct mbhl_param_s { float mbhl_highratio;//Compressor high ratio float mbhl_highthreshold;//Compressor high threshold float mbhl_highmakegian;//Compressor high makeupgain -}mbhl_param; +} mbhl_param; typedef struct Truvolume_param_s { int32_t enable; int32_t targetlevel; int32_t preset; -}Truvolume_param; +} Truvolume_param; typedef struct TS_cfg_s { vxtrusurround_param vxtrusurround; @@ -389,9 +303,16 @@ typedef struct TS_cfg_s { tbhdx_param tbhdx; } TS_cfg; +static TS_cfg default_TS_cfg { + {1,1,0,1.0,1.0,1.0,1.0,1.0,0,0,1},{0,0.4},{0,0,2,0.3339,0.3,4,1}, +}; typedef struct DC_cfg_s { vxdialogclarity_param vxdialogclarity; - } DC_cfg; +} DC_cfg; + +static DC_cfg default_DC_cfg { + 0,0.4, +}; #define TS_MODE_MUM 2 #define DC_MODE_MUM 3 @@ -402,6 +323,11 @@ typedef struct Virtualxcfg_s { Truvolume_param Truvolume; } Virtualxcfg; +static Virtualxcfg default_Virtualxcfg { + {1,0,0,1.0,1.0},{1,1.0,1.0,1.0,100,0,1.0,1.0,1.0,1.0,5,50,500,500,8,20,0,7,15,5,250,4.0,0.501,1.0,250,4.0,0.501,1.0,250,4.0,0.501,1.0,}, + {1,-24,1}, +}; + typedef struct vxdata_s { struct { int32_t vxlib_enable; @@ -467,13 +393,13 @@ typedef struct vxdata_s { int32_t targetlevel; int32_t preset; }; - int enable; - Virtualxcfg vxcfg; - int counter; - TS_cfg TS_usr_cfg[TS_MODE_MUM]; - DC_cfg DC_usr_cfg[DC_MODE_MUM]; - int dialogclarity_mode; - int surround_mode; + int enable; + Virtualxcfg vxcfg; + int counter; + TS_cfg TS_usr_cfg[TS_MODE_MUM]; + DC_cfg DC_usr_cfg[DC_MODE_MUM]; + int dialogclarity_mode; + int surround_mode; } vxdata; typedef struct vxContext_s { @@ -484,24 +410,17 @@ typedef struct vxContext_s { vxdata gvxdata; Virtualxapi gVirtualxapi; int32_t sTempBuffer[12][256]; + int32_t TempBuffer[12][256]; int32_t *ppMappedInCh[12]; - int32_t *ppMappedOutCh[2]; + int32_t *ppMappedOutCh[12]; + int32_t *ppDataIn[12]; float lowcrossfreq; float midcrossfreq; int32_t spksize; float hpratio; float extbass; -}vxContext; - -static TS_cfg TS_default_usr_cfg[TS_MODE_MUM]__unused = { - {{1, 0, 0, 1.0, 1.0, 1.0, 1.0, 1.0, 0, 0, 1},{1, 0.4},{1, 0, 2, 0.3339, 0.3, 4, 1}},//on - {{1, 1, 0, 1.0, 1.0, 1.0, 1.0, 1.0, 0, 0, 1},{0, 0.4},{0, 0, 2, 0.3339, 0.3, 4, 1}},//off -}; -static DC_cfg DC_default_usr_cfg[DC_MODE_MUM]__unused = { - {{1, 0.0}}, //OFF - {{1, 0.15}}, //LOW - {{1, 0.3}}, //HIGH -}; + int32_t ch_num; +} vxContext; const char *VXStatusstr[] = {"Disable", "Enable"}; const char *VXLibStatusstr[] = {"Disable", "Enable"}; @@ -532,6 +451,7 @@ int Virtualx_get_model_name(char *model_name, int size) ALOGD("%s: Model Name -> %s", __FUNCTION__, model_name); return ret; } + /* static int getprop_bool(const char *path) { @@ -547,6 +467,7 @@ static int getprop_bool(const char *path) return 0; } */ + int Virtualx_get_ini_file(char *ini_name, int size) { int result = -1; @@ -723,7 +644,6 @@ error: return -1; } - int Virtualx_load_ini_file(vxContext *pContext) { int result = -1; @@ -744,6 +664,9 @@ int Virtualx_load_ini_file(vxContext *pContext) goto error; //ALOGD("%s: enable -> %s", __FUNCTION__, ini_value); data->enable = atoi(ini_value); + if (data->enable == 0) { + property_set("media.libplayer.dtsMulChPcm","false"); + } //virtuallibx parse ini_value = pIniParser->GetString("Virtualx", "virtuallibx", "NULL"); if (ini_value == NULL) @@ -1038,7 +961,7 @@ int Virtualx_load_lib(vxContext *pContext) ALOGE("%s: find func VX_release() failed\n", __FUNCTION__); goto Error; } - pContext->gVirtualxapi.VX_process = (int (*)(int32_t **,int32_t**))dlsym(pContext->gVXLibHandler, "VX_process_api"); + pContext->gVirtualxapi.VX_process = (int (*)(int32_t **,int32_t**,int))dlsym(pContext->gVXLibHandler, "VX_process_api"); if (!pContext->gVirtualxapi.VX_process) { ALOGE("%s: find func VX_process() failed\n", __FUNCTION__); goto Error; @@ -1690,6 +1613,11 @@ int Virtualx_load_lib(vxContext *pContext) ALOGE("%s: find func gettruvolume_ctrpreset() failed\n", __FUNCTION__); goto Error; } + pContext->gVirtualxapi.setlc_inmode = (int (*)(int32_t))dlsym(pContext->gVXLibHandler, "setlc_inmode"); + if (!pContext->gVirtualxapi.setlc_inmode) { + ALOGE("%s: find func setlc_inmode() failed\n", __FUNCTION__); + goto Error; + } pContext->gVirtualxapi.settbhd_FilterDesign = (int (*)(int32_t,float,float,float))dlsym(pContext->gVXLibHandler, "settbhd_FilterDesign"); if (!pContext->gVirtualxapi.settbhd_FilterDesign) { ALOGE("%s: find func settbhd_FilterDesign() failed\n", __FUNCTION__); @@ -1700,8 +1628,8 @@ int Virtualx_load_lib(vxContext *pContext) ALOGE("%s: find func setmbhl_FilterDesign() failed\n", __FUNCTION__); return -1; } + property_set("media.libplayer.dtsMulChPcm","true"); ALOGD("%s: sucessful", __FUNCTION__); - return 0; Error: memset(&pContext->gVirtualxapi, 0, sizeof(pContext->gVirtualxapi)); @@ -1742,6 +1670,7 @@ int Virtualx_init(vxContext *pContext) //init counter and value pContext->gvxdata.counter = 0; + pContext->ch_num = 0; pContext->lowcrossfreq = 300; pContext->midcrossfreq = 5000; pContext->spksize = 80; @@ -1810,20 +1739,10 @@ int Virtualx_init(vxContext *pContext) data->targetlevel = data->vxcfg.Truvolume.targetlevel; data->preset = data->vxcfg.Truvolume.preset; //malloc memory for ppMappedInCh[3]~ppMappedInCh[11] to fix crash (null pointer dereference) - pContext->ppMappedInCh[0] = pContext->sTempBuffer[0]; - pContext->ppMappedInCh[1] = pContext->sTempBuffer[1]; - pContext->ppMappedInCh[2] = pContext->sTempBuffer[2]; - pContext->ppMappedInCh[3] = pContext->sTempBuffer[3]; - pContext->ppMappedInCh[4] = pContext->sTempBuffer[4]; - pContext->ppMappedInCh[5] = pContext->sTempBuffer[5]; - pContext->ppMappedInCh[6] = pContext->sTempBuffer[6]; - pContext->ppMappedInCh[7] = pContext->sTempBuffer[7]; - pContext->ppMappedInCh[8] = pContext->sTempBuffer[8]; - pContext->ppMappedInCh[9] = pContext->sTempBuffer[9]; - pContext->ppMappedInCh[10] = pContext->sTempBuffer[10]; - pContext->ppMappedInCh[11] = pContext->sTempBuffer[11]; - pContext->ppMappedOutCh[0] = pContext->sTempBuffer[0]; - pContext->ppMappedOutCh[1] = pContext->sTempBuffer[1]; + for (int i = 0; i < 12; i++) { + pContext->ppDataIn[i] = pContext->sTempBuffer[i]; + pContext->ppMappedOutCh[i] = pContext->TempBuffer[i]; + } if (pContext->gVXLibHandler) { (*pContext->gVirtualxapi.VX_init)((void*) data); @@ -1837,14 +1756,14 @@ int Virtualx_configure(vxContext *pContext, effect_config_t *pConfig) { if (pConfig->inputCfg.samplingRate != pConfig->outputCfg.samplingRate) return -EINVAL; - if (pConfig->inputCfg.channels != pConfig->outputCfg.channels) - return -EINVAL; if (pConfig->inputCfg.format != pConfig->outputCfg.format) return -EINVAL; + /* if (pConfig->inputCfg.channels != AUDIO_CHANNEL_OUT_STEREO) { ALOGW("%s: channels in = 0x%x channels out = 0x%x", __FUNCTION__, pConfig->inputCfg.channels, pConfig->outputCfg.channels); pConfig->inputCfg.channels = pConfig->outputCfg.channels = AUDIO_CHANNEL_OUT_STEREO; } + */ if (pConfig->outputCfg.accessMode != EFFECT_BUFFER_ACCESS_WRITE && pConfig->outputCfg.accessMode != EFFECT_BUFFER_ACCESS_ACCUMULATE) return -EINVAL; @@ -1862,6 +1781,7 @@ int Virtualx_setParameter(vxContext *pContext, void *pParam, void *pValue) int32_t value; float scale; int32_t basslvl; + float * p; vxdata *data = &pContext->gvxdata; switch (param) { case VIRTUALX_PARAM_ENABLE: @@ -1870,6 +1790,11 @@ int Virtualx_setParameter(vxContext *pContext, void *pParam, void *pValue) } value = *(int32_t *)pValue; data->enable = value; + if (data->enable) { + property_set("media.libplayer.dtsMulChPcm","true"); + } else { + property_set("media.libplayer.dtsMulChPcm","false"); + } ALOGD("%s: Set status -> %s", __FUNCTION__, VXStatusstr[value]); break; case VIRTUALX_PARAM_DIALOGCLARTY_MODE: @@ -2306,6 +2231,9 @@ int Virtualx_setParameter(vxContext *pContext, void *pParam, void *pValue) return 0; } value = *(int32_t *)pValue; + if (value > 1) + value = 1; + pContext->ch_num = value; // here to set input ch num (*pContext->gVirtualxapi.setvxlib1_inmode)(value); ALOGD("%s set vxlib1 inmode %d",__FUNCTION__, value); break; @@ -2486,6 +2414,14 @@ int Virtualx_setParameter(vxContext *pContext, void *pParam, void *pValue) (*pContext->gVirtualxapi.settruvolume_ctrpreset)(value); ALOGD("%s set truvolume ctrpreset %d",__FUNCTION__, value); break; + case DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32: + if (!pContext->gVXLibHandler) { + return 0; + } + value = *(int32_t *)pValue; + (*pContext->gVirtualxapi.setlc_inmode)(value); + ALOGD("%s set lc inmode %d",__FUNCTION__, value); + break; case DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32: if (!pContext->gVXLibHandler) { return 0; @@ -2529,6 +2465,374 @@ int Virtualx_setParameter(vxContext *pContext, void *pParam, void *pValue) (*pContext->gVirtualxapi.settbhd_FilterDesign)(pContext->spksize,((float)basslvl)/1073741824.0f,pContext->hpratio,pContext->extbass); ALOGD("%s set tbhd filter design spksize %d hpratio %f extbass %f",__FUNCTION__,pContext->spksize,pContext->hpratio,pContext->extbass); break; + case VIRTUALX_PARAM_COUNTER: + if (!pContext->gVXLibHandler) { + return 0; + } + value = *(int32_t *)pValue; + pContext->gvxdata.counter = value; + /*do nothing*/ + break; + case AUDIO_DTS_PARAM_TYPE_NONE: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + (*pContext->gVirtualxapi.setvxlib1_enable)((int32_t)*p++); + (*pContext->gVirtualxapi.settsx_dcenable)((int32_t)*p); + break; + case AUDIO_DTS_PARAM_TYPE_TRU_SURROUND: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + ALOGV("value1 is %d",value); + if (value > 1) + value = 1; + else if (value < 0) + value = 0; + (*pContext->gVirtualxapi.setvxlib1_enable)(value); + scale = *p++; + if (scale < 0.125) + scale = 0.125; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale2 is %f",scale); + value = DTS_FXP32(scale,2); + (pContext->gVirtualxapi.setvxlib1_heardroomgain)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 4.0) + scale = 4.0; + ALOGV("scale3 is %f",scale); + value = DTS_FXP32(scale,4); + (*pContext->gVirtualxapi.setvxlib1_procoutgain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value4 is %d",value); + (*pContext->gVirtualxapi.settsx_enable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value5 is %d",value); + (*pContext->gVirtualxapi.settsx_pssvmtrxenable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value6 is %d",value); + (*pContext->gVirtualxapi.settsx_horizontctl)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 2.0) + scale = 2.0; + ALOGV("scale7 is %f",scale); + value = DTS_FXP32(scale,3); + (*pContext->gVirtualxapi.settsx_frntctrl)(value); + scale = *p; + if (scale < 0.5) + scale = 0.5; + else if (scale > 2.0) + scale = 2.0; + ALOGV("scale8 is %f",scale); + value = DTS_FXP32(scale,3); + (*pContext->gVirtualxapi.settsx_surroundctrl)(value); + break; + case AUDIO_DTS_PARAM_TYPE_CC3D: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value1 is %d",value); + (*pContext->gVirtualxapi.setvxlib1_enable)(value); + scale = *p++; + if (scale < 0.125) + scale = 0.125; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale2 is %f",scale); + value = DTS_FXP32(scale,2); + (pContext->gVirtualxapi.setvxlib1_heardroomgain)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 4.0) + scale = 4.0; + ALOGV("scale3 is %f",scale); + value = DTS_FXP32(scale,4); + (*pContext->gVirtualxapi.setvxlib1_procoutgain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value4 is %d",value); + (*pContext->gVirtualxapi.settsx_enable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value5 is %d",value); + (*pContext->gVirtualxapi.settsx_pssvmtrxenable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value6 is %d",value); + (*pContext->gVirtualxapi.settsx_hghtupmixenable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value7 is %d",value); + (*pContext->gVirtualxapi.settsx_heightdiscards)(value); + scale = *p; + if (scale < 0.5) + scale = 0.5; + else if (scale > 2.0) + scale = 2.0; + ALOGV("scale8 is %f",scale); + value = DTS_FXP32(scale,3); + (*pContext->gVirtualxapi.settsx_heightmixcoeff)(value); + break; + case AUDIO_DTS_PARAM_TYPE_TRU_BASS: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value1 is %d",value); + (*pContext->gVirtualxapi.setvxlib1_enable)(value); + scale = *p++; + if (scale < 0.125) + scale = 0.125; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale2 is %f",scale); + value = DTS_FXP32(scale,2); + (pContext->gVirtualxapi.setvxlib1_heardroomgain)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 4.0) + scale = 4.0; + ALOGV("scale3 is %f",scale); + value = DTS_FXP32(scale,4); + (*pContext->gVirtualxapi.setvxlib1_procoutgain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value4 is %d",value); + (*pContext->gVirtualxapi.settbhdx_enable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value5 is %d",value); + (*pContext->gVirtualxapi.settbhdx_monomode)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 12) + value = 12; + ALOGV("value6 is %d",value); + (*pContext->gVirtualxapi.settbhdx_spksize)(value); + scale = *p++; + if (scale < 0.0) + scale = 0.0; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale7 is %f",scale); + value = DTS_FXP32(scale,2); + (*pContext->gVirtualxapi.settbhdx_tempgain)(value); + scale = *p++; + if (scale < 0.0) + scale = 0.0; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale8 is %f",scale); + value = DTS_FXP32(scale,2); + (*pContext->gVirtualxapi.settbhdx_maxgain)(value); + value = (int32_t)*p++; + if (value < 1) + value = 1; + else if (value > 8) + value = 8; + ALOGV("value9 is %d",value); + (*pContext->gVirtualxapi.settbhdx_hporder)(value); + value = (int32_t)*p; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value10 is %d",value); + (*pContext->gVirtualxapi.settbhdx_hpenable)(value); + break; + case AUDIO_DTS_PARAM_TYPE_TRU_DIALOG: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + ALOGV("value1 is %d",value); + (*pContext->gVirtualxapi.setvxlib1_enable)(value); + scale = *p++; + if (scale < 0.125) + scale = 0.125; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale2 is %f",scale); + value = DTS_FXP32(scale,2); + (pContext->gVirtualxapi.setvxlib1_heardroomgain)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 4.0) + scale = 4.0; + ALOGV("scale3 is %f",scale); + value = DTS_FXP32(scale,4); + (*pContext->gVirtualxapi.setvxlib1_procoutgain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value4 is %d",value); + (*pContext->gVirtualxapi.settsx_enable)(value); + scale = *p++; + if (scale < 0.0) + scale = 0.0; + else if (scale > 2.0) + scale = 2.0; + ALOGV("scale5 is %f",scale); + value = DTS_FXP32(scale,3); + (*pContext->gVirtualxapi.settsx_lprgain)(value); + scale = *p++; + if (scale < 1.0) + scale = 1.0; + else if (scale > 2.0) + scale = 2.0; + ALOGV("scale6 is %f",scale); + value = DTS_FXP32(scale,3); + (pContext->gVirtualxapi.settsx_centergain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value7 is %d",value); + (*pContext->gVirtualxapi.settsx_dcenable)(value); + scale = *p; + if (scale < 0.0) + scale = 0.0; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale8 is %f",scale); + value = DTS_FXP32(scale,2); + (*pContext->gVirtualxapi.settsx_dccontrol)(value); + break; + case AUDIO_DTS_PARAM_TYPE_DEFINATION: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value1 is %d",value); + (*pContext->gVirtualxapi.setvxlib1_enable)(value); + scale = *p++; + if (scale < 0.125) + scale = 0.125; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale2 is %f",scale); + value = DTS_FXP32(scale,2); + (pContext->gVirtualxapi.setvxlib1_heardroomgain)(value); + scale = *p++; + if (scale < 0.5) + scale = 0.5; + else if (scale > 4.0) + scale = 4.0; + ALOGV("scale3 is %f",scale); + value = DTS_FXP32(scale,4); + (*pContext->gVirtualxapi.setvxlib1_procoutgain)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value4 is %d",value); + (*pContext->gVirtualxapi.settsx_enable)(value); + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value5 is %d",value); + (*pContext->gVirtualxapi.settsx_defenable)(value); + scale = *p; + if (scale < 0.0) + scale = 0.0; + else if (scale > 1.0) + scale = 1.0; + ALOGV("scale6 is %f",scale); + value = DTS_FXP32(scale,2); + (*pContext->gVirtualxapi.settsx_defcontrol)(value); + break; + case AUDIO_DTS_PARAM_TYPE_TRU_VOLUME: + if (!pContext->gVXLibHandler) { + return 0; + } + p = (float *)pValue; + value = (int32_t)*p++; + if (value < 0) + value = 0; + else if (value > 1) + value = 1; + ALOGV("value1 is %d",value); + (*pContext->gVirtualxapi.settruvolume_ctren)(value); + value = (int32_t)*p++; + if (value < -40) + value = -40; + else if (value > 0) + value = 0; + ALOGV("value2 is %d",value); + (*pContext->gVirtualxapi.settruvolume_ctrtarget)(value); + value = (int32_t)*p; + if (value < 0) + value = 0; + else if (value > 2) + value = 2; + ALOGV("value3 is %d",value); + (*pContext->gVirtualxapi.settruvolume_ctrpreset)(value); + break; default: ALOGE("%s: unknown param %08x", __FUNCTION__, param); return -EINVAL; @@ -3393,13 +3697,56 @@ int Virtualx_process(effect_handle_t self, audio_buffer_t *inBuffer, audio_buffe } else { int32_t blockSize = DTS_VIRTUALX_FRAME_SIZE; int32_t blockCount = inBuffer->frameCount / blockSize; + int actual_ch = 0; for (int i = 0; i < blockCount; i++) { for (int sampleCount = 0; sampleCount < 256; sampleCount++) { - pContext->ppMappedInCh[0][sampleCount] = (int32_t(*in++)) << 16; // L & R - pContext->ppMappedInCh[1][sampleCount] = (int32_t(*in++)) << 16; + if (pContext->ch_num == 0 /*for 2ch process*/) { + pContext->ppDataIn[0][sampleCount] = (int32_t(*in++)) << 16; // L & R + pContext->ppDataIn[1][sampleCount] = (int32_t(*in++)) << 16; + for (int i = 2; i < 12; i++) { + pContext->ppDataIn[i][sampleCount] = 0; + } + for (int i = 0; i < 12; i++) { + pContext->ppMappedInCh[i] = pContext->ppDataIn[i]; + } + actual_ch = 2; + } else if (pContext->ch_num == 1 /*for 5.1 ch process*/) { + if (pContext->gvxdata.counter == 0) { + for (int i = 0; i < 6; i++) { + pContext->ppDataIn[i][sampleCount] = (int32_t(*in++)) << 16; + } + for (int i = 6; i < 12; i++) { + pContext->ppDataIn[i][sampleCount] = 0; + } + //channel order C/L/R/Ls/Rs/LFE + pContext->ppMappedInCh[0] = pContext->ppDataIn[2]; + pContext->ppMappedInCh[1] = pContext->ppDataIn[0]; + pContext->ppMappedInCh[2] = pContext->ppDataIn[1]; + pContext->ppMappedInCh[3] = pContext->ppDataIn[4]; + pContext->ppMappedInCh[4] = pContext->ppDataIn[5]; + pContext->ppMappedInCh[5] = pContext->ppDataIn[3]; + pContext->ppMappedInCh[6] = pContext->ppDataIn[6]; + pContext->ppMappedInCh[7] = pContext->ppDataIn[7]; + pContext->ppMappedInCh[8] = pContext->ppDataIn[8]; + pContext->ppMappedInCh[9] = pContext->ppDataIn[9]; + pContext->ppMappedInCh[10] = pContext->ppDataIn[10]; + pContext->ppMappedInCh[11] = pContext->ppDataIn[11]; + actual_ch = 6; + } else { + pContext->ppDataIn[0][sampleCount] = (int32_t(*in++)) << 16; // L & R + pContext->ppDataIn[1][sampleCount] = (int32_t(*in++)) << 16; + for (int i = 2; i < 12; i++) { + pContext->ppDataIn[i][sampleCount] = 0; + } + for (int i = 0; i < 12; i++) { + pContext->ppMappedInCh[i] = pContext->ppDataIn[i]; + } + actual_ch = 2; + } + } } if (pContext->gvxdata.counter == 0) - (*pContext->gVirtualxapi.VX_process)(pContext->ppMappedInCh,pContext->ppMappedOutCh); + (*pContext->gVirtualxapi.VX_process)(pContext->ppMappedInCh,pContext->ppMappedOutCh,actual_ch); else (*pContext->gVirtualxapi.MBHL_process)(pContext->ppMappedInCh,pContext->ppMappedOutCh); for (int sampleCount = 0;sampleCount < 256; sampleCount++) { @@ -3407,9 +3754,6 @@ int Virtualx_process(effect_handle_t self, audio_buffer_t *inBuffer, audio_buffe *out++ = pContext->ppMappedOutCh[1][sampleCount] >> 16; } } - pContext->gvxdata.counter += 1; - if (pContext->gvxdata.counter >= 2) - pContext->gvxdata.counter = 0; } return 0; } @@ -3420,7 +3764,6 @@ int Virtualx_command(effect_handle_t self, uint32_t cmdCode, uint32_t cmdSize, vxContext * pContext = (vxContext *)self; effect_param_t *p; int voffset; - if (pContext == NULL || pContext->state == VIRTUALX_STATE_UNINITIALIZED) return -EINVAL; switch (cmdCode) { @@ -3451,13 +3794,18 @@ int Virtualx_command(effect_handle_t self, uint32_t cmdCode, uint32_t cmdSize, if (pContext->state != VIRTUALX_STATE_ACTIVE) return -ENOSYS; pContext->state = VIRTUALX_STATE_INITIALIZED; + property_set("media.libplayer.dtsMulChPcm","false"); *(int *)pReplyData = 0; break; case EFFECT_CMD_GET_PARAM: if (pCmdData == NULL || cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t)) || pReplyData == NULL || replySize == NULL || - *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t))) + (*replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t)) && + *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 8 * sizeof(float)) && + *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 10 * sizeof(float)) && + *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 6 * sizeof(float)) && + *replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 3 * sizeof(float)))) return -EINVAL; p = (effect_param_t *)pCmdData; memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize); @@ -3470,11 +3818,19 @@ int Virtualx_command(effect_handle_t self, uint32_t cmdCode, uint32_t cmdSize, break; case EFFECT_CMD_SET_PARAM: if (pCmdData == NULL || - cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t)) || - pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) - return -EINVAL; + (cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t)) && + cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 8 * sizeof(float)) && + cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 10 * sizeof(float)) && + cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 6 * sizeof(float)) && + cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + 3 * sizeof(float))) || + pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) { + ALOGE("%s: EFFECT_CMD_SET_PARAM cmd size error!", __FUNCTION__); + return -EINVAL; + } p = (effect_param_t *)pCmdData; - if (p->psize != sizeof(uint32_t) || p->vsize != sizeof(uint32_t)) { + if (p->psize != sizeof(uint32_t) || (p->vsize != sizeof(uint32_t) && p->vsize != 8 * sizeof(float) && + p->vsize != 10 * sizeof(float) && p->vsize != 6 * sizeof(float) && p->vsize != 3 * sizeof(float))) { + ALOGE("%s: EFFECT_CMD_SET_PARAM value size error!", __FUNCTION__); *(int32_t *)pReplyData = -EINVAL; break; } @@ -3527,13 +3883,16 @@ int VirtualxLib_Create(const effect_uuid_t *uuid, int32_t sessionId __unused, in return -EINVAL; } memset(pContext, 0, sizeof(vxContext)); - + memcpy((void *) & pContext->gvxdata.DC_usr_cfg[0], (void *) & default_DC_cfg, sizeof(pContext->gvxdata.DC_usr_cfg[0])); + memcpy((void *) & pContext->gvxdata.TS_usr_cfg[0], (void *) & default_TS_cfg, sizeof(pContext->gvxdata.TS_usr_cfg[0])); + memcpy((void *) & pContext->gvxdata.vxcfg,(void *) & default_Virtualxcfg,sizeof(pContext->gvxdata.vxcfg)); if (Virtualx_load_ini_file(pContext) < 0) { ALOGE("%s: Load INI File faied, use default param", __FUNCTION__); pContext->gvxdata.enable = 1; } if (Virtualx_load_lib(pContext) < 0) { + property_set("media.libplayer.dtsMulChPcm","false"); ALOGE("%s: Load Library File faied", __FUNCTION__); } @@ -3552,7 +3911,6 @@ int VirtualxLib_Create(const effect_uuid_t *uuid, int32_t sessionId __unused, in int VirtualxLib_Release(effect_handle_t handle) { vxContext * pContext = (vxContext *)handle; - int ret = -1; if (pContext == NULL) return -EINVAL; @@ -3560,9 +3918,9 @@ int VirtualxLib_Release(effect_handle_t handle) ALOGE("miss mbhl process"); //return ret; //how to process here } - Virtualx_release(pContext); unload_Virtualx_lib(pContext); + property_set("media.libplayer.dtsMulChPcm","false"); pContext->state = VIRTUALX_STATE_UNINITIALIZED; delete pContext; diff --git a/libaudioeffect/VirtualX/Virtualx.h b/libaudioeffect/VirtualX/Virtualx.h index 30c08f4..f7ac267 100644 --- a/libaudioeffect/VirtualX/Virtualx.h +++ b/libaudioeffect/VirtualX/Virtualx.h @@ -18,12 +18,109 @@ * */ - #ifndef VIRTUALX_H #define VIRTUALX_H -#define VX_CUP_LOAD_ARM9E 100 //Expressed in 0.1 MIPS +#define VX_CUP_LOAD_ARM9E 100 // Expressed in 0.1 MIPS #define VX_MEM_USAGE 50 // Expressed in kB +#define VX_MAX_PARAM_SIZE 32 + +typedef struct Virtualx_param_s { + effect_param_t param; + uint32_t command; + union { + int32_t v; + float f; + float params[VX_MAX_PARAM_SIZE]; + }; +} Virtualx_param_t; + +typedef enum { + /*Tuning interface*/ + DTS_PARAM_MBHL_ENABLE_I32 = 0, + DTS_PARAM_MBHL_BYPASS_GAIN_I32, + DTS_PARAM_MBHL_REFERENCE_LEVEL_I32, + DTS_PARAM_MBHL_VOLUME_I32, + DTS_PARAM_MBHL_VOLUME_STEP_I32, + DTS_PARAM_MBHL_BALANCE_STEP_I32, + DTS_PARAM_MBHL_OUTPUT_GAIN_I32, + DTS_PARAM_MBHL_MODE_I32, + DTS_PARAM_MBHL_PROCESS_DISCARD_I32, + DTS_PARAM_MBHL_CROSS_LOW_I32, + DTS_PARAM_MBHL_CROSS_MID_I32, + DTS_PARAM_MBHL_COMP_ATTACK_I32, + DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32, + DTS_PARAM_MBHL_COMP_LOW_RATIO_I32, + DTS_PARAM_MBHL_COMP_LOW_THRESH_I32, + DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32, + DTS_PARAM_MBHL_COMP_MID_RELEASE_I32, + DTS_PARAM_MBHL_COMP_MID_RATIO_I32, + DTS_PARAM_MBHL_COMP_MID_THRESH_I32, + DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32, + DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32, + DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32, + DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32, + DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32, + DTS_PARAM_MBHL_BOOST_I32, + DTS_PARAM_MBHL_THRESHOLD_I32, + DTS_PARAM_MBHL_SLOW_OFFSET_I32, + DTS_PARAM_MBHL_FAST_ATTACK_I32, + DTS_PARAM_MBHL_FAST_RELEASE_I32, + DTS_PARAM_MBHL_SLOW_ATTACK_I32, + DTS_PARAM_MBHL_SLOW_RELEASE_I32, + DTS_PARAM_MBHL_DELAY_I32, + DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32, + DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32, + DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32, + DTS_PARAM_TBHDX_ENABLE_I32, + DTS_PARAM_TBHDX_MONO_MODE_I32, + DTS_PARAM_TBHDX_MAXGAIN_I32, + DTS_PARAM_TBHDX_SPKSIZE_I32, + DTS_PARAM_TBHDX_HP_ENABLE_I32, + DTS_PARAM_TBHDX_TEMP_GAIN_I32, + DTS_PARAM_TBHDX_PROCESS_DISCARD_I32, + DTS_PARAM_TBHDX_HPORDER_I32, + DTS_PARAM_TBHDX_APP_SPKSIZE_I32, + DTS_PARAM_TBHDX_APP_HPRATIO_F32, + DTS_PARAM_TBHDX_APP_EXTBASS_F32, + DTS_PARAM_VX_ENABLE_I32, + DTS_PARAM_VX_INPUT_MODE_I32, + DTS_PARAM_VX_OUTPUT_MODE_I32, + DTS_PARAM_VX_HEADROOM_GAIN_I32, + DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32, + DTS_PARAM_VX_REFERENCE_LEVEL_I32, + DTS_PARAM_TSX_ENABLE_I32, + DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32, + DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32, + DTS_PARAM_TSX_LPR_GAIN_I32, + DTS_PARAM_TSX_CENTER_GAIN_I32, + DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32, + DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32, + DTS_PARAM_TSX_PROCESS_DISCARD_I32, + DTS_PARAM_TSX_HEIGHT_DISCARD_I32, + DTS_PARAM_TSX_FRNT_CTRL_I32, + DTS_PARAM_TSX_SRND_CTRL_I32, + DTS_PARAM_VX_DC_ENABLE_I32, + DTS_PARAM_VX_DC_CONTROL_I32, + DTS_PARAM_VX_DEF_ENABLE_I32, + DTS_PARAM_VX_DEF_CONTROL_I32, + DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32, + DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, + DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32, + DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32, + /*UI interface*/ + VIRTUALX_PARAM_ENABLE, + VIRTUALX_PARAM_DIALOGCLARTY_MODE, + VIRTUALX_PARAM_SURROUND_MODE, + VIRTUALX_PARAM_COUNTER, + AUDIO_DTS_PARAM_TYPE_NONE, + AUDIO_DTS_PARAM_TYPE_TRU_SURROUND, + AUDIO_DTS_PARAM_TYPE_CC3D, + AUDIO_DTS_PARAM_TYPE_TRU_BASS, + AUDIO_DTS_PARAM_TYPE_TRU_DIALOG, + AUDIO_DTS_PARAM_TYPE_DEFINATION, + AUDIO_DTS_PARAM_TYPE_TRU_VOLUME, +} Virtualx_params; #endif diff --git a/libaudioeffect/effects_tool/Android.mk b/libaudioeffect/effects_tool/Android.mk index 0938a5c..9c1be68 100644 --- a/libaudioeffect/effects_tool/Android.mk +++ b/libaudioeffect/effects_tool/Android.mk @@ -5,7 +5,7 @@ include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE_TAGS := optional -LOCAL_MODULE := audioEffectTest +LOCAL_MODULE := AudioEffectTool LOCAL_SRC_FILES := main.cpp @@ -17,6 +17,27 @@ LOCAL_SHARED_LIBRARIES := \ libmedia_helper \ libmediaplayerservice \ +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../VirtualX \ + include $(BUILD_EXECUTABLE) +#for tuning tool +include $(CLEAR_VARS) + +LOCAL_ARM_MODE := arm +LOCAL_MODULE_TAGS := optional + +LOCAL_MODULE := TuningTool + +LOCAL_SRC_FILES := main2.cpp + +LOCAL_SHARED_LIBRARIES := \ + libcutils \ + libutils \ + libaudioclient \ + libmedia \ + libmedia_helper \ + libmediaplayerservice \ +include $(BUILD_EXECUTABLE)
\ No newline at end of file diff --git a/libaudioeffect/effects_tool/main.cpp b/libaudioeffect/effects_tool/main.cpp index cfa1e31..3bcb27a 100644 --- a/libaudioeffect/effects_tool/main.cpp +++ b/libaudioeffect/effects_tool/main.cpp @@ -33,6 +33,8 @@ #include <media/AudioSystem.h> #include <media/AudioParameter.h> +#include "Virtualx.h" + #ifdef LOG #undef LOG #endif @@ -41,12 +43,17 @@ using namespace android; +//-----------Balance parameters------------------------------- //Warning:balance is used for 51 bands #define BALANCE_MAX_BANDS 51 #define BALANCE_MAX_LEVEL 25 -//-----------Balance parameters------------------------------- +#define BITS 16 +#define MAXbit (1 << (BITS - 1)) +#define INT2FLOAT(a) ((float)a / MAXbit) +#define FLOAT2INT(a) (int)((float)a * MAXbit) + typedef struct Balance_param_s { effect_param_t param; uint32_t command; @@ -80,11 +87,11 @@ struct balance_gain { float left_gain; }; - int balance_level_num = 0; float index1[BALANCE_MAX_BANDS] = {0}; const char *BalanceStatusstr[] = {"Disable", "Enable"}; + //-----------TruSurround parameters--------------------------- typedef struct SRS_param_s { effect_param_t param; @@ -147,96 +154,7 @@ const char *SRSDialogClarityModestr[] = {"OFF", "LOW", "HIGH"}; const char *SRSSurroundModestr[] = {"ON", "OFF"}; //-------------Virtualx parameter-------------------------- -typedef struct Virtualx_param_s { - effect_param_t param; - uint32_t command; - union { - int32_t v; - float f; - }; -} Virtualx_param_t; -typedef enum { - VIRTUALX_PARAM_ENABLE, - VIRTUALX_PARAM_DIALOGCLARTY_MODE, - VIRTUALX_PARAM_SURROUND_MODE, - DTS_PARAM_MBHL_ENABLE_I32, - DTS_PARAM_MBHL_BYPASS_GAIN_I32, - DTS_PARAM_MBHL_REFERENCE_LEVEL_I32, - DTS_PARAM_MBHL_VOLUME_I32, - DTS_PARAM_MBHL_VOLUME_STEP_I32, - DTS_PARAM_MBHL_BALANCE_STEP_I32, - DTS_PARAM_MBHL_OUTPUT_GAIN_I32, - DTS_PARAM_MBHL_MODE_I32, - DTS_PARAM_MBHL_PROCESS_DISCARD_I32, - DTS_PARAM_MBHL_CROSS_LOW_I32, - DTS_PARAM_MBHL_CROSS_MID_I32, - DTS_PARAM_MBHL_COMP_ATTACK_I32, - DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32, - DTS_PARAM_MBHL_COMP_LOW_RATIO_I32, - DTS_PARAM_MBHL_COMP_LOW_THRESH_I32, - DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32, - DTS_PARAM_MBHL_COMP_MID_RELEASE_I32, - DTS_PARAM_MBHL_COMP_MID_RATIO_I32, - DTS_PARAM_MBHL_COMP_MID_THRESH_I32, - DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32, - DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32, - DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32, - DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32, - DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32, - DTS_PARAM_MBHL_BOOST_I32, - DTS_PARAM_MBHL_THRESHOLD_I32, - DTS_PARAM_MBHL_SLOW_OFFSET_I32, - DTS_PARAM_MBHL_FAST_ATTACK_I32, - DTS_PARAM_MBHL_FAST_RELEASE_I32, - DTS_PARAM_MBHL_SLOW_ATTACK_I32, - DTS_PARAM_MBHL_SLOW_RELEASE_I32, - DTS_PARAM_MBHL_DELAY_I32, - DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32, - DTS_PARAM_TBHDX_ENABLE_I32, - DTS_PARAM_TBHDX_MONO_MODE_I32, - DTS_PARAM_TBHDX_MAXGAIN_I32, - DTS_PARAM_TBHDX_SPKSIZE_I32, - DTS_PARAM_TBHDX_HP_ENABLE_I32, - DTS_PARAM_TBHDX_TEMP_GAIN_I32, - DTS_PARAM_TBHDX_PROCESS_DISCARD_I32, - DTS_PARAM_TBHDX_HPORDER_I32, - DTS_PARAM_VX_ENABLE_I32, - DTS_PARAM_VX_INPUT_MODE_I32, - DTS_PARAM_VX_OUTPUT_MODE_I32, - DTS_PARAM_VX_HEADROOM_GAIN_I32, - DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32, - DTS_PARAM_VX_REFERENCE_LEVEL_I32, - DTS_PARAM_TSX_ENABLE_I32, - DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32, - DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32, - DTS_PARAM_TSX_LPR_GAIN_I32, - DTS_PARAM_TSX_CENTER_GAIN_I32, - DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32, - DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32, - DTS_PARAM_TSX_PROCESS_DISCARD_I32, - DTS_PARAM_TSX_HEIGHT_DISCARD_I32, - DTS_PARAM_TSX_FRNT_CTRL_I32, - DTS_PARAM_TSX_SRND_CTRL_I32, - DTS_PARAM_VX_DC_ENABLE_I32, - DTS_PARAM_VX_DC_CONTROL_I32, - DTS_PARAM_VX_DEF_ENABLE_I32, - DTS_PARAM_VX_DEF_CONTROL_I32, - DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32, - DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, - DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32, - DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32, - DTS_PARAM_TBHDX_APP_SPKSIZE_I32, - DTS_PARAM_TBHDX_APP_HPRATIO_F32, - DTS_PARAM_TBHDX_APP_EXTBASS_F32, - DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32, - DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32, - -}Virtualx_params; - Virtualx_param_t gVirtualxParam[] = { - {{0, 4, 4}, VIRTUALX_PARAM_ENABLE, {1}}, - {{0, 4, 4}, VIRTUALX_PARAM_DIALOGCLARTY_MODE, {1}}, - {{0, 4, 4}, VIRTUALX_PARAM_SURROUND_MODE, {1}}, {{0, 4, 4}, DTS_PARAM_MBHL_ENABLE_I32, {1}}, {{0, 4, 4}, DTS_PARAM_MBHL_BYPASS_GAIN_I32, {1}}, {{0, 4, 4}, DTS_PARAM_MBHL_REFERENCE_LEVEL_I32, {1}}, @@ -270,6 +188,8 @@ Virtualx_param_t gVirtualxParam[] = { {{0, 4, 4}, DTS_PARAM_MBHL_SLOW_RELEASE_I32, {500}}, {{0, 4, 4}, DTS_PARAM_MBHL_DELAY_I32, {8}}, {{0, 4, 4}, DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32, {20}}, + {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32,{0}}, {{0, 4, 4}, DTS_PARAM_TBHDX_ENABLE_I32, {0}}, {{0, 4, 4}, DTS_PARAM_TBHDX_MONO_MODE_I32, {0}}, {{0, 4, 4}, DTS_PARAM_TBHDX_MAXGAIN_I32, {0}}, @@ -278,6 +198,9 @@ Virtualx_param_t gVirtualxParam[] = { {{0, 4, 4}, DTS_PARAM_TBHDX_TEMP_GAIN_I32, {0}}, {{0, 4, 4}, DTS_PARAM_TBHDX_PROCESS_DISCARD_I32, {1}}, {{0, 4, 4}, DTS_PARAM_TBHDX_HPORDER_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_SPKSIZE_I32,{0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_HPRATIO_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_EXTBASS_F32,{0}}, {{0, 4, 4}, DTS_PARAM_VX_ENABLE_I32, {1}}, {{0, 4, 4}, DTS_PARAM_VX_INPUT_MODE_I32, {4}}, {{0, 4, 4}, DTS_PARAM_VX_OUTPUT_MODE_I32, {0}}, @@ -303,12 +226,17 @@ Virtualx_param_t gVirtualxParam[] = { {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, {-24}}, {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32, {0}}, {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32,{0}}, - {{0, 4, 4}, DTS_PARAM_TBHDX_APP_SPKSIZE_I32,{0}}, - {{0, 4, 4}, DTS_PARAM_TBHDX_APP_HPRATIO_F32,{0}}, - {{0, 4, 4}, DTS_PARAM_TBHDX_APP_EXTBASS_F32,{0}}, - {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32,{0}}, - {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32,{0}}, - + {{0, 4, 4}, VIRTUALX_PARAM_ENABLE, {1}}, + {{0, 4, 4}, VIRTUALX_PARAM_DIALOGCLARTY_MODE, {1}}, + {{0, 4, 4}, VIRTUALX_PARAM_SURROUND_MODE, {1}}, + {{0, 4, 4}, VIRTUALX_PARAM_COUNTER,{1}}, + {{0, 4, 4}, AUDIO_DTS_PARAM_TYPE_NONE,{1}}, + {{0, 4, 32}, AUDIO_DTS_PARAM_TYPE_TRU_SURROUND,{1}}, + {{0, 4, 32}, AUDIO_DTS_PARAM_TYPE_CC3D,{1}}, + {{0, 4, 40},AUDIO_DTS_PARAM_TYPE_TRU_BASS,{1}}, + {{0, 4, 32},AUDIO_DTS_PARAM_TYPE_TRU_DIALOG,{1}}, + {{0, 4, 24},AUDIO_DTS_PARAM_TYPE_DEFINATION,{1}}, + {{0, 4, 12},AUDIO_DTS_PARAM_TYPE_TRU_VOLUME,{1}}, }; const char *VXStatusstr[] = {"Disable", "Enable"}; @@ -464,6 +392,7 @@ effect_uuid_t gEffectStr[] = { {0x07210842, 0x7432, 0x4624, 0x8b97, {0x35, 0xac, 0x87, 0x82, 0xef, 0xa3}}, // 7:DBX }; +#if 0 static inline float DbToAmpl(float decibels) { if (decibels <= -758) { @@ -471,6 +400,7 @@ static inline float DbToAmpl(float decibels) } return exp( decibels * 0.115129f); // exp( dB * ln(10) / 20 ) } +#endif static int Balance_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gParamValue) { @@ -481,7 +411,6 @@ static int Balance_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int g AudioParameter param = AudioParameter(); audio_io_handle_t handle = AUDIO_IO_HANDLE_NONE; int32_t value = 0; - int32_t total_gain = 0; if (balance_level_num == 0) { gAudioEffect->getParameter(&gBalanceParam[BALANCE_PARAM_LEVEL_NUM].param); balance_level_num = gBalanceParam[BALANCE_PARAM_LEVEL_NUM].v; @@ -832,7 +761,7 @@ static int TrebleBass_effect_func(AudioEffect* gAudioEffect, int gParamIndex, in } } -static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gParamValue,float gParamScale) +static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gParamValue,float gParamScale,float gParaRange[VX_MAX_PARAM_SIZE]) { int rc = 0; switch (gParamIndex) { @@ -843,11 +772,12 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].v = gParamValue; if (!gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param)) - LOG("=================successful\n"); + LOG("Virtualx: Successful\n"); else - LOG("=====================failed\n"); + LOG("Virtualx: Failed\n"); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("Virtualx: Status is %d -> %s\n", gParamValue, VXStatusstr[gVirtualxParam[gParamIndex].v]); + LOG("Virtualx: Status is %d -> %s, 16bit normalized data ----> 0x%08X\n", + gParamValue, VXStatusstr[gVirtualxParam[gParamIndex].v], FLOAT2INT(gParamValue)); return 0; case DTS_PARAM_MBHL_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -857,7 +787,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_BYPASS_GAIN_I32: if (gParamScale < 0 || gParamScale > 1.0) { @@ -867,7 +798,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl bypassgain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl bypassgain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_REFERENCE_LEVEL_I32: if (gParamScale < 0.0009 || gParamScale > 1.0) { @@ -877,7 +809,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl reference level is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl reference level is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_VOLUME_I32: if (gParamScale < 0 || gParamScale > 1.0) { @@ -887,7 +820,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl volume is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl volume is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_VOLUME_STEP_I32: if (gParamValue < 0 || gParamValue > 100) { @@ -897,7 +831,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl volume step is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl volume step is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_BALANCE_STEP_I32: if (gParamValue < -10 || gParamValue > 10) { @@ -907,7 +842,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl balance step is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl balance step is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_OUTPUT_GAIN_I32: if (gParamScale < 0 || gParamScale > 1.0) { @@ -916,8 +852,9 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); - // gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl output gain is %f \n",gVirtualxParam[gParamIndex].f); + // gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl output gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_BOOST_I32: if (gParamScale < 0.001 || gParamScale > 1000) { @@ -927,7 +864,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl boost is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl boost is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_THRESHOLD_I32: if (gParamScale < 0.064 || gParamScale > 1.0) { @@ -937,7 +875,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl threshold is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl threshold is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_SLOW_OFFSET_I32: if (gParamScale < 0.3170 || gParamScale > 3.1619) { @@ -947,7 +886,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl slow offset is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl slow offset is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_FAST_ATTACK_I32: if (gParamScale < 0 || gParamScale > 10) { @@ -957,7 +897,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl fast attack is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl fast attack is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_FAST_RELEASE_I32: if (gParamValue < 10 || gParamValue > 500) { @@ -967,7 +908,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl fast release is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl fast release is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_SLOW_ATTACK_I32: if (gParamValue < 100 || gParamValue > 1000) { @@ -977,7 +919,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl slow attack is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl slow attack is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_SLOW_RELEASE_I32: if (gParamValue < 100 || gParamValue > 2000) { @@ -987,7 +930,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl slow release is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl slow release is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_DELAY_I32: if (gParamValue < 1 || gParamValue > 16) { @@ -997,7 +941,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl delay is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl delay is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32: if (gParamValue < 5 || gParamValue > 500) { @@ -1007,7 +952,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl envelope freq is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl envelope freq is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_MODE_I32: if (gParamValue < 0 || gParamValue > 4) { @@ -1017,7 +963,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl mode is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl mode is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_PROCESS_DISCARD_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1027,7 +974,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl process discard is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl process discard is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_CROSS_LOW_I32: if (gParamValue < 0 || gParamValue > 20) { @@ -1037,7 +985,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl cross low is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl cross low is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_CROSS_MID_I32: if (gParamValue < 0 || gParamValue > 20) { @@ -1047,7 +996,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl cross mid is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl cross mid is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_COMP_ATTACK_I32: if (gParamValue < 0 || gParamValue > 100) { @@ -1057,7 +1007,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor attack time is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl compressor attack time is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32: if (gParamValue < 50 || gParamValue > 2000) { @@ -1067,7 +1018,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor low release time is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl compressor low release time is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_COMP_LOW_RATIO_I32: if (gParamScale < 1.0 || gParamScale > 20.0) { @@ -1077,7 +1029,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor low ratio is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor low ratio is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_LOW_THRESH_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1087,7 +1040,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor low threshold is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor low threshold is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1097,7 +1051,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor low makeup is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor low makeup is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_MID_RELEASE_I32: if (gParamValue < 50 || gParamValue > 2000) { @@ -1107,7 +1062,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor mid release time is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl compressor mid release time is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_COMP_MID_RATIO_I32: if (gParamScale < 1.0 || gParamScale > 20.0) { @@ -1117,7 +1073,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor mid ratio is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor mid ratio is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_MID_THRESH_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1127,7 +1084,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor mid threshold is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor mid threshold is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1137,7 +1095,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor mid makeup is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor mid makeup is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32: if (gParamValue < 50 || gParamValue > 2000) { @@ -1147,7 +1106,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor high release time is %d \n",gVirtualxParam[gParamIndex].v); + LOG("mbhl compressor high release time is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32: if (gParamScale < 1.0 || gParamScale > 20.0) { @@ -1157,7 +1117,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor high ratio is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor high ratio is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1167,7 +1128,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor high threshold is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor high threshold is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32: if (gParamScale < 0.0640 || gParamScale > 15.8479) { @@ -1177,7 +1139,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("mbhl compressor high makeup is %f \n",gVirtualxParam[gParamIndex].f); + LOG("mbhl compressor high makeup is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TBHDX_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1187,7 +1150,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_MONO_MODE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1197,7 +1161,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx mono mode is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx mono mode is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_SPKSIZE_I32: if (gParamValue < 0 || gParamValue > 12) { @@ -1207,7 +1172,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx spksize is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx spksize is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_TEMP_GAIN_I32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1217,7 +1183,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx temp gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tbhdx temp gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TBHDX_MAXGAIN_I32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1227,7 +1194,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx max gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tbhdx max gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TBHDX_PROCESS_DISCARD_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1237,7 +1205,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx process discard is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx process discard is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_HPORDER_I32: if (gParamValue < 0 || gParamValue > 8) { @@ -1247,7 +1216,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx high pass filter order is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx high pass filter order is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_HP_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1257,7 +1227,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tbhdx high pass enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tbhdx high pass enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1267,7 +1238,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("vxlib1 enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_INPUT_MODE_I32: if (gParamValue < 0 || gParamValue > 4) { @@ -1277,7 +1249,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 input mode is %d \n",gVirtualxParam[gParamIndex].v); + LOG("vxlib1 input mode is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_HEADROOM_GAIN_I32: if (gParamScale < 0.1250 || gParamScale > 1.0) { @@ -1287,7 +1260,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 headroom gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("vxlib1 headroom gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32: if (gParamScale < 0.5 || gParamScale > 4.0) { @@ -1297,7 +1271,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 output gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("vxlib1 output gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1307,7 +1282,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 tsx enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("vxlib1 tsx enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1317,7 +1293,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 tsx passive matrix upmixer enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("vxlib1 tsx passive matrix upmixer enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1327,7 +1304,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("vxlib1 tsx horizontal Effect is %d \n",gVirtualxParam[gParamIndex].v); + LOG("vxlib1 tsx horizontal Effect is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TSX_FRNT_CTRL_I32: if (gParamScale < 0.5 || gParamScale > 2.0) { @@ -1337,7 +1315,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx frnt ctrl is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx frnt ctrl is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_SRND_CTRL_I32: if (gParamScale < 0.5 || gParamScale > 2.0) { @@ -1347,7 +1326,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx srnd ctrl is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx srnd ctrl is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_LPR_GAIN_I32: if (gParamScale < 0.0 || gParamScale > 2.0) { @@ -1357,7 +1337,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx lprtoctr mix gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx lprtoctr mix gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32: if (gParamScale < 0.5 || gParamScale > 2.0) { @@ -1367,7 +1348,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx heightmix coeff is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx heightmix coeff is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_CENTER_GAIN_I32: if (gParamScale < 1.0 || gParamScale > 2.0) { @@ -1377,7 +1359,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx center gain is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx center gain is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TSX_HEIGHT_DISCARD_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1387,7 +1370,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx height discard is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tsx height discard is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TSX_PROCESS_DISCARD_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1397,7 +1381,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx process discard is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tsx process discard is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1407,7 +1392,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx height upmix enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tsx height upmix enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_DC_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1417,7 +1403,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx dc enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tsx dc enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_DC_CONTROL_I32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1427,7 +1414,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx dc level is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx dc level is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_VX_DEF_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1437,7 +1425,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx def enable is %d \n",gVirtualxParam[gParamIndex].v); + LOG("tsx def enable is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_VX_DEF_CONTROL_I32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1447,7 +1436,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("tsx def level is %f \n",gVirtualxParam[gParamIndex].f); + LOG("tsx def level is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32: if (gParamValue < 0 || gParamValue > 1) { @@ -1457,7 +1447,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("loudness control is %d \n",gVirtualxParam[gParamIndex].v); + LOG("loudness control is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32: if (gParamValue < -40 || gParamValue > 0) { @@ -1467,7 +1458,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("loudness control target is %d \n",gVirtualxParam[gParamIndex].v); + LOG("loudness control target is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32: if (gParamValue < 0 || gParamValue > 2) { @@ -1477,7 +1469,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); - LOG("loudness control preset is %d \n",gVirtualxParam[gParamIndex].v); + LOG("loudness control preset is %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_APP_SPKSIZE_I32: if (gParamValue < 40 || gParamValue > 600) { @@ -1486,7 +1479,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].v = gParamValue; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); - LOG("app spksize %d\n",gVirtualxParam[gParamIndex].v); + LOG("app spksize %d, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].v, FLOAT2INT(gVirtualxParam[gParamIndex].v)); return 0; case DTS_PARAM_TBHDX_APP_HPRATIO_F32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1495,7 +1489,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); - LOG("app hpratio is %f\n",gVirtualxParam[gParamIndex].f); + LOG("app hpratio is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_TBHDX_APP_EXTBASS_F32: if (gParamScale < 0.0 || gParamScale > 1.0) { @@ -1504,7 +1499,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); - LOG("app ettbass is %f\n",gVirtualxParam[gParamIndex].f); + LOG("app ettbass is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32: if (gParamScale < 40 || gParamScale > 8000.0) { @@ -1514,7 +1510,8 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gVirtualxParam[gParamIndex].f = gParamScale; rc =gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); LOG("rc is %d\n",rc); - LOG("app low freq is %f\n",gVirtualxParam[gParamIndex].f); + LOG("app low freq is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); return 0; case DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32: if (gParamScale < 40.0 || gParamScale > 8000.0) { @@ -1523,7 +1520,62 @@ static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int } gVirtualxParam[gParamIndex].f = gParamScale; gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); - LOG("app mid freq is %f\n",gVirtualxParam[gParamIndex].f); + LOG("app mid freq is %f, 16bit normalized data ----> 0x%08X\n", + gVirtualxParam[gParamIndex].f, FLOAT2INT(gVirtualxParam[gParamIndex].f)); + return 0; + case AUDIO_DTS_PARAM_TYPE_TRU_SURROUND: + for (int i = 0; i < 8; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + return 0; + case AUDIO_DTS_PARAM_TYPE_CC3D: + for (int i = 0; i < 8; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + return 0; + case AUDIO_DTS_PARAM_TYPE_TRU_BASS: + for (int i = 0; i < 10; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + return 0; + case AUDIO_DTS_PARAM_TYPE_TRU_DIALOG: + for (int i = 0; i < 8; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + return 0; + case AUDIO_DTS_PARAM_TYPE_DEFINATION: + for (int i = 0; i < 6; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + return 0; + case AUDIO_DTS_PARAM_TYPE_TRU_VOLUME: + for (int i = 0; i < 3; i++) { + gVirtualxParam[gParamIndex].params[i] = gParaRange[i]; + LOG("gVirtualxParam[gParamIndex].params[%d] is %f, 16bit normalized data ----> 0x%08X\n", + i, gParaRange[i], FLOAT2INT(gParaRange[i])); + } + rc = gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); return 0; default: LOG("Virtualx: ParamIndex = %d invalid\n", gParamIndex); @@ -1730,7 +1782,7 @@ static int Avl_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gPara } } -static void effectCallback(int32_t event, void* user, void *info) +static void effectCallback(int32_t event __unused, void* user __unused, void *info __unused) { LOG("%s : %s():line:%d\n", __FILE__, __FUNCTION__, __LINE__); } @@ -1775,327 +1827,464 @@ static int create_audio_effect(AudioEffect **gAudioEffect, String16 name16, int return 0; } +int GetIntData (int *data) +{ + int status = scanf("%d", data); + if (status == 0) { + scanf("%*s"); + LOG("Erorr input! Pls Retry!\n"); + return -1; + } + return 0; +} + +int GetFloatData (float *data) +{ + int status = scanf("%f", data); + if (status == 0) { + scanf("%*s"); + LOG("Erorr input! Pls Retry!\n"); + return -1; + } + return 0; +} + +void PrintHelp(int gEffectIndex, char *name) +{ + if (gEffectIndex == EFFECT_BALANCE) { + LOG("**********************************Balance***********************************\n"); + LOG("Amlogic Balance EffectIndex: %d\n", (int)EFFECT_BALANCE); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_BALANCE); + LOG("ParamIndex: 0 -> Level\n"); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: 1 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 4 -> Usb_Balance\n"); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: 5 -> Bt_Balance\n"); + LOG("ParamValue: 0 ~ 100\n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_SRS) { + LOG("********************************TruSurround*********************************\n"); + LOG("DTS TruSurround EffectIndex: %d\n", (int)EFFECT_SRS); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_SRS); + LOG("ParamIndex: 0 -> Mode\n"); + LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> Movie 3 -> ClearVoice 4 -> EnhancedBass 5->Custom\n"); + LOG("ParamIndex: 1 -> DiglogClarity Mode\n"); + LOG("ParamValue: 0 -> OFF 1 -> LOW 2 -> HIGH\n"); + LOG("ParamIndex: 2 -> Surround Mode\n"); + LOG("ParamValue: 0 -> ON 1 -> OFF\n"); + LOG("ParamIndex: 4 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 5 -> TrueBass\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 6 -> TrueBassSpeakSize\n"); + LOG("ParamValue: 0 ~ 7\n"); + LOG("ParamIndex: 7 -> TrueBassGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 8 -> DiglogClarity\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 9 -> DiglogClarityGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 10 -> Definition\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 11 -> DefinitionGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 12 -> Surround\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 13 -> SurroundGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 14 -> InputGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 15 -> OuputGain\n"); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: 16 -> OuputGainCompensation\n"); + LOG("ParamScale: -20.0dB ~ 20.0dB\n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_TREBLEBASS) { + LOG("*********************************TrebleBass*********************************\n"); + LOG("Amlogic Treble/Bass EffectIndex: %d\n", (int)EFFECT_TREBLEBASS); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_TREBLEBASS); + LOG("ParamIndex: 0 -> Bass\n"); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: 1 -> Treble\n"); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: 2 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_HPEQ) { + LOG("*********************************HPEQ***************************************\n"); + LOG("Amlogic HPEQ EffectIndex: %d\n", (int)EFFECT_HPEQ); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_HPEQ); + LOG("ParamIndex: 0 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 1 -> Mode\n"); + LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> news 3 -> movie 4 -> game 5->user\n"); + LOG("ParamIndex: 2 -> custom\n"); + LOG("ParamValue: -10 ~10 \n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_AVL) { + LOG("*********************************Avl****************************************\n"); + LOG("Amlogic AVL EffectIndex: %d\n", (int)EFFECT_AVL); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_AVL); + LOG("ParamIndex: 0 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 1 -> Max Level in dB\n"); + LOG("ParamScale: -40.0 ~ 0.0\n"); + LOG("ParamIndex: 2 -> Dynamic Threshold in dB\n"); + LOG("ParamScale: 0 ~ -80\n"); + LOG("ParamIndex: 3 -> Noise Threshold in dB\n"); + LOG("ParamScale: -NAN ~ -10\n"); + LOG("ParamIndex: 4 -> Attack Time in ms\n"); + LOG("ParamValue: 20 ~ 2000 ms\n"); + LOG("ParamIndex: 5 -> Release Time in ms\n"); + LOG("ParamValue: 2000~8000 ms\n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_GEQ) { + LOG("*********************************GEQ****************************************\n"); + LOG("Amlgoic GEQ EffectIndex: %d\n", (int)EFFECT_GEQ); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_GEQ); + LOG("ParamIndex: 0 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 1 -> Mode\n"); + LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> news 3 -> movie 4 -> game 5->user\n"); + LOG("ParamIndex: 2 -> custom\n"); + LOG("ParamValue: -10 ~10 \n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_VIRTUALX) { + LOG("*********************************Virtualx***********************************\n"); + LOG("VirtualX EffectIndex: %d\n", (int)EFFECT_VIRTUALX); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_VIRTUALX); + LOG("------------Multi band hard limiter----ParamIndex(from %d to %d)-----\n", + (int)DTS_PARAM_MBHL_ENABLE_I32, (int)DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32); + LOG("ParamIndex: %d -> Mbhl Enable\n", (int)DTS_PARAM_MBHL_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> Mbhl Bypass Gain\n", (int)DTS_PARAM_MBHL_BYPASS_GAIN_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: %d -> Mbhl Reference Level\n", (int)DTS_PARAM_MBHL_REFERENCE_LEVEL_I32); + LOG("ParamScale: 0.0009 ~ 1.0\n"); + LOG("ParamIndex: %d -> Mbhl Volume\n", (int)DTS_PARAM_MBHL_VOLUME_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: %d -> Mbhl Volume Step\n", (int)DTS_PARAM_MBHL_VOLUME_STEP_I32); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: %d -> Mbhl Balance Step\n", (int)DTS_PARAM_MBHL_BALANCE_STEP_I32); + LOG("ParamValue: -10 ~ 10\n"); + LOG("ParamIndex: %d -> Mbhl Output Gain\n", (int)DTS_PARAM_MBHL_OUTPUT_GAIN_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: %d -> Mbhl Mode\n", (int)DTS_PARAM_MBHL_MODE_I32); + LOG("ParamValue: 0 ~ 4\n"); + LOG("ParamIndex: %d -> Mbhl process Discard\n", (int)DTS_PARAM_MBHL_PROCESS_DISCARD_I32); + LOG("ParamValue: 0 ~ 1\n"); + LOG("ParamIndex: %d -> Mbhl Cross Low\n", (int)DTS_PARAM_MBHL_CROSS_LOW_I32); + LOG("ParamValue: 0 ~ 20\n"); + LOG("ParamIndex: %d -> Mbhl Cross Mid\n", (int)DTS_PARAM_MBHL_CROSS_MID_I32); + LOG("ParamValue: 0 ~ 20\n"); + LOG("ParamIndex: %d -> Mbhl Comp Attack\n", (int)DTS_PARAM_MBHL_COMP_ATTACK_I32); + LOG("ParamValue: 0 ~ 100\n"); + LOG("ParamIndex: %d -> Mbhl Comp Low Release\n", (int)DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32); + LOG("ParamValue: 50 ~ 2000\n"); + LOG("ParamIndex: %d -> Mbhl Comp Low Ratio\n", (int)DTS_PARAM_MBHL_COMP_LOW_RATIO_I32); + LOG("ParamScale: 1.0 ~ 20.0\n"); + LOG("ParamIndex: %d -> Mbhl Comp Low Thresh\n", (int)DTS_PARAM_MBHL_COMP_LOW_THRESH_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Comp Low Makeup\n", (int)DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Comp Mid Release\n", (int)DTS_PARAM_MBHL_COMP_MID_RELEASE_I32); + LOG("ParamValue: 50 ~ 2000\n"); + LOG("ParamIndex: %d -> Mbhl Comp Mid Ratio\n", (int)DTS_PARAM_MBHL_COMP_MID_RATIO_I32); + LOG("ParamScale: 1.0 ~ 20.0\n"); + LOG("ParamIndex: %d -> Mbhl Comp Mid Thresh\n", (int)DTS_PARAM_MBHL_COMP_MID_THRESH_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Comp Mid Makeup\n", (int)DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Comp High Release\n", (int)DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32); + LOG("ParamValue: 50 ~ 2000\n"); + LOG("ParamIndex: %d -> Mbhl Comp High Ratio\n", (int)DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32); + LOG("ParamScale: 1.0 ~ 20.0\n"); + LOG("ParamIndex: %d -> Mbhl Comp High Thresh\n", (int)DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Comp High Makeup\n", (int)DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32); + LOG("ParamScale: 0.0640 ~ 15.8479\n"); + LOG("ParamIndex: %d -> Mbhl Boost\n", (int)DTS_PARAM_MBHL_BOOST_I32); + LOG("ParamScale: 0.001 ~ 1000\n"); + LOG("ParamIndex: %d -> Mbhl Threshold\n", (int)DTS_PARAM_MBHL_THRESHOLD_I32); + LOG("ParamScale: 0.0640 ~ 1.0\n"); + LOG("ParamIndex: %d -> Mbhl Slow Offset\n", (int)DTS_PARAM_MBHL_SLOW_OFFSET_I32); + LOG("ParamScale: 0.317 ~ 3.1619\n"); + LOG("ParamIndex: %d -> Mbhl Fast Attack\n", (int)DTS_PARAM_MBHL_FAST_ATTACK_I32); + LOG("ParamScale: 0 ~ 10\n"); + LOG("ParamIndex: %d -> Mbhl Fast Release\n", (int)DTS_PARAM_MBHL_FAST_RELEASE_I32); + LOG("ParamValue: 10 ~ 500\n"); + LOG("ParamIndex: %d -> Mbhl Slow Attack\n", (int)DTS_PARAM_MBHL_SLOW_ATTACK_I32); + LOG("ParamValue: 100 ~ 1000\n"); + LOG("ParamIndex: %d -> Mbhl Slow Release\n", (int)DTS_PARAM_MBHL_SLOW_RELEASE_I32); + LOG("ParamValue: 100 ~ 2000\n"); + LOG("ParamIndex: %d -> Mbhl Delay\n", (int)DTS_PARAM_MBHL_DELAY_I32); + LOG("ParamValue: 0 ~ 16\n"); + LOG("ParamIndex: %d -> Mbhl Envelope Freq\n", (int)DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32); + LOG("ParamValue: 5 ~ 500\n"); + LOG("ParamIndex: %d -> Mbhl frt lowcross\n", (int)DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32); + LOG("ParamScale 40 ~ 8000\n"); + LOG("ParamIndex: %d -> Mbhl frt midcross\n", (int)DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32); + LOG("ParamScale 40 ~ 8000\n"); + LOG("------------TruBassHDX-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_TBHDX_ENABLE_I32, (int)DTS_PARAM_TBHDX_APP_EXTBASS_F32); + LOG("ParamIndex: %d -> TBHDX Enable\n", (int)DTS_PARAM_TBHDX_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TBHDX Mono Mode\n", (int)DTS_PARAM_TBHDX_MONO_MODE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TBHDX Max Gain\n", (int)DTS_PARAM_TBHDX_MAXGAIN_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: %d -> TBHDX Spk Size\n", (int)DTS_PARAM_TBHDX_SPKSIZE_I32); + LOG("ParamValue: 0 ~ 12\n"); + LOG("ParamIndex: %d -> TBHDX HP Enable\n", (int)DTS_PARAM_TBHDX_HP_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TBHDX Temp Gain\n", (int)DTS_PARAM_TBHDX_TEMP_GAIN_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("ParamIndex: %d -> TBHDX Process Discard\n", (int)DTS_PARAM_TBHDX_PROCESS_DISCARD_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TBHDX HP Order\n", (int)DTS_PARAM_TBHDX_HPORDER_I32); + LOG("ParamValue: 1 ~ 8\n"); + LOG("ParamIndex: %d -> TBHDX app spksize\n", (int)DTS_PARAM_TBHDX_APP_SPKSIZE_I32); + LOG("ParamValue 40 ~ 600 \n"); + LOG("ParamIndex: %d -> TBHDX app hpratio\n", (int)DTS_PARAM_TBHDX_APP_HPRATIO_F32); + LOG("ParamScale 0 ~ 1.0\n"); + LOG("ParamIndex: %d -> TBHDX app extbass\n", (int)DTS_PARAM_TBHDX_APP_EXTBASS_F32); + LOG("ParamScale 0 ~ 1.0\n"); + LOG("------------General Setting-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_VX_ENABLE_I32, (int)DTS_PARAM_VX_REFERENCE_LEVEL_I32); + LOG("ParamIndex: %d -> VX Enable\n", (int)DTS_PARAM_VX_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> VX Input Mode\n", (int)DTS_PARAM_VX_INPUT_MODE_I32); + LOG("ParamValue: 0 ~ 4\n"); + LOG("ParamIndex: %d -> VX Output Mode\n", (int)DTS_PARAM_VX_OUTPUT_MODE_I32); + LOG("ParamValue: Can't be set!\n"); + LOG("ParamIndex: %d -> VX Head Room Gain\n", (int)DTS_PARAM_VX_HEADROOM_GAIN_I32); + LOG("ParamScale: 0.125 ~ 1.0\n"); + LOG("ParamIndex: %d -> VX Proc Output Gain\n", (int)DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32); + LOG("ParamScale: 0.5 ~ 4.0\n"); + LOG("ParamIndex: %d -> VX Reference level\n", (int)DTS_PARAM_VX_REFERENCE_LEVEL_I32); + LOG("ParamValue: Can't be set!\n"); + LOG("------------TrusurroundX-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_TSX_ENABLE_I32, (int)DTS_PARAM_TSX_SRND_CTRL_I32); + LOG("ParamIndex: %d -> TSX Enable\n", (int)DTS_PARAM_TSX_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TSX Passive Matrix Upmixer Enable\n", (int)DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TSX Height Upmixer Enable\n", (int)DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TSX Lpr Gain\n", (int)DTS_PARAM_TSX_LPR_GAIN_I32); + LOG("ParamScale: 0.000 ~ 2.0\n"); + LOG("ParamIndex: %d -> TSX Center Gain\n", (int)DTS_PARAM_TSX_CENTER_GAIN_I32); + LOG("ParamScale: 1.0 ~ 2.0\n"); + LOG("ParamIndex: %d -> TSX Horiz Vir Effect Ctrl\n", (int)DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32); + LOG("ParamValue: 0 -> default 1 -> mild\n"); + LOG("ParamIndex: %d -> TSX Height Mix Coeff\n", (int)DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32); + LOG("ParamScale: 0.5 ~ 2.0\n"); + LOG("ParamIndex: %d -> TSX Process Discard\n", (int)DTS_PARAM_TSX_PROCESS_DISCARD_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TSX Height Discard\n", (int)DTS_PARAM_TSX_HEIGHT_DISCARD_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> TSX Frnt Ctrl\n", (int)DTS_PARAM_TSX_FRNT_CTRL_I32); + LOG("ParamScale: 0.5 ~ 2.0\n"); + LOG("ParamIndex: %d -> TSX Srnd Ctrl\n", (int)DTS_PARAM_TSX_SRND_CTRL_I32); + LOG("ParamScale: 0.5 ~ 2.0\n"); + LOG("------------Dialog Clarty-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_VX_DC_ENABLE_I32, (int)DTS_PARAM_VX_DC_CONTROL_I32); + LOG("ParamIndex: %d -> VX DC Enable\n", (int)DTS_PARAM_VX_DC_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> VX DC Control\n", (int)DTS_PARAM_VX_DC_CONTROL_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("------------Definition-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_VX_DEF_ENABLE_I32, (int)DTS_PARAM_VX_DEF_CONTROL_I32); + LOG("ParamIndex: %d -> VX DEF Enable\n", (int)DTS_PARAM_VX_DEF_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> VX DEF Control\n", (int)DTS_PARAM_VX_DEF_CONTROL_I32); + LOG("ParamScale: 0.0 ~ 1.0\n"); + LOG("------------TruVolume-------ParamIndex(from %d to %d)--\n", + (int)DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32, (int)DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32); + LOG("ParamIndex: %d -> Loudness Control Enable\n", (int)DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: %d -> Loudness Control Target Loudness\n", (int)DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32); + LOG("ParamValue: -40 ~ 0\n"); + LOG("ParamIndex: %d -> Loudness Control Preset\n", (int)DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32); + LOG("ParamValue: 0 -> light 1 -> mid 2 -> Aggresive \n"); + LOG("ParamIndex: %d -> Loudness Control Mode\n", (int)DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32); + LOG("ParamValue: 0 ~ 4 \n"); + LOG("****************************************************************************\n\n"); + } else if (gEffectIndex == EFFECT_DBX) { + LOG("**********************************DBX***************************************\n"); + LOG("DBX EffectIndex: %d\n", (int)EFFECT_DBX); + LOG("Usage: %s %d <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", name, (int)EFFECT_DBX); + LOG("ParamIndex: 0 -> Enable\n"); + LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); + LOG("ParamIndex: 1 -> Choose mode(son_mode--vol_mode--sur_mode)\n"); + LOG("ParamValue: son_mode 0-4 vol_mode 0-2 sur_mode 0-2\n"); + LOG("****************************************************************************\n\n"); + } +} + int main(int argc,char **argv) { int i; int ret = -1; - int gEffectIndex = 0; + int gEffectIndex = -1; int gParamIndex = 0; int gParamValue = 0; float gParamScale = 0.0f; signed char gmode[3] = {0}; signed char gParamBand[5] = {0}; signed char gParamBands[9] = {0}; - status_t status = NO_ERROR; + float grange[VX_MAX_PARAM_SIZE] = {0}; String16 name16[EFFECT_MAX] = {String16("AudioEffectEQTest"), String16("AudioEffectSRSTest"), String16("AudioEffectHPEQTest"), String16("AudioEffectAVLTest"), String16("AudioEffectGEQTest"),String16("AudioEffectVirtualxTest"),String16("AudioEffectDBXTest")}; AudioEffect* gAudioEffect[EFFECT_MAX] = {0}; - audio_session_t gSessionId = AUDIO_SESSION_OUTPUT_MIX; - LOG("**********************************Balance***********************************\n"); - LOG("EffectIndex: 0\n"); - LOG("ParamIndex: 0 -> Level\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 1 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 4 -> Usb_Balance\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 5 -> Bt_Banlance\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("****************************************************************************\n\n"); - - LOG("********************************TruSurround*********************************\n"); - LOG("EffectIndex: 1\n"); - LOG("ParamIndex: 0 -> Mode\n"); - LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> Movie 3 -> ClearVoice 4 -> EnhancedBass 5->Custom\n"); - LOG("ParamIndex: 1 -> DiglogClarity Mode\n"); - LOG("ParamValue: 0 -> OFF 1 -> LOW 2 -> HIGH\n"); - LOG("ParamIndex: 2 -> Surround Mode\n"); - LOG("ParamValue: 0 -> ON 1 -> OFF\n"); - LOG("ParamIndex: 4 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 5 -> TrueBass\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 6 -> TrueBassSpeakSize\n"); - LOG("ParamValue: 0 ~ 7\n"); - LOG("ParamIndex: 7 -> TrueBassGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 8 -> DiglogClarity\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 9 -> DiglogClarityGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 10 -> Definition\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 11 -> DefinitionGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 12 -> Surround\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 13 -> SurroundGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 14 -> InputGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 15 -> OuputGain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 16 -> OuputGainCompensation\n"); - LOG("ParamScale: -20.0dB ~ 20.0dB\n"); - LOG("****************************************************************************\n\n"); - - LOG("*********************************TrebleBass*********************************\n"); - LOG("EffectIndex: 2\n"); - LOG("ParamIndex: 0 -> Bass\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 1 -> Treble\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 2 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("****************************************************************************\n\n"); - - LOG("*********************************HPEQ*********************************\n"); - LOG("EffectIndex: 3\n"); - LOG("ParamIndex: 0 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 1 -> Mode\n"); - LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> news 3 -> movie 4 -> game 5->user\n"); - LOG("ParamIndex: 2 -> custom\n"); - LOG("ParamValue: -10 ~10 \n"); - - LOG("*********************************Avl*********************************\n"); - LOG("EffectIndex: 4\n"); - LOG("ParamIndex: 0 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 1 -> Peak Level\n"); - LOG("ParamScale: -40.0 ~ 0.0\n"); - LOG("ParamIndex: 2 -> Dynamic Threshold\n"); - LOG("ParamScale: 0 ~ -80\n"); - LOG("ParamIndex: 3 -> Noise Threshold\n"); - LOG("ParamScale: -NAN ~ -10\n"); - LOG("ParamIndex: 4 -> Response Time\n"); - LOG("ParamValue: 20 ~ 2000\n"); - LOG("ParamIndex: 5 -> Release Time\n"); - LOG("ParamValue: 20 ~ 2000\n"); - LOG("ParamIndex: 6 -> Source In\n"); - LOG("ParamValue: 0 -> DTV 1 -> ATV 2 -> AV 3 -> HDMI 4 -> SPDIF 5->REMOTE_SUBMIX 6->WIRED_HEADSET\n"); - LOG("****************************************************************************\n\n"); - - LOG("*********************************GEQ*********************************\n"); - LOG("EffectIndex: 5\n"); - LOG("ParamIndex: 0 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 1 -> Mode\n"); - LOG("ParamValue: 0 -> Standard 1 -> Music 2 -> news 3 -> movie 4 -> game 5->user\n"); - LOG("ParamIndex: 2 -> custom\n"); - LOG("ParamValue: -10 ~10 \n"); - LOG("****************************************************************************\n\n"); - - LOG("*********************************Virtualx*********************************\n"); - LOG("EffectIndex: 6\n"); - LOG("ParamIndex: 0 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 3 -> Mbhl Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 4 -> Mbhl Bypass Gain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 5 -> Mbhl Reference Level\n"); - LOG("ParamScale: 0.0009 ~ 1.0\n"); - LOG("ParamIndex: 6 -> Mbhl Volume\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 7 -> Mbhl Volume Step\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 8 -> Mbhl Balance Step\n"); - LOG("ParamValue: -10 ~ 10\n"); - LOG("ParamIndex: 9 -> Mbhl Output Gain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 10 -> Mbhl Mode\n"); - LOG("ParamValue: 0 ~ 4\n"); - LOG("ParamIndex: 11 -> Mbhl process Discard\n"); - LOG("ParamValue: 0 ~ 1\n"); - LOG("ParamIndex: 12 -> Mbhl Cross Low\n"); - LOG("ParamValue: 0 ~ 20\n"); - LOG("ParamIndex: 13 -> Mbhl Cross Mid\n"); - LOG("ParamValue: 0 ~ 20\n"); - LOG("ParamIndex: 14 -> Mbhl Comp Attack\n"); - LOG("ParamValue: 0 ~ 100\n"); - LOG("ParamIndex: 15 -> Mbhl Comp Low Release\n"); - LOG("ParamValue: 50 ~ 2000\n"); - LOG("ParamIndex: 16 -> Mbhl Comp Low Ratio\n"); - LOG("ParamScale: 1.0 ~ 20.0\n"); - LOG("ParamIndex: 17 -> Mbhl Comp Low Thresh\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 18 -> Mbhl Comp Low Makeup\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 19 -> Mbhl Comp Mid Release\n"); - LOG("ParamValue: 50 ~ 2000\n"); - LOG("ParamIndex: 20 -> Mbhl Comp Mid Ratio\n"); - LOG("ParamScale: 1.0 ~ 20.0\n"); - LOG("ParamIndex: 21 -> Mbhl Comp Mid Thresh\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 22 -> Mbhl Comp Mid Makeup\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 23 -> Mbhl Comp High Release\n"); - LOG("ParamValue: 50 ~ 2000\n"); - LOG("ParamIndex: 24 -> Mbhl Comp High Ratio\n"); - LOG("ParamScale: 1.0 ~ 20.0\n"); - LOG("ParamIndex: 25 -> Mbhl Comp High Thresh\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 26 -> Mbhl Comp High Makeup\n"); - LOG("ParamScale: 0.0640 ~ 15.8479\n"); - LOG("ParamIndex: 27 -> Mbhl Boost\n"); - LOG("ParamScale: 0.001 ~ 1000\n"); - LOG("ParamIndex: 28 -> Mbhl Threshold\n"); - LOG("ParamScale: 0.0640 ~ 1.0\n"); - LOG("ParamIndex: 29 -> Mbhl Slow Offset\n"); - LOG("ParamScale: 0.317 ~ 3.1619\n"); - LOG("ParamIndex: 30 -> Mbhl Fast Attack\n"); - LOG("ParamScale: 0 ~ 10\n"); - LOG("ParamIndex: 31 -> Mbhl Fast Release\n"); - LOG("ParamValue: 10 ~ 500\n"); - LOG("ParamIndex: 32 -> Mbhl Slow Attack\n"); - LOG("ParamValue: 100 ~ 1000\n"); - LOG("ParamIndex: 33 -> Mbhl Slow Release\n"); - LOG("ParamValue: 100 ~ 2000\n"); - LOG("ParamIndex: 34 -> Mbhl Delay\n"); - LOG("ParamValue: 0 ~ 16\n"); - LOG("ParamIndex: 35 -> Mbhl Envelope Freq\n"); - LOG("ParamValue: 5 ~ 500\n"); - LOG("ParamIndex: 36 -> TBHDX Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 37 -> TBHDX Mono Mode\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 38 -> TBHDX Max Gain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 39 -> TBHDX Spk Size\n"); - LOG("ParamValue: 0 ~ 12\n"); - LOG("ParamIndex: 40 -> TBHDX HP Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 41 -> TBHDX Temp Gain\n"); - LOG("ParamScale: 0.0 ~ 1.0\n"); - LOG("ParamIndex: 42 -> TBHDX Process Discard\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 43 -> TBHDX HP Order\n"); - LOG("ParamValue: 1 ~ 8\n"); - LOG("ParamIndex: 44 -> VX Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 45 -> VX Input Mode\n"); - LOG("ParamValue: 0 ~ 4\n"); - LOG("ParamIndex: 47 -> VX Head Room Gain\n"); - LOG("ParamScale: 0.125 ~ 1.0\n"); - LOG("ParamIndex: 48 -> VX Proc Output Gain\n"); - LOG("ParamScale: 0.5 ~ 4.0\n"); - LOG("ParamIndex: 50 -> TSX Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 51 -> TSX Passive Matrix Upmixer Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 52 -> TSX Height Upmixer Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 53 -> TSX Lpr Gain\n"); - LOG("ParamScale: 0.000 ~ 2.0\n"); - LOG("ParamIndex: 54 -> TSX Center Gain\n"); - LOG("ParamScale: 1.0 ~ 2.0\n"); - LOG("ParamIndex: 55 -> TSX Horiz Vir Effect Ctrl\n"); - LOG("ParamValue: 0 -> default 1 -> mild\n"); - LOG("ParamIndex: 56 -> TSX Height Mix Coeff\n"); - LOG("ParamScale: 0.5 ~ 2.0\n"); - LOG("ParamIndex: 57 -> TSX Process Discard\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 58 -> TSX Height Discard\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 59 -> TSX Frnt Ctrl\n"); - LOG("ParamScale: 0.5 ~ 2.0\n"); - LOG("ParamIndex: 60 -> TSX Srnd Ctrl\n"); - LOG("ParamScale: 0.5 ~ 2.0\n"); - LOG("ParamIndex: 61 -> VX DC Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 62 -> VX DC Control\n"); - LOG("ParamScale: 0.5 ~ 2.0\n"); - LOG("ParamIndex: 63 -> VX DEF Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 64 -> VX DEF Control\n"); - LOG("ParamScale: 0.5 ~ 2.0\n"); - LOG("ParamIndex: 65 -> Loudness Control Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 66 -> Loudness Control Target Loudness\n"); - LOG("ParamValue: -40 ~ 0\n"); - LOG("ParamIndex: 67 -> Loudness Control Preset\n"); - LOG("ParamValue: 0 -> light 1 -> mid 2 -> Aggresive \n"); - LOG("ParamIndex: 69 -> tbhd app spksize\n"); - LOG("ParamValue 40 ~ 600 \n"); - LOG("ParamIndex: 70 -> tbhd app hpratio\n"); - LOG("ParamScale 0 ~ 1.0\n"); - LOG("ParamIndex: 71 -> tbhd app extbass\n"); - LOG("ParamScale 0 ~ 1.0\n"); - LOG("ParamIndex: 72 -> mbhl frt lowcross\n"); - LOG("ParamScale 40 ~ 8000\n"); - LOG("ParamIndex: 73 -> mbhl frt midcross\n"); - LOG("ParamScale 40 ~ 8000\n"); - LOG("****************************************************************************\n\n"); - - LOG("**********************************DBX***********************************\n"); - LOG("EffectIndex: 7\n"); - LOG("ParamIndex: 0 -> Enable\n"); - LOG("ParamValue: 0 -> Disable 1 -> Enable\n"); - LOG("ParamIndex: 1 -> Choose mode(son_mode--vol_mode--sur_mode)\n"); - LOG("ParamValue: son_mode 0-4 vol_mode 0-2 sur_mode 0-2\n"); - LOG("****************************************************************************\n\n"); - - if (argc != 4 && argc != 12 && argc != 8 && argc != 6) { - LOG("Usage: %s <EffectIndex> <ParamIndex> <ParamValue/ParamScale/gParamBand>\n", argv[0]); - return -1; - } else { - LOG("start...\n"); + + if (argc < 4) { + if (argc == 1) { + LOG("********************Audio Effect Tuning Tool help*****************************\n"); + LOG("Choice an audio effect to get detail help!\n"); + LOG("EffectIndex: 0: Amlogic BALANCE\n"); + LOG(" 1: DTS SRS\n"); + LOG(" 2: Amlogic TREBLEBASS\n"); + LOG(" 3: Amlogic HPEQ\n"); + LOG(" 4: Amlogic AVL\n"); + LOG(" 5: Amlogic GEQ\n"); + LOG(" 6: DTS VIRTUALX\n"); + LOG(" 7: DBX-TV DBX\n"); + LOG("Usage: %s <EffectIndex>\n", argv[0]); + LOG("******************************************************************************\n"); + return 0; + } sscanf(argv[1], "%d", &gEffectIndex); - sscanf(argv[2], "%d", &gParamIndex); - if (gEffectIndex == 1 && (gParamIndex == 7 || gParamIndex == 9 || gParamIndex == 11 || (gParamIndex >= 13 && gParamIndex <= 16))) + PrintHelp(gEffectIndex, argv[0]); + return 0; + } + + LOG("start...\n"); + sscanf(argv[1], "%d", &gEffectIndex); + sscanf(argv[2], "%d", &gParamIndex); + + switch (gEffectIndex) { + case EFFECT_BALANCE: + //------------get Balance parameters--------------------------------------- + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_SRS: + //------------get TruSurround parameters----------------------------------- + if (gParamIndex == SRS_PARAM_TRUEBASS_GAIN + || gParamIndex == SRS_PARAM_DIALOGCLARTY_GAIN + || gParamIndex == SRS_PARAM_DEFINITION_GAIN + || (gParamIndex >= SRS_PARAM_SURROUND_GAIN + && gParamIndex <= SRS_PARAM_OUTPUT_GAIN_COMP)) { sscanf(argv[3], "%f", &gParamScale); - else if (gEffectIndex == 3 && gParamIndex == 2) { - sscanf(argv[3], "%d", &gParamBand[0]); - sscanf(argv[4], "%d", &gParamBand[1]); - sscanf(argv[5], "%d", &gParamBand[2]); - sscanf(argv[6], "%d", &gParamBand[3]); - sscanf(argv[7], "%d", &gParamBand[4]); - } else if (gEffectIndex == 5 && gParamIndex == 2) { - sscanf(argv[3], "%d", &gParamBands[0]); - sscanf(argv[4], "%d", &gParamBands[1]); - sscanf(argv[5], "%d", &gParamBands[2]); - sscanf(argv[6], "%d", &gParamBands[3]); - sscanf(argv[7], "%d", &gParamBands[4]); - sscanf(argv[8], "%d", &gParamBands[5]); - sscanf(argv[9], "%d", &gParamBands[6]); - sscanf(argv[10], "%d", &gParamBands[7]); - sscanf(argv[11], "%d", &gParamBands[8]); - } else if ((gEffectIndex == 6) && ((gParamIndex >= 4 && gParamIndex <= 6) || gParamIndex == 9 || (gParamIndex >= 16 && gParamIndex <= 18) - ||(gParamIndex >= 20 && gParamIndex <= 22) || (gParamIndex >= 24 && gParamIndex <= 30) || gParamIndex == 38 || gParamIndex == 41 - || gParamIndex == 47 || gParamIndex == 48 || gParamIndex == 53 || gParamIndex == 54 || gParamIndex == 56 || gParamIndex == 59 || - gParamIndex == 60 || gParamIndex == 62 || gParamIndex == 64) || (gParamIndex >= 70 && gParamIndex <= 73)) { + LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); + } else { + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_TREBLEBASS: + //------------get TrebleBass parameters------------------------------------ + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_HPEQ: + //------------get HPEQ parameters------------------------------------------ + if (gParamIndex == HPEQ_PARAM_EFFECT_CUSTOM) { + for (int i = 0; i < 5; i++) { + int ParamBand = 0; + sscanf(argv[i + 3], "%d", &ParamBand); + gParamBand[i] = (char)ParamBand; + LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, gParamBand[i]); + } + } else { + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_GEQ: + //------------get GEQ parameters------------------------------------------ + if (gParamIndex == GEQ_PARAM_EFFECT_CUSTOM) { + for (int i = 0; i < 9; i++) { + int ParamBand = 0; + sscanf(argv[i + 3], "%d", &ParamBand); + gParamBand[i] = (char)ParamBand; + LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, (int)gParamBands[i]); + } + } else { + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_AVL: + //------------get Avl parameters------------------------------------------- + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_VIRTUALX: + //------------get Virtualx parameters-------------------------------------- + if ((gParamIndex >= DTS_PARAM_MBHL_BYPASS_GAIN_I32 && gParamIndex <= DTS_PARAM_MBHL_VOLUME_I32) + || gParamIndex == DTS_PARAM_MBHL_OUTPUT_GAIN_I32 + || (gParamIndex >= DTS_PARAM_MBHL_COMP_LOW_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32) + || (gParamIndex >= DTS_PARAM_MBHL_COMP_MID_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32) + || (gParamIndex >= DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_FAST_ATTACK_I32) + || gParamIndex == DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32 || gParamIndex == DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32 + || gParamIndex == DTS_PARAM_TBHDX_MAXGAIN_I32 + || gParamIndex == DTS_PARAM_TBHDX_TEMP_GAIN_I32 || gParamIndex == DTS_PARAM_VX_HEADROOM_GAIN_I32 + || gParamIndex == DTS_PARAM_TBHDX_APP_HPRATIO_F32 || gParamIndex == DTS_PARAM_TBHDX_APP_EXTBASS_F32 + || gParamIndex == DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32 || gParamIndex == DTS_PARAM_TSX_LPR_GAIN_I32 + || gParamIndex == DTS_PARAM_TSX_CENTER_GAIN_I32 || gParamIndex == DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32 + || gParamIndex == DTS_PARAM_TSX_FRNT_CTRL_I32 || gParamIndex == DTS_PARAM_TSX_SRND_CTRL_I32 + || gParamIndex == DTS_PARAM_VX_DC_CONTROL_I32 || gParamIndex == DTS_PARAM_VX_DEF_CONTROL_I32) { sscanf(argv[3], "%f", &gParamScale); - } else if (gEffectIndex == 7 && gParamIndex == 1) { - sscanf(argv[3], "%d", &gmode[0]); - sscanf(argv[4], "%d", &gmode[1]); - sscanf(argv[5], "%d", &gmode[2]); - } else + LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); + } else if (gParamIndex == AUDIO_DTS_PARAM_TYPE_TRU_SURROUND || gParamIndex == AUDIO_DTS_PARAM_TYPE_CC3D || + gParamIndex == AUDIO_DTS_PARAM_TYPE_TRU_DIALOG) { + for (int i = 0; i < 8; i++) { + sscanf(argv[i + 3], "%f", &grange[i]); + LOG("EffectIndex:%d, ParamIndex:%d, grange:%f\n", gEffectIndex, gParamIndex, grange[i]); + } + } else if (gParamIndex == AUDIO_DTS_PARAM_TYPE_TRU_BASS) { + for (int i = 0; i < 10; i++) { + sscanf(argv[i + 3], "%f", &grange[i]); + LOG("EffectIndex:%d, ParamIndex:%d, grange:%f\n", gEffectIndex, gParamIndex, grange[i]); + } + } else if (gParamIndex == AUDIO_DTS_PARAM_TYPE_DEFINATION) { + for (int i = 0; i < 6; i++) { + sscanf(argv[i + 3], "%f", &grange[i]); + LOG("EffectIndex:%d, ParamIndex:%d, grange:%f\n", gEffectIndex, gParamIndex, grange[i]); + } + } else if (gParamIndex == AUDIO_DTS_PARAM_TYPE_TRU_VOLUME) { + for (int i = 0; i < 3; i++) { + sscanf(argv[i + 3], "%f", &grange[i]); + LOG("EffectIndex:%d, ParamIndex:%d, grange:%f\n", gEffectIndex, gParamIndex, grange[i]); + } + } else { sscanf(argv[3], "%d", &gParamValue); - } - if (gEffectIndex >= (int)(sizeof(gEffectStr)/sizeof(gEffectStr[0]))) { - LOG("Effect is not exist\n"); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_DBX: + //------------get DBX parameters------------------------------------------- + if (gParamIndex == DBX_SET_MODE) { + for (int i = 0; i < 3; i++) { + int mode = 0; + sscanf(argv[i + 3], "%d", &mode); + gmode[i] = (char)mode; + LOG("EffectIndex:%d, ParamIndex:%d, ParamMode:%d\n", gEffectIndex, gParamIndex, (int)gmode[i]); + } + } else { + sscanf(argv[3], "%d", &gParamValue); + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + default: + LOG("EffectIndex = %d is invalid\n", gEffectIndex); return -1; } - if (gEffectIndex == 1 && (gParamIndex == 7 || gParamIndex == 9 || gParamIndex == 11 || (gParamIndex >= 13 && gParamIndex <= 16))) - LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); - else if (gEffectIndex == 3 && gParamIndex == 2) { - for (int i = 0; i < 5; i++) - LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, gParamBand[i]); - } else if (gEffectIndex == 5 && gParamIndex == 2) { - for (int i = 0; i < 9; i++) - LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, gParamBands[i]); - } else if (gEffectIndex == 6 && ((gParamIndex >= 4 && gParamIndex <= 6) || gParamIndex == 9 || (gParamIndex >= 16 && gParamIndex <= 18) - ||(gParamIndex >= 20 && gParamIndex <= 22) || (gParamIndex >= 24 && gParamIndex <= 30) || gParamIndex == 38 || gParamIndex == 41 - || gParamIndex == 47 || gParamIndex == 48 || gParamIndex == 53 || gParamIndex == 54 || gParamIndex == 56 || gParamIndex == 59 || - gParamIndex == 60 || gParamIndex == 62 || gParamIndex == 64) || (gParamIndex >= 70 && gParamIndex <= 73) ) - LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); - else if (gEffectIndex == 7 && gParamIndex == 1) { - for (int i = 0; i < 3; i++) - LOG("EffectIndex:%d, ParamIndex:%d, ParamMode:%d\n", gEffectIndex, gParamIndex, gmode[i]); - } else - LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); while (1) { switch (gEffectIndex) { case EFFECT_BALANCE: @@ -2135,7 +2324,7 @@ int main(int argc,char **argv) goto Error; } //------------set HPEQ parameters------------------------------------------ - if (HPEQ_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamBand) < 0) + if (HPEQ_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue, gParamBand) < 0) LOG("HPEQ Test failed\n"); break; case EFFECT_GEQ: @@ -2165,7 +2354,7 @@ int main(int argc,char **argv) goto Error; } //------------set Virtualx parameters------------------------------------------- - if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale,grange) < 0) LOG("Virtualx Test failed\n"); break; case EFFECT_DBX: @@ -2175,59 +2364,150 @@ int main(int argc,char **argv) goto Error; } //------------set DBX parameters------------------------------------------------ - if (DBX_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gmode) < 0) + if (DBX_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue, gmode) < 0) LOG("DBX Test failed\n"); break; default: - LOG("EffectIndex = %d invalid\n", gEffectIndex); break; } +Retry_input: LOG("Please enter param: <27> to Exit\n"); LOG("Please enter param: <EffectIndex> <ParamIndex> <ParamValue/ParamScale>\n"); - scanf("%d", &gEffectIndex); + + /*sleep 500ms to wait new input*/ + usleep(500*1000); + + if (GetIntData(&gEffectIndex) < 0) + goto Retry_input; + if (gEffectIndex == 27) { LOG("Exit...\n"); break; } - scanf("%d", &gParamIndex); - if (gEffectIndex == 1 && (gParamIndex == 7 || gParamIndex == 9 || gParamIndex == 11 || (gParamIndex >= 13 && gParamIndex <= 16))) - scanf("%f", &gParamScale); - else if (gEffectIndex == 3 && gParamIndex == 2) { - scanf("%d %d %d %d %d",&gParamBand[0],&gParamBand[1],&gParamBand[2],&gParamBand[3],&gParamBand[4]); - } else if (gEffectIndex == 5 && gParamIndex == 2) { - scanf("%d %d %d %d %d %d %d %d %d",&gParamBands[0],&gParamBands[1],&gParamBands[2],&gParamBands[3],&gParamBands[4], - &gParamBands[5],&gParamBands[6],&gParamBands[7],&gParamBands[8]); - } else if (gEffectIndex == 6 && ((gParamIndex >= 4 && gParamIndex <= 6) || gParamIndex == 9 || (gParamIndex >= 16 && gParamIndex <= 18) - ||(gParamIndex >= 20 && gParamIndex <= 22) || (gParamIndex >= 24 && gParamIndex <= 30) || gParamIndex == 38 || gParamIndex == 41 - || gParamIndex == 47 || gParamIndex == 48 || gParamIndex == 53 || gParamIndex == 54 || gParamIndex == 56 || gParamIndex == 59 || - gParamIndex == 60 || gParamIndex == 62 || gParamIndex == 64) || (gParamIndex >= 70 && gParamIndex <= 73)) { - scanf("%f", &gParamScale); - } else if (gEffectIndex == 7 && gParamIndex == 1) { - scanf("%d %d %d",&gmode[0],&gmode[1],&gmode[2]); - } else - scanf("%d", &gParamValue); - if (gEffectIndex >= (int)(sizeof(gEffectStr)/sizeof(gEffectStr[0]))) { - LOG("Effect is not exist\n"); - goto Error; - } - if (gEffectIndex == 1 && (gParamIndex == 7 || gParamIndex == 9 || gParamIndex == 11 || (gParamIndex >= 13 && gParamIndex <= 16))) - LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); - else if (gEffectIndex == 6 && ((gParamIndex >= 4 && gParamIndex <= 6) || gParamIndex == 9 || (gParamIndex >= 16 && gParamIndex <= 18) - ||(gParamIndex >= 20 && gParamIndex <= 22) || (gParamIndex >= 24 && gParamIndex <= 30) || gParamIndex == 38 || gParamIndex == 41 - || gParamIndex == 47 || gParamIndex == 48 || gParamIndex == 53 || gParamIndex == 54 || gParamIndex == 56 || gParamIndex == 59 || - gParamIndex == 60 || gParamIndex == 62 || gParamIndex == 64) || (gParamIndex >= 70 && gParamIndex <= 73)) { - LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); + + if (GetIntData(&gParamIndex) < 0) + goto Retry_input; + + switch (gEffectIndex) { + case EFFECT_BALANCE: + //------------get Balance parameters--------------------------------------- + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_SRS: + //------------get TruSurround parameters----------------------------------- + if (gParamIndex == SRS_PARAM_TRUEBASS_GAIN + || gParamIndex == SRS_PARAM_DIALOGCLARTY_GAIN + || gParamIndex == SRS_PARAM_DEFINITION_GAIN + || (gParamIndex >= SRS_PARAM_SURROUND_GAIN + && gParamIndex <= SRS_PARAM_OUTPUT_GAIN_COMP)) { + if (GetFloatData(&gParamScale) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); + } else { + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); } - else - LOG("EffectIndex:%d, ParamIndex:%d, ParamValue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_TREBLEBASS: + //------------get TrebleBass parameters------------------------------------ + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_HPEQ: + //------------get HPEQ parameters------------------------------------------ + if (gParamIndex == HPEQ_PARAM_EFFECT_CUSTOM) { + for (int i = 0; i < 5; i++) { + int ParamBand = 0; + if (GetIntData(&ParamBand) < 0) + goto Retry_input; + gParamBand[i] = (char)ParamBand; + LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, (int)gParamBand[i]); + } + } else { + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_GEQ: + //------------get GEQ parameters------------------------------------------ + if (gParamIndex == GEQ_PARAM_EFFECT_CUSTOM) { + for (int i = 0; i < 9; i++) { + int ParamBand = 0; + if (GetIntData(&ParamBand) < 0) + goto Retry_input; + gParamBand[i] = (char)ParamBand; + LOG("EffectIndex:%d, ParamIndex:%d, ParamBand:%d\n", gEffectIndex, gParamIndex, (int)gParamBands[i]); + } + } else { + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_AVL: + //------------get Avl parameters------------------------------------------- + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + break; + case EFFECT_VIRTUALX: + //------------get Virtualx parameters-------------------------------------- + if ((gParamIndex >= DTS_PARAM_MBHL_BYPASS_GAIN_I32 && gParamIndex <= DTS_PARAM_MBHL_VOLUME_I32) + || gParamIndex == DTS_PARAM_MBHL_OUTPUT_GAIN_I32 + || (gParamIndex >= DTS_PARAM_MBHL_COMP_LOW_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32) + || (gParamIndex >= DTS_PARAM_MBHL_COMP_MID_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32) + || (gParamIndex >= DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32 && gParamIndex <= DTS_PARAM_MBHL_FAST_ATTACK_I32) + || gParamIndex == DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32 || gParamIndex == DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32 + || gParamIndex == DTS_PARAM_TBHDX_MAXGAIN_I32 + || gParamIndex == DTS_PARAM_TBHDX_TEMP_GAIN_I32 || gParamIndex == DTS_PARAM_VX_HEADROOM_GAIN_I32 + || gParamIndex == DTS_PARAM_TBHDX_APP_HPRATIO_F32 || gParamIndex == DTS_PARAM_TBHDX_APP_EXTBASS_F32 + || gParamIndex == DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32 || gParamIndex == DTS_PARAM_TSX_LPR_GAIN_I32 + || gParamIndex == DTS_PARAM_TSX_CENTER_GAIN_I32 || gParamIndex == DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32 + || gParamIndex == DTS_PARAM_TSX_FRNT_CTRL_I32 || gParamIndex == DTS_PARAM_TSX_SRND_CTRL_I32 + || gParamIndex == DTS_PARAM_VX_DC_CONTROL_I32 || gParamIndex == DTS_PARAM_VX_DEF_CONTROL_I32) { + if (GetFloatData(&gParamScale) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, ParamScale:%f\n", gEffectIndex, gParamIndex, gParamScale); + } else { + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + case EFFECT_DBX: + //------------get DBX parameters------------------------------------------- + if (gParamIndex == DBX_SET_MODE) { + for (int i = 0; i < 3; i++) { + int mode = 0; + if (GetIntData(&mode) < 0) + goto Retry_input; + gmode[i] = (signed char)mode; + LOG("EffectIndex:%d, ParamIndex:%d, ParamMode:%d\n", gEffectIndex, gParamIndex, (int)gmode[i]); + } + } else { + if (GetIntData(&gParamValue) < 0) + goto Retry_input; + LOG("EffectIndex:%d, ParamIndex:%d, Paramvalue:%d\n", gEffectIndex, gParamIndex, gParamValue); + } + break; + default: + LOG("EffectIndex = %d is invalid\n", gEffectIndex); + break; + } } ret = 0; Error: for (i = 0; i < EFFECT_MAX; i++) { if (gAudioEffect[i] != NULL) { - delete gAudioEffect[i]; + //delete gAudioEffect[i]; + gAudioEffect[i]->setEnabled(false); gAudioEffect[i] = NULL; } } diff --git a/libaudioeffect/effects_tool/main2.cpp b/libaudioeffect/effects_tool/main2.cpp new file mode 100644 index 0000000..afaafa1 --- a/dev/null +++ b/libaudioeffect/effects_tool/main2.cpp @@ -0,0 +1,2012 @@ +/* + * Copyright (C) 2018 Amlogic Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * DESCRIPTION: + * This file implements a special EQ from Amlogic. + * + */ + +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/poll.h> +#include <sys/ioctl.h> +#include <fcntl.h> +#include <stdlib.h> +#include <string.h> +//#include <syslog.h> +#include <utils/Log.h> +#include <errno.h> +#include <media/AudioEffect.h> +#include <media/AudioSystem.h> +#include <media/AudioParameter.h> +#include <string.h> + + +#ifdef LOG +#undef LOG +#endif +#define LOG(x...) printf("[AudioEffect] " x) +#define LSR (1) + +using namespace android; + +//-------UUID------------------------------------------ +typedef enum { + EFFECT_BALANCE = 0, + EFFECT_SRS, + EFFECT_TREBLEBASS, + EFFECT_HPEQ, + EFFECT_AVL, + EFFECT_GEQ, + EFFECT_VIRTUALX, + EFFECT_MAX, +} EFFECT_params; + +effect_uuid_t gEffectStr[] = { + {0x6f33b3a0, 0x578e, 0x11e5, 0x892f, {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}}, // 0:Balance + {0x8a857720, 0x0209, 0x11e2, 0xa9d8, {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}}, // 1:TruSurround + {0x76733af0, 0x2889, 0x11e2, 0x81c1, {0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}}, // 2:TrebleBass + {0x049754aa, 0xc4cf, 0x439f, 0x897e, {0x37, 0xdd, 0x0c, 0x38, 0x11, 0x20}}, // 3:Hpeq + {0x08246a2a, 0xb2d3, 0x4621, 0xb804, {0x42, 0xc9, 0xb4, 0x78, 0xeb, 0x9d}}, // 4:Avl + {0x2e2a5fa6, 0xcae8, 0x45f5, 0xbb70, {0xa2, 0x9c, 0x1f, 0x30, 0x74, 0xb2}}, // 5:Geq + {0x61821587, 0xce3c, 0x4aac, 0x9122, {0x86, 0xd8, 0x74, 0xea, 0x1f, 0xb1}}, // 6:Virtualx +}; + +//-------------Virtualx parameter-------------------------- +typedef struct Virtualx_param_s { + effect_param_t param; + uint32_t command; + union { + int32_t v; + float f; + }; +} Virtualx_param_t; +typedef enum { + /*Tuning interface*/ + DTS_PARAM_MBHL_ENABLE_I32 = 0, + DTS_PARAM_MBHL_BYPASS_GAIN_I32, + DTS_PARAM_MBHL_REFERENCE_LEVEL_I32, + DTS_PARAM_MBHL_VOLUME_I32, + DTS_PARAM_MBHL_VOLUME_STEP_I32, + DTS_PARAM_MBHL_BALANCE_STEP_I32, + DTS_PARAM_MBHL_OUTPUT_GAIN_I32, + DTS_PARAM_MBHL_MODE_I32, + DTS_PARAM_MBHL_PROCESS_DISCARD_I32, + DTS_PARAM_MBHL_CROSS_LOW_I32, + DTS_PARAM_MBHL_CROSS_MID_I32, + DTS_PARAM_MBHL_COMP_ATTACK_I32, + DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32, + DTS_PARAM_MBHL_COMP_LOW_RATIO_I32, + DTS_PARAM_MBHL_COMP_LOW_THRESH_I32, + DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32, + DTS_PARAM_MBHL_COMP_MID_RELEASE_I32, + DTS_PARAM_MBHL_COMP_MID_RATIO_I32, + DTS_PARAM_MBHL_COMP_MID_THRESH_I32, + DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32, + DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32, + DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32, + DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32, + DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32, + DTS_PARAM_MBHL_BOOST_I32, + DTS_PARAM_MBHL_THRESHOLD_I32, + DTS_PARAM_MBHL_SLOW_OFFSET_I32, + DTS_PARAM_MBHL_FAST_ATTACK_I32, + DTS_PARAM_MBHL_FAST_RELEASE_I32, + DTS_PARAM_MBHL_SLOW_ATTACK_I32, + DTS_PARAM_MBHL_SLOW_RELEASE_I32, + DTS_PARAM_MBHL_DELAY_I32, + DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32, + DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32, + DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32, + DTS_PARAM_TBHDX_ENABLE_I32, + DTS_PARAM_TBHDX_MONO_MODE_I32, + DTS_PARAM_TBHDX_MAXGAIN_I32, + DTS_PARAM_TBHDX_SPKSIZE_I32, + DTS_PARAM_TBHDX_HP_ENABLE_I32, + DTS_PARAM_TBHDX_TEMP_GAIN_I32, + DTS_PARAM_TBHDX_PROCESS_DISCARD_I32, + DTS_PARAM_TBHDX_HPORDER_I32, + DTS_PARAM_TBHDX_APP_SPKSIZE_I32, + DTS_PARAM_TBHDX_APP_HPRATIO_F32, + DTS_PARAM_TBHDX_APP_EXTBASS_F32, + DTS_PARAM_VX_ENABLE_I32, + DTS_PARAM_VX_INPUT_MODE_I32, + DTS_PARAM_VX_OUTPUT_MODE_I32, + DTS_PARAM_VX_HEADROOM_GAIN_I32, + DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32, + DTS_PARAM_VX_REFERENCE_LEVEL_I32, + DTS_PARAM_TSX_ENABLE_I32, + DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32, + DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32, + DTS_PARAM_TSX_LPR_GAIN_I32, + DTS_PARAM_TSX_CENTER_GAIN_I32, + DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32, + DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32, + DTS_PARAM_TSX_PROCESS_DISCARD_I32, + DTS_PARAM_TSX_HEIGHT_DISCARD_I32, + DTS_PARAM_TSX_FRNT_CTRL_I32, + DTS_PARAM_TSX_SRND_CTRL_I32, + DTS_PARAM_VX_DC_ENABLE_I32, + DTS_PARAM_VX_DC_CONTROL_I32, + DTS_PARAM_VX_DEF_ENABLE_I32, + DTS_PARAM_VX_DEF_CONTROL_I32, + DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32, + DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, + DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32, + DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32, + /*UI interface*/ + VIRTUALX_PARAM_ENABLE, + VIRTUALX_PARAM_DIALOGCLARTY_MODE, + VIRTUALX_PARAM_SURROUND_MODE, +}Virtualx_params; + +Virtualx_param_t gVirtualxParam[] = { + {{0, 4, 4}, DTS_PARAM_MBHL_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_BYPASS_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_REFERENCE_LEVEL_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_VOLUME_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_VOLUME_STEP_I32, {100}}, + {{0, 4, 4}, DTS_PARAM_MBHL_BALANCE_STEP_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_OUTPUT_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_MODE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_PROCESS_DISCARD_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_CROSS_LOW_I32, {7}}, + {{0, 4, 4}, DTS_PARAM_MBHL_CROSS_MID_I32, {15}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_ATTACK_I32, {5}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32, {250}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_LOW_RATIO_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_LOW_THRESH_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_MID_RELEASE_I32, {250}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_MID_RATIO_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_MID_THRESH_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32, {250}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_BOOST_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_THRESHOLD_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_SLOW_OFFSET_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_MBHL_FAST_ATTACK_I32, {5}}, + {{0, 4, 4}, DTS_PARAM_MBHL_FAST_RELEASE_I32, {50}}, + {{0, 4, 4}, DTS_PARAM_MBHL_SLOW_ATTACK_I32, {500}}, + {{0, 4, 4}, DTS_PARAM_MBHL_SLOW_RELEASE_I32, {500}}, + {{0, 4, 4}, DTS_PARAM_MBHL_DELAY_I32, {8}}, + {{0, 4, 4}, DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32, {20}}, + {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_ENABLE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_MONO_MODE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_MAXGAIN_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_SPKSIZE_I32, {2}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_HP_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_TEMP_GAIN_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_PROCESS_DISCARD_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_HPORDER_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_SPKSIZE_I32,{0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_HPRATIO_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_TBHDX_APP_EXTBASS_F32,{0}}, + {{0, 4, 4}, DTS_PARAM_VX_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_VX_INPUT_MODE_I32, {4}}, + {{0, 4, 4}, DTS_PARAM_VX_OUTPUT_MODE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_VX_HEADROOM_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_VX_REFERENCE_LEVEL_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TSX_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_LPR_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_CENTER_GAIN_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_PROCESS_DISCARD_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TSX_HEIGHT_DISCARD_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_TSX_FRNT_CTRL_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_TSX_SRND_CTRL_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_VX_DC_ENABLE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_VX_DC_CONTROL_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_VX_DEF_ENABLE_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_VX_DEF_CONTROL_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32, {1}}, + {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, {-24}}, + {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32, {0}}, + {{0, 4, 4}, DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32,{0}}, + {{0, 4, 4}, VIRTUALX_PARAM_ENABLE, {1}}, + {{0, 4, 4}, VIRTUALX_PARAM_DIALOGCLARTY_MODE, {1}}, + {{0, 4, 4}, VIRTUALX_PARAM_SURROUND_MODE, {1}}, + +}; +const char *VXStatusstr[] = {"Disable", "Enable"}; + +static int Virtualx_effect_func(AudioEffect* gAudioEffect, int gParamIndex, int gParamValue,float gParamScale) +{ + int rc = 0; + switch (gParamIndex) { + case VIRTUALX_PARAM_ENABLE: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: Status gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + if (!gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param)) + LOG("=================successful\n"); + else + LOG("=====================failed\n"); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("Virtualx: Status is %d -> %s\n", gParamValue, VXStatusstr[gVirtualxParam[gParamIndex].v]); + return 0; + case DTS_PARAM_MBHL_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: MBHL ENABLE gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_BYPASS_GAIN_I32: + if (gParamScale < 0 || gParamScale > 1.0) { + LOG("Vritualx: mbhl bypass gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl bypassgain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_REFERENCE_LEVEL_I32: + if (gParamScale < 0.0009 || gParamScale > 1.0) { + LOG("Vritualx: mbhl reference level gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl reference level is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_VOLUME_I32: + if (gParamScale < 0 || gParamScale > 1.0) { + LOG("Vritualx: mbhl volume gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl volume is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_VOLUME_STEP_I32: + if (gParamValue < 0 || gParamValue > 100) { + LOG("Vritualx: mbhl volumestep gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl volume step is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_BALANCE_STEP_I32: + if (gParamValue < -10 || gParamValue > 10) { + LOG("Vritualx: mbhl banlance step gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl balance step is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_OUTPUT_GAIN_I32: + if (gParamScale < 0 || gParamScale > 1.0) { + LOG("Vritualx: mbhl output gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + // gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl output gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_BOOST_I32: + if (gParamScale < 0.001 || gParamScale > 1000) { + LOG("Vritualx: mbhl boost gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl boost is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_THRESHOLD_I32: + if (gParamScale < 0.064 || gParamScale > 1.0) { + LOG("Vritualx: mbhl threshold gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl threshold is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_SLOW_OFFSET_I32: + if (gParamScale < 0.3170 || gParamScale > 3.1619) { + LOG("Vritualx: mbhl slow offset gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl slow offset is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_FAST_ATTACK_I32: + if (gParamScale < 0 || gParamScale > 10) { + LOG("Vritualx: mbhl fast attack gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl fast attack is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_FAST_RELEASE_I32: + if (gParamValue < 10 || gParamValue > 500) { + LOG("Vritualx: mbhl fast release gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl fast release is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_SLOW_ATTACK_I32: + if (gParamValue < 100 || gParamValue > 1000) { + LOG("Vritualx: mbhl slow attack gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl slow attack is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_SLOW_RELEASE_I32: + if (gParamValue < 100 || gParamValue > 2000) { + LOG("Vritualx: mbhl slow release gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl slow release is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_DELAY_I32: + if (gParamValue < 1 || gParamValue > 16) { + LOG("Vritualx: mbhl delay gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl delay is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32: + if (gParamValue < 5 || gParamValue > 500) { + LOG("Vritualx: mbhl envelope freq gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl envelope freq is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_MODE_I32: + if (gParamValue < 0 || gParamValue > 4) { + LOG("Vritualx: mbhl mode gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl mode is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_PROCESS_DISCARD_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: mbhl process discard gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl process discard is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_CROSS_LOW_I32: + if (gParamValue < 0 || gParamValue > 20) { + LOG("Vritualx: mbhl cross low gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl cross low is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_CROSS_MID_I32: + if (gParamValue < 0 || gParamValue > 20) { + LOG("Vritualx: mbhl cross mid gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl cross mid is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_COMP_ATTACK_I32: + if (gParamValue < 0 || gParamValue > 100) { + LOG("Vritualx: mbhl compressor attack time gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor attack time is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32: + if (gParamValue < 50 || gParamValue > 2000) { + LOG("Vritualx: mbhl compressor low release time gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor low release time is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_COMP_LOW_RATIO_I32: + if (gParamScale < 1.0 || gParamScale > 20.0) { + LOG("Vritualx: mbhl compressor low ratio gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor low ratio is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_LOW_THRESH_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor low threshold gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor low threshold is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor low makeup gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor low makeup is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_MID_RELEASE_I32: + if (gParamValue < 50 || gParamValue > 2000) { + LOG("Vritualx: mbhl compressor mid release time gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor mid release time is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_COMP_MID_RATIO_I32: + if (gParamScale < 1.0 || gParamScale > 20.0) { + LOG("Vritualx: mbhl compressor mid ratio gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor mid ratio is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_MID_THRESH_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor mid threshold gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor mid threshold is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor mid makeup gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor mid makeup is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32: + if (gParamValue < 50 || gParamValue > 2000) { + LOG("Vritualx: mbhl compressor high release time gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor high release time is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32: + if (gParamScale < 1.0 || gParamScale > 20.0) { + LOG("Vritualx: mbhl compressor high ratio gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor high ratio is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor high threshold gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor high threshold is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32: + if (gParamScale < 0.0640 || gParamScale > 15.8479) { + LOG("Vritualx: mbhl compressor high makeup gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("mbhl compressor high makeup is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TBHDX_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tbhdx enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_MONO_MODE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tbhdx mono mode gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx mono mode is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_SPKSIZE_I32: + if (gParamValue < 0 || gParamValue > 12) { + LOG("Vritualx: tbhdx spksize gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx spksize is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_TEMP_GAIN_I32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("Vritualx: tbhdx temp gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx temp gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TBHDX_MAXGAIN_I32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("Vritualx: tbhdx max gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx max gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TBHDX_PROCESS_DISCARD_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tbhdx process discard gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx process discard is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_HPORDER_I32: + if (gParamValue < 0 || gParamValue > 8) { + LOG("Vritualx: tbhdx high pass filter order gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx high pass filter order is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_HP_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tbhdx high pass enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tbhdx high pass enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: vxlib1 enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_INPUT_MODE_I32: + if (gParamValue < 0 || gParamValue > 4) { + LOG("Vritualx: vxlib1 input mode gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 input mode is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_HEADROOM_GAIN_I32: + if (gParamScale < 0.1250 || gParamScale > 1.0) { + LOG("Vritualx: vxlib1 headroom gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 headroom gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32: + if (gParamScale < 0.5 || gParamScale > 4.0) { + LOG("Vritualx: vxlib1 output gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 output gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 tsx enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx passive matrix upmixer enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 tsx passive matrix upmixer enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx horizontal Effect gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("vxlib1 tsx horizontal Effect is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TSX_FRNT_CTRL_I32: + if (gParamScale < 0.5 || gParamScale > 2.0) { + LOG("Vritualx: tsx frnt ctrl gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx frnt ctrl is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_SRND_CTRL_I32: + if (gParamScale < 0.5 || gParamScale > 2.0) { + LOG("Vritualx: tsx srnd ctrl gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx srnd ctrl is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_LPR_GAIN_I32: + if (gParamScale < 0.0 || gParamScale > 2.0) { + LOG("Vritualx: tsx lprtoctr mix gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx lprtoctr mix gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32: + if (gParamScale < 0.5 || gParamScale > 2.0) { + LOG("Vritualx: tsx heightmix coeff gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx heightmix coeff is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_CENTER_GAIN_I32: + if (gParamScale < 1.0 || gParamScale > 2.0) { + LOG("Vritualx: tsx center gain gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx center gain is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TSX_HEIGHT_DISCARD_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx height discard gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx height discard is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TSX_PROCESS_DISCARD_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx process discard gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx process discard is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx height upmix enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx height upmix enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_DC_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx dc enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx dc enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_DC_CONTROL_I32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("Vritualx: tsx dc level gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx dc level is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_VX_DEF_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("Vritualx: tsx def enable gParamValue = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx def enable is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_VX_DEF_CONTROL_I32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("Vritualx: tsx def level gParamValue = %f invalid\n", gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("tsx def level is %f \n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32: + if (gParamValue < 0 || gParamValue > 1) { + LOG("loudness control = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("loudness control is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32: + if (gParamValue < -40 || gParamValue > 0) { + LOG("loudness control target = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("loudness control target is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32: + if (gParamValue < 0 || gParamValue > 2) { + LOG("loudness control preset = %d invalid\n", gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + //gAudioEffect->getParameter(&gVirtualxParam[gParamIndex].param); + LOG("loudness control preset is %d \n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_APP_SPKSIZE_I32: + if (gParamValue < 40 || gParamValue > 600) { + LOG("app spksize = %d invaild\n",gParamValue); + return -1; + } + gVirtualxParam[gParamIndex].v = gParamValue; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("app spksize %d\n",gVirtualxParam[gParamIndex].v); + return 0; + case DTS_PARAM_TBHDX_APP_HPRATIO_F32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("app hpratio = %f invaild\n",gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("app hpratio is %f\n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_TBHDX_APP_EXTBASS_F32: + if (gParamScale < 0.0 || gParamScale > 1.0) { + LOG("app ettbass = %f invaild\n",gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("app ettbass is %f\n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32: + if (gParamScale < 40 || gParamScale > 8000.0) { + LOG("app low freq = %f invaild\n",gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + rc =gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("rc is %d\n",rc); + LOG("app low freq is %f\n",gVirtualxParam[gParamIndex].f); + return 0; + case DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32: + if (gParamScale < 40.0 || gParamScale > 8000.0) { + LOG("app mid freq = %f invaild\n",gParamScale); + return -1; + } + gVirtualxParam[gParamIndex].f = gParamScale; + gAudioEffect->setParameter(&gVirtualxParam[gParamIndex].param); + LOG("app mid freq is %f\n",gVirtualxParam[gParamIndex].f); + return 0; + default: + LOG("Virtualx: ParamIndex = %d invalid\n", gParamIndex); + return -1; + } +} + +static void effectCallback(int32_t event, void* user, void *info) +{ + LOG("%s : %s():line:%d\n", __FILE__, __FUNCTION__, __LINE__); +} + +static int create_audio_effect(AudioEffect **gAudioEffect, String16 name16, int index) +{ + status_t status = NO_ERROR; + AudioEffect *pAudioEffect = NULL; + audio_session_t gSessionId = AUDIO_SESSION_OUTPUT_MIX; + + if (*gAudioEffect != NULL) + return 0; + + pAudioEffect = new AudioEffect(name16); + if (!pAudioEffect) { + LOG("create audio effect object failed\n"); + return -1; + } + + status = pAudioEffect->set(NULL, + &(gEffectStr[index]), // specific uuid + 0, // priority, + effectCallback, + NULL, // callback user data + gSessionId, + 0); // default output device + if (status != NO_ERROR) { + LOG("set effect parameters failed\n"); + return -1; + } + + status = pAudioEffect->initCheck(); + if (status != NO_ERROR) { + LOG("init audio effect failed\n"); + return -1; + } + + pAudioEffect->setEnabled(true); + LOG("effect %d is %s\n", index, pAudioEffect->getEnabled()?"enabled":"disabled"); + + *gAudioEffect = pAudioEffect; + return 0; +} + +int main(int argc,char **argv) +{ + int i; + int ret = -1; + FILE *fp; + char *line = NULL; + size_t len = 0; + char *Stringptr; + ssize_t read; + int gEffectIndex = 6; + int gParamIndex = 0; + int gParamValue = 0; + float gParamScale = 0.0f; + status_t status = NO_ERROR; + String16 name16[EFFECT_MAX] = {String16("AudioEffectEQTest"), String16("AudioEffectSRSTest"), String16("AudioEffectHPEQTest"), + String16("AudioEffectAVLTest"), String16("AudioEffectGEQTest"),String16("AudioEffectVirtualxTest")}; + AudioEffect* gAudioEffect[EFFECT_MAX] = {0}; + audio_session_t gSessionId = AUDIO_SESSION_OUTPUT_MIX; + fp = fopen("vxp2_newConfig.txt", "r"); + if (fp == NULL) + exit(EXIT_FAILURE); + while (1) { + while ((read = getline(&line, &len, fp)) != -1) { + if ( (strncmp(line, "virtualx.vxlib1.enable", 22)) == 0) + { + Stringptr = line; + Stringptr += 22; + gParamValue = strtol(Stringptr, NULL, 0 ); + gParamIndex = (int)DTS_PARAM_VX_ENABLE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.mbhl.enable", 20)) == 0) + { + Stringptr = line; + Stringptr += 20; + gParamValue = strtol(Stringptr, NULL, 0); + //printf("mbhl_enable is %d\n",data.mbhl_enable); + gParamIndex = (int)DTS_PARAM_MBHL_ENABLE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.tbhdx.enable", 21)) == 0) + { + Stringptr = line; + Stringptr += 21; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_TBHDX_ENABLE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.vxlib1.out_mode", 24)) == 0) + { + Stringptr = line; + Stringptr += 24; + gParamValue = strtol(Stringptr, NULL, 0); + //do nothing + } + else if ((strncmp(line, "virtualx.vxlib1.headroom_gain", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + //printf("headroom_gain is %f\n",data.headroom_gain); + gParamIndex = (int)DTS_PARAM_VX_HEADROOM_GAIN_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.vxlib1.processing_output_gain", 38)) == 0) + { + Stringptr = line; + Stringptr += 38; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.enable", 26)) == 0) + { + Stringptr = line; + Stringptr += 26; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 52; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.pssv_mtrx_enable", 36)) == 0) + { + Stringptr = line; + Stringptr += 36; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 53; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.hght_upmix_enable", 37)) == 0) + { + Stringptr = line; + Stringptr += 37; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 54; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.horiznt_effect_ctrl", 39)) == 0) + { + Stringptr = line; + Stringptr += 39; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 57; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.LpRtoCtr_mix_gain", 37)) == 0) + { + Stringptr = line; + Stringptr += 37; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 55; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.surround_control", 36)) == 0) + { + Stringptr = line; + Stringptr += 36; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 62; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.front_control", 33)) == 0) + { + Stringptr = line; + Stringptr += 33; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 61; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.heightmix_coeff", 35)) == 0) + { + Stringptr = line; + Stringptr += 35; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 58; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.vxlib1.tsx.ctrgain", 27)) == 0) + { + Stringptr = line; + Stringptr += 27; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 56; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.dialogClarity.enable", 36)) == 0) + { + Stringptr = line; + Stringptr += 36; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 63; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.dialogClarity.level", 35)) == 0) + { + Stringptr = line; + Stringptr += 35; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 64; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.definition.enable", 33)) == 0) + { + Stringptr = line; + Stringptr += 33; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 65; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.vxlib1.definition.level", 32)) == 0) + { + Stringptr = line; + Stringptr += 32; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 66; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.tbhdx.mono", 19)) == 0) + { + Stringptr = line; + Stringptr += 19; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 36; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.speaker_size", 27)) == 0) + { + Stringptr = line; + Stringptr += 27; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 38; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.tbhdx.max_gain", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 37; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.hp_enable", 24)) == 0) + { + Stringptr = line; + Stringptr += 24; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 39; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.hp_order", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 42; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.temporal_gain", 28)) == 0) + { + Stringptr = line; + Stringptr += 28; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 40; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.bypass_gain", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamScale = strtof(Stringptr, NULL); + //printf("set bysspass gain is %f\n",data.mbhl_bypassgain); + gParamIndex = 1; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.reference_level", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + //printf("mbhl_reflevel is %f\n",data.mbhl_reflevel); + gParamIndex = 2; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.volume_step", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamValue = strtol(Stringptr, NULL, 0); + //printf("volume step is %d\n",data.mbhl_volumesttep); + gParamIndex = 4; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.volume", 20)) == 0) + { + Stringptr = line; + Stringptr += 20; + gParamScale = strtof(Stringptr, NULL); + //printf("volume is %f\n",data.mbhl_volume); + gParamIndex = 3; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.balance_step", 26)) == 0) + { + Stringptr = line; + Stringptr += 26; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 5; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + + else if ((strncmp(line, "virtualx.mbhl.output_gain", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 6; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.boost", 19)) == 0) + { + Stringptr = line; + Stringptr += 19; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 24; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.threshold", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 25; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.slow_offset", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 26; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.fast_attack", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 27; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.fast_release", 26)) == 0) + { + Stringptr = line; + Stringptr += 26; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 28; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.slow_attack", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 29; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.slow_release", 26)) == 0) + { + Stringptr = line; + Stringptr += 26; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 30; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.delay", 19)) == 0) + { + Stringptr = line; + Stringptr += 19; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 31; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.envelope_frequency", 32)) == 0) + { + Stringptr = line; + Stringptr += 32; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.mode", 18)) == 0) + { + Stringptr = line; + Stringptr += 18; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 7; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.cross_low", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 9; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.cross_mid", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 10; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_attack", 25)) == 0) + { + Stringptr = line; + Stringptr += 25; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 11; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_low_release", 30)) == 0) + { + Stringptr = line; + Stringptr += 30; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = 12; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_low_ratio", 28)) == 0) + { + Stringptr = line; + Stringptr += 28; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 13; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_low_thresh", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + //printf("mbhl_compressolt is %f",data.mbhl_compressolt); + gParamIndex = 14; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_low_makeup", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = 15; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_mid_release", 30)) == 0) + { + Stringptr = line; + Stringptr += 30; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_MID_RELEASE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_mid_ratio", 28)) == 0) + { + Stringptr = line; + Stringptr += 28; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_MID_RATIO_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_mid_thresh", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_MID_THRESH_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_mid_makeup", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_high_release", 31)) == 0) + { + Stringptr = line; + Stringptr += 31; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_high_ratio", 29)) == 0) + { + Stringptr = line; + Stringptr += 29; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_high_thresh", 30)) == 0) + { + Stringptr = line; + Stringptr += 30; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.mbhl.comp_high_makeup", 30)) == 0) + { + Stringptr = line; + Stringptr += 30; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.app_custom_speaker_size", 38)) == 0) + { + Stringptr = line; + Stringptr += 38; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_TBHDX_APP_SPKSIZE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if ((strncmp(line, "virtualx.tbhdx.app_hp_ratio", 27)) == 0) + { + Stringptr = line; + Stringptr += 27; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_TBHDX_APP_HPRATIO_F32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "virtualx.tbhdx.app_extbass_level", 32)) == 0) + { + Stringptr = line; + Stringptr += 32; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_TBHDX_APP_EXTBASS_F32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if((strncmp(line, "virtualx.mbhl.frt_lowcross", 26)) == 0) + { + + Stringptr = line; + Stringptr += 26; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + + } + else if((strncmp(line, "virtualx.mbhl.frt_midcross", 26)) == 0) + { + Stringptr = line; + Stringptr += 26; + gParamScale = strtof(Stringptr, NULL); + gParamIndex = (int)DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ( (strncmp(line, "loudness-control-en", 19)) == 0) + { + Stringptr = line; + Stringptr += 19; + gParamValue = strtol(Stringptr, NULL, 0 ); + //printf("Truvolume_enable is %d\n",data.Truvolume_enable); + gParamIndex = (int)DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "loudness-control-target-loudness", 32)) == 0) + { + Stringptr = line; + Stringptr += 32; + gParamValue = strtol(Stringptr, NULL, 0); + // printf("targetlevel is %d\n",data.targetlevel); + gParamIndex = (int)DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line, "loudness-control-preset", 23)) == 0) + { + Stringptr = line; + Stringptr += 23; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp(line,"virtualx.tbhdx.discard",22)) == 0) + { + Stringptr = line; + Stringptr += 22; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_TBHDX_PROCESS_DISCARD_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if((strncmp(line,"virtualx.mbhl.discard",21)) == 0) + { + Stringptr = line; + Stringptr += 21; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_MBHL_PROCESS_DISCARD_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if((strncmp(line,"virtualx.vxlib1.tsx.discard",27)) == 0) + { + Stringptr = line; + Stringptr += 27; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_TSX_PROCESS_DISCARD_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if((strncmp(line,"virtualx.vxlib1.height.discard",30)) == 0) + { + Stringptr = line; + Stringptr += 30; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)DTS_PARAM_TSX_HEIGHT_DISCARD_I32; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + else if ((strncmp (line,"enable",6)) == 0) + { + Stringptr = line; + Stringptr += 6; + gParamValue = strtol(Stringptr, NULL, 0); + gParamIndex = (int)VIRTUALX_PARAM_ENABLE; + ret = create_audio_effect(&gAudioEffect[EFFECT_VIRTUALX], name16[EFFECT_VIRTUALX], EFFECT_VIRTUALX); + if (ret < 0) { + printf("create Virtualx effect failed\n"); + goto Error; + } + if (Virtualx_effect_func(gAudioEffect[gEffectIndex], gParamIndex, gParamValue,gParamScale) < 0) + printf("Virtualx Test failed\n"); + } + } + printf("Please enter param: <27> to Exit\n"); + scanf("%d", &gEffectIndex); + if (gEffectIndex == 27) { + printf("Exit...\n"); + break; + } + + } + ret = 0; +Error: + for (i = 0; i < EFFECT_MAX; i++) { + if (gAudioEffect[i] != NULL) { + gAudioEffect[i] = NULL; + delete gAudioEffect[i]; + } + } + free(line); + return ret; +} + + + |