| |
| /* |
| * 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. |
| * |
| */ |
| |
| #ifndef VIRTUALX_V4_H |
| #define VIRTUALX_V4_H |
| |
| #include <system/audio_effect.h> |
| typedef enum { |
| /* |
| Range:[0 99] reserved for UI interface |
| */ |
| /* 1.Tuning VX command index */ |
| /* MBHL */ |
| PARAM_MBHL_ENABLE_I32 = 100, |
| PARAM_MBHL_BYPASS_GAIN_I32, |
| PARAM_MBHL_REFERENCE_LEVEL_I32, |
| PARAM_MBHL_VOLUME_I32, |
| PARAM_MBHL_VOLUME_STEP_I32, |
| PARAM_MBHL_BALANCE_STEP_I32, |
| PARAM_MBHL_OUTPUT_GAIN_I32, |
| PARAM_MBHL_CP_ENABLE_I32, |
| PARAM_MBHL_CP_LEVEL, |
| PARAM_MBHL_AC_ENABLE_I32, |
| PARAM_MBHL_AC_LEVEL, |
| PARAM_MBHL_MODE_I32, |
| PARAM_MBHL_PROCESS_DISCARD_I32, |
| PARAM_MBHL_CROSS_LOW_I32, |
| PARAM_MBHL_CROSS_MID_I32, |
| PARAM_MBHL_COMP_ATTACK_I32, |
| PARAM_MBHL_COMP_LOW_RELEASE_I32, |
| PARAM_MBHL_COMP_LOW_RATIO_I32, |
| PARAM_MBHL_COMP_LOW_THRESH_I32, |
| PARAM_MBHL_COMP_LOW_MAKEUP_I32, |
| PARAM_MBHL_COMP_MID_RELEASE_I32, |
| PARAM_MBHL_COMP_MID_RATIO_I32, |
| PARAM_MBHL_COMP_MID_THRESH_I32, |
| PARAM_MBHL_COMP_MID_MAKEUP_I32, |
| PARAM_MBHL_COMP_HIGH_RELEASE_I32, |
| PARAM_MBHL_COMP_HIGH_RATIO_I32, |
| PARAM_MBHL_COMP_HIGH_THRESH_I32, |
| PARAM_MBHL_COMP_HIGH_MAKEUP_I32, |
| PARAM_MBHL_BOOST_I32, |
| PARAM_MBHL_THRESHOLD_I32, |
| PARAM_MBHL_SLOW_OFFSET_I32, |
| PARAM_MBHL_FAST_ATTACK_I32, |
| PARAM_MBHL_FAST_RELEASE_I32, |
| PARAM_MBHL_SLOW_ATTACK_I32, |
| PARAM_MBHL_SLOW_RELEASE_I32, |
| PARAM_MBHL_DELAY_I32, |
| PARAM_MBHL_ENVELOPE_FREQUENCY_I32, |
| PARAM_MBHL_APP_FRT_LOWCROSS_F32, |
| PARAM_MBHL_APP_FRT_MIDCROSS_F32, |
| PARAM_MBHL_APP_LOWCROSS, |
| PARAM_MBHL_APP_MIDCROSS, |
| PARAM_MBHL_PARAM_MAX, |
| /* TBHDX */ |
| PARAM_TBHDX_PARAM_START = PARAM_MBHL_PARAM_MAX, |
| PARAM_TBHDX_FRONT_ENABLE, |
| PARAM_TBHDX_FRONT_PROC_MODE, |
| PARAM_TBHDX_FRONT_SPKSIZE, |
| PARAM_TBHDX_FRONT_DYNMS, |
| PARAM_TBHDX_FRONT_HP_EN, |
| PARAM_TBHDX_FRONT_HP_ORDER, |
| PARAM_TBHDX_FRONT_BASS_LVL, |
| PARAM_TBHDX_FRONT_EXT_BASS, |
| PARAM_TBHDX_FRONT_INPUT_GAIN, |
| PARAM_TBHDX_FRONT_BYPASS_GAIN, |
| //REAR |
| PARAM_TBHDX_REAR_ENABLE, |
| PARAM_TBHDX_REAR_PROC_MODE, |
| PARAM_TBHDX_REAR_SPKSIZE, |
| PARAM_TBHDX_REAR_DYNMS, |
| PARAM_TBHDX_REAR_HP_EN, |
| PARAM_TBHDX_REAR_HP_ORDER, |
| PARAM_TBHDX_REAR_BASS_LVL, |
| PARAM_TBHDX_REAR_EXT_BASS, |
| PARAM_TBHDX_REAR_INPUT_GAIN, |
| PARAM_TBHDX_REAR_BYPASS_GAIN, |
| //CENETER |
| PARAM_TBHDX_CENTER_ENABLE, |
| PARAM_TBHDX_CENTER_SPKSIZE, |
| PARAM_TBHDX_CENTER_DYNMS, |
| PARAM_TBHDX_CENTER_HP_EN, |
| PARAM_TBHDX_CENTER_HP_ORDER, |
| PARAM_TBHDX_CENTER_BASS_LVL, |
| PARAM_TBHDX_CENTER_EXT_BASS, |
| PARAM_TBHDX_CENTER_INPUT_GAIN, |
| PARAM_TBHDX_CENTER_BYPASS_GAIN, |
| //SURD |
| PARAM_TBHDX_SURROUND_ENABLE, |
| PARAM_TBHDX_SURD_PROC_MODE, |
| PARAM_TBHDX_SURD_SPKSIZE, |
| PARAM_TBHDX_SURD_DYNMS, |
| PARAM_TBHDX_SURD_HP_EN, |
| PARAM_TBHDX_SURD_HP_ORDER, |
| PARAM_TBHDX_SURD_BASS_LVL, |
| PARAM_TBHDX_SURD_EXT_BASS, |
| PARAM_TBHDX_SURD_INPUT_GAIN, |
| PARAM_TBHDX_SURD_BYPASS_GAIN, |
| PARAM_TBHDX_DELAY_MATCH_GAIN, |
| PARAM_TBHDX_PROCESS_DISCARD_I32, |
| PARAM_TBHDX_PARAM_MAX, |
| /*TBHD-APP*/ |
| PARAM_TBHDX_FRONT_APP_SPKSIZE = PARAM_TBHDX_PARAM_MAX + 1, |
| PARAM_TBHDX_FRONT_APP_TGAIN, |
| PARAM_TBHDX_FRONT_APP_HPR, |
| PARAM_TBHDX_FRONT_APP_EXTBASS, |
| PARAM_TBHDX_CENTER_APP_SPKSIZE, |
| PARAM_TBHDX_CENTER_APP_TGAIN, |
| PARAM_TBHDX_CENTER_APP_HPR, |
| PARAM_TBHDX_CENTER_APP_EXTBASS, |
| PARAM_TBHDX_SURD_APP_SPKSIZE, |
| PARAM_TBHDX_SURD_APP_TGAIN, |
| PARAM_TBHDX_SURD_APP_HPR, |
| PARAM_TBHDX_SURD_APP_EXTBASS, |
| PARAM_TBHDX_REAR_APP_SPKSIZE, |
| PARAM_TBHDX_REAR_APP_TGAIN, |
| PARAM_TBHDX_REAR_APP_HPR, |
| PARAM_TBHDX_REAR_APP_EXTBASS, |
| |
| /* VX force */ |
| PARAM_VX_FORCE_PARAM_START = PARAM_TBHDX_PARAM_MAX + 20, |
| PARAM_VX_FRAME_SIZE, |
| PARAM_VX_INPUT_PCM_STRIDE, |
| PARAM_VX_OUTPUT_PCM_STRIDE, |
| PARAM_VX_FORCE_PARAM_MAX, |
| /* VX general */ |
| PARAM_VX_GENERAL_PARAM_START = PARAM_VX_FORCE_PARAM_MAX + 1, |
| PARAM_VX_ENABLE_I32, |
| PARAM_VX_INPUT_MODE_I32, |
| PARAM_VX_OUTPUT_MODE_I32, |
| PARAM_VX_HEADROOM_GAIN_I32, |
| PARAM_VX_PROC_OUTPUT_GAIN_I32, |
| PARAM_VX_REFERENCE_LEVEL_I32, |
| PARAM_VX_PROCESS_DISCARD_I32, |
| PARAM_VX_PROCESS_MULTIRATE_PROC_TYPE_I32, |
| PARAM_VX_PROCESS_MULTIRATE_ENABLE, |
| PARAM_VX_PROCESS_FILTER_MODE, |
| PARAM_VX_GENERAL_PARAM_MAX, |
| /* VX TSX */ |
| PARAM_TSX_PARAM_START = PARAM_VX_GENERAL_PARAM_MAX + 1, |
| PARAM_TSX_ENABLE_I32, |
| PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32, |
| PARAM_TSX_HORIZNT_EFFECT_CTRL, |
| PARAM_TSX_PHANTOM_CTRGAIN, |
| PARAM_TSX_CTRGAIN, |
| PARAM_TSX_HEIGHTMIX_COEFF, |
| PARAM_TSX_HEIGHT_OUT_GAIN, |
| PARAM_TSX_PRECOND_FRONT, |
| PARAM_TSX_PRECOND_SURND, |
| PARAM_TSX_VXTOPSPK_LOC, |
| PARAM_TSX_FRNT_WIDE_EN, |
| PARAM_TSX_HEIGHT_VIRTUALIZER_EN, |
| PARAM_TSX_FRNT_SRND_EN, |
| PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32, |
| PARAM_TSX_LRMIX_RATIO2CTR, |
| PARAM_TSX_LFE_GAIN, |
| PARAM_TSX_HEIGHTMIX_COEFF_I32, |
| PARAM_TSX_PROCESS_DISCARD_I32, //not defined |
| PARAM_TSX_HEIGHT_DISCARD_I32, |
| PARAM_TSX_APP_LSTNR_DIST, |
| PARAM_TSX_APP_BTTM_DIST, |
| PARAM_TSX_APP_TOP_DIST, |
| PARAM_TSX_PARAM_MAX, |
| /* VX DC */ |
| PARAM_VX_DC_PARAM_START = PARAM_TSX_PARAM_MAX + 1, |
| PARAM_VX_DC_ENABLE_I32, |
| PARAM_VX_DC_CONTROL_I32, |
| PARAM_VX_DEF_ENABLE_I32, |
| PARAM_VX_DEF_CONTROL_I32, |
| PARAM_VX_CS2TO3_EN, |
| PARAM_VX_DC_PARAM_MAX, |
| /* VX LOUDNESS */ |
| PARAM_LOUDNESS_PARAM_START = PARAM_VX_DC_PARAM_MAX + 1, |
| PARAM_LOUDNESS_CONTROL_ENABLE_I32, |
| PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32, |
| PARAM_LOUDNESS_CONTROL_PRESET_I32, |
| PARAM_LOUDNESS_CONTROL_IO_MODE_I32, |
| PARAM_LOUDNESS_CONTROL_LATENCY_MODE_I32, |
| PARAM_LOUDNESS_CONTROL_DISCARD, |
| PARAM_LOUDNESS_PARAM_MAX, |
| /* VX AEQ */ |
| PARAM_AEQ_PARAM_START = PARAM_LOUDNESS_PARAM_MAX + 1, |
| PARAM_AEQ_ENABLE_I32, |
| PARAM_AEQ_CH_CTRL_MASK, |
| PARAM_AEQ_CH_LINK_MASK_I32, |
| PARAM_AEQ_INPUT_GAIN_I16, |
| PARAM_AEQ_OUTPUT_GAIN_I16, |
| PARAM_AEQ_BYPASS_GAIN_I16, |
| PARAM_AEQ_PROCESS_DISCARD_I32, |
| PARAM_AEQ_BAND_En, |
| PARAM_AEQ_BAND_Num, |
| PARAM_AEQ_BAND_Fre, |
| PARAM_AEQ_BAND_Gain, |
| PARAM_AEQ_BAND_Q, |
| PARAM_AEQ_BAND_type, |
| PARAM_AEQ_PARAM_MAX, |
| /* VX GEQ */ |
| PARAM_GEQ_PARAM_START = PARAM_AEQ_PARAM_MAX + 1, |
| PARAM_GEQ_En, |
| PARAM_GEQ_CTRL_MASK, |
| PARAM_GEQ_INPUT_GAIN, |
| PARAM_GEQ_BAND0_Gain, |
| PARAM_GEQ_BAND1_Gain, |
| PARAM_GEQ_BAND2_Gain, |
| PARAM_GEQ_BAND3_Gain, |
| PARAM_GEQ_BAND4_Gain, |
| PARAM_GEQ_BAND5_Gain, |
| PARAM_GEQ_BAND6_Gain, |
| PARAM_GEQ_BAND7_Gain, |
| PARAM_GEQ_BAND8_Gain, |
| PARAM_GEQ_BAND9_Gain, |
| PARAM_GEQ_DISCARD, |
| PARAM_GEQ_PARAM_MAX, |
| /* VX ildetect */ |
| PARAM_IL_PARAM_START = PARAM_GEQ_PARAM_MAX + 1, |
| PARAM_IL_UPMIX_EN, |
| PARAM_IL_UPMIX_LOW_LEVEL_THRES, |
| PARAM_IL_UPMIX_PEAK_HOLD_COUNT, |
| PARAM_IL_UPMIX_ORIG_LR_MIX, |
| PARAM_IL_UPMIX_SRRND_GAIN, |
| PARAM_IL_UPMIX_SRRND_DELAY_EN, |
| PARAM_IL_UPMIX_DISCARD, |
| PARAM_IL_PARAM_MAX, |
| |
| /*General setting: input/output channel mode*/ |
| PARAM_CHANNEL_NUM, |
| PARAM_OUT_CHANNEL_NUM, |
| PARAM_IN_CHANNEL_MASK, |
| PARAM_NAME_TO_PARAM_INDEX, |
| |
| /* 2.UI and debug interface using param Range: [82, 100] */ |
| VIRTUALX_TRU_BASS_ENABLE = 81, |
| VIRTUALX4_PARAM_ENABLE = 82, |
| VIRTUALX4_PARAM_DIALOGCLARITY_MODE = 83, |
| VIRTUALX4_PARAM_SURROUND_MODE = 84, |
| AUDIO_PARAM_TYPE_NONE = 85, |
| AUDIO_PARAM_TYPE_TRU_SURROUND = 86, |
| AUDIO_PARAM_TYPE_CC3D = 87, |
| AUDIO_PARAM_TYPE_TRU_BASS = 88, |
| AUDIO_PARAM_TYPE_TRU_DIALOG = 89, |
| AUDIO_PARAM_TYPE_DEFINITION = 90, |
| AUDIO_PARAM_TYPE_TRU_VOLUME = 91, |
| /* debug interface */ |
| AUDIO_ALL_PARAM_DUMP = 92, |
| VIRTUALX_EFFECT_ENABLE = 93, |
| DTS_PARAM_DECODER_TYPE = 94, |
| DTS_PARAM_READE_INI = 95, |
| VIRTUALX_USER_MODE = 96, |
| } Virtualx_v4_params; |
| |
| #define VX4_MAX_PARAM_VALUE_STR_LEN 128 |
| #define MAX_PARAM_VALUE_LEN 16 |
| #define VX4_MAX_PARAM_SIZE 128 |
| |
| typedef struct cmd_param_str { |
| const char *param; |
| int key; |
| int userId; |
| |
| } VX_Cmd_Param; |
| |
| typedef struct Virtualx_v4_param_s { |
| effect_param_t param; |
| /* 3 (void *) data of param start*/ |
| /* 3.1 psize of low level param */ |
| uint32_t command; |
| /* 3.2 vsize of low level value */ |
| union { |
| int32_t v; |
| float f; |
| char str[VX4_MAX_PARAM_VALUE_STR_LEN]; |
| float params[VX4_MAX_PARAM_SIZE]; |
| }; |
| } Virtualx_v4_param_t; |
| |
| VX_Cmd_Param *getVxCmdParamInstance(void); |
| |
| Virtualx_v4_param_t *getVxParamInstance(void); |
| |
| int set_param_from_cmd_line(int argc, char **argv); |
| |
| int set_param_from_scanf(int effectIndex); |
| |
| void printf_vx4_help(char *name); |
| |
| int set_param_from_scanf(int effectIndex); |
| |
| #endif |