/* * 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_H #define VIRTUALX_H #include #define VX_MAX_PARAM_SIZE 128 #define VX_MAX_PARAM_VALUE_STR_LEN 128 #define MAX_PARAM_VALUE_LEN 16 #define VX4_MAX_PARAM_VALUE_STR_LEN 128 #define VX4_MAX_PARAM_SIZE 128 #define VX_CUP_LOAD_ARM9E 100 // Expressed in 0.1 MIPS #define VX_MEM_USAGE 50 // Expressed in kB typedef enum { /*Tuning interface*/ DTS_PARAM_MBHL_ENABLE_I32 = 0, DTS_PARAM_MBHL_BYPASS_GAIN_I32 = 1, DTS_PARAM_MBHL_REFERENCE_LEVEL_I32 = 2, DTS_PARAM_MBHL_VOLUME_I32 = 3, DTS_PARAM_MBHL_VOLUME_STEP_I32 = 4, DTS_PARAM_MBHL_BALANCE_STEP_I32 = 5, DTS_PARAM_MBHL_OUTPUT_GAIN_I32 = 6, DTS_PARAM_MBHL_MODE_I32 = 7, DTS_PARAM_MBHL_PROCESS_DISCARD_I32 = 8, DTS_PARAM_MBHL_CROSS_LOW_I32 = 9, DTS_PARAM_MBHL_CROSS_MID_I32 = 10, DTS_PARAM_MBHL_COMP_ATTACK_I32 = 11, DTS_PARAM_MBHL_COMP_LOW_RELEASE_I32 = 12, DTS_PARAM_MBHL_COMP_LOW_RATIO_I32 = 13, DTS_PARAM_MBHL_COMP_LOW_THRESH_I32 = 14, DTS_PARAM_MBHL_COMP_LOW_MAKEUP_I32 = 15, DTS_PARAM_MBHL_COMP_MID_RELEASE_I32 = 16, DTS_PARAM_MBHL_COMP_MID_RATIO_I32 = 17, DTS_PARAM_MBHL_COMP_MID_THRESH_I32 = 18, DTS_PARAM_MBHL_COMP_MID_MAKEUP_I32 = 19, DTS_PARAM_MBHL_COMP_HIGH_RELEASE_I32 = 20, DTS_PARAM_MBHL_COMP_HIGH_RATIO_I32 = 21, DTS_PARAM_MBHL_COMP_HIGH_THRESH_I32 = 22, DTS_PARAM_MBHL_COMP_HIGH_MAKEUP_I32 = 23, DTS_PARAM_MBHL_BOOST_I32 = 24, DTS_PARAM_MBHL_THRESHOLD_I32 = 25, DTS_PARAM_MBHL_SLOW_OFFSET_I32 = 26, DTS_PARAM_MBHL_FAST_ATTACK_I32 = 27, DTS_PARAM_MBHL_FAST_RELEASE_I32 = 28, DTS_PARAM_MBHL_SLOW_ATTACK_I32 = 29, DTS_PARAM_MBHL_SLOW_RELEASE_I32 = 30, DTS_PARAM_MBHL_DELAY_I32 = 31, DTS_PARAM_MBHL_ENVELOPE_FREQUENCY_I32 = 32, DTS_PARAM_MBHL_APP_FRT_LOWCROSS_F32 = 33, DTS_PARAM_MBHL_APP_FRT_MIDCROSS_F32 = 34, DTS_PARAM_TBHDX_ENABLE_I32 = 35, DTS_PARAM_TBHDX_MONO_MODE_I32 = 36, DTS_PARAM_TBHDX_MAXGAIN_I32 = 37, DTS_PARAM_TBHDX_SPKSIZE_I32 = 38, DTS_PARAM_TBHDX_HP_ENABLE_I32 = 39, DTS_PARAM_TBHDX_TEMP_GAIN_I32 = 40, DTS_PARAM_TBHDX_PROCESS_DISCARD_I32 = 41, DTS_PARAM_TBHDX_HPORDER_I32 = 42, DTS_PARAM_TBHDX_APP_SPKSIZE_I32 = 43, DTS_PARAM_TBHDX_APP_HPRATIO_F32 = 44, DTS_PARAM_TBHDX_APP_EXTBASS_F32 = 45, DTS_PARAM_VX_ENABLE_I32 = 46, DTS_PARAM_VX_INPUT_MODE_I32 = 47, DTS_PARAM_VX_OUTPUT_MODE_I32 = 48, DTS_PARAM_VX_HEADROOM_GAIN_I32 = 49, DTS_PARAM_VX_PROC_OUTPUT_GAIN_I32 = 50, DTS_PARAM_VX_REFERENCE_LEVEL_I32 = 51, DTS_PARAM_TSX_ENABLE_I32 = 52, DTS_PARAM_TSX_PASSIVEMATRIXUPMIX_ENABLE_I32 = 53, DTS_PARAM_TSX_HEIGHT_UPMIX_ENABLE_I32 = 54, DTS_PARAM_TSX_LPR_GAIN_I32 = 55, DTS_PARAM_TSX_CENTER_GAIN_I32 = 56, DTS_PARAM_TSX_HORIZ_VIR_EFF_CTRL_I32 = 57, DTS_PARAM_TSX_HEIGHTMIX_COEFF_I32 = 58, DTS_PARAM_TSX_PROCESS_DISCARD_I32 = 59, DTS_PARAM_TSX_HEIGHT_DISCARD_I32 = 60, DTS_PARAM_TSX_FRNT_CTRL_I32 = 61, DTS_PARAM_TSX_SRND_CTRL_I32 = 62, DTS_PARAM_VX_DC_ENABLE_I32 = 63, DTS_PARAM_VX_DC_CONTROL_I32 = 64, DTS_PARAM_VX_DEF_ENABLE_I32 = 65, DTS_PARAM_VX_DEF_CONTROL_I32 = 66, DTS_PARAM_LOUDNESS_CONTROL_ENABLE_I32 = 67, DTS_PARAM_LOUDNESS_CONTROL_TARGET_LOUDNESS_I32 = 68, DTS_PARAM_LOUDNESS_CONTROL_PRESET_I32 = 69, DTS_PARAM_LOUDNESS_CONTROL_IO_MODE_I32 = 70, DTS_PARAM_AEQ_ENABLE_I32 = 71, DTS_PARAM_AEQ_DISCARD_I32 = 72, DTS_PARAM_AEQ_INPUT_GAIN_I16 = 73, DTS_PARAM_AEQ_OUTPUT_GAIN_I16 = 74, DTS_PARAM_AEQ_BYPASS_GAIN_I16 = 75, DTS_PARAM_AEQ_LR_LINK_I32 = 76, DTS_PARAM_AEQ_BAND_Fre = 77, DTS_PARAM_AEQ_BAND_Gain = 78, DTS_PARAM_AEQ_BAND_Q = 79, DTS_PARAM_AEQ_BAND_type = 80, DTS_PARAM_CHANNEL_NUM = 81, /*UI interface*/ VIRTUALX_PARAM_ENABLE = 82, VIRTUALX_PARAM_DIALOGCLARITY_MODE = 83, VIRTUALX_PARAM_SURROUND_MODE = 84, AUDIO_DTS_PARAM_TYPE_NONE = 85, AUDIO_DTS_PARAM_TYPE_TRU_SURROUND = 86, AUDIO_DTS_PARAM_TYPE_CC3D = 87, AUDIO_DTS_PARAM_TYPE_TRU_BASS = 88, AUDIO_DTS_PARAM_TYPE_TRU_DIALOG = 89, AUDIO_DTS_PARAM_TYPE_DEFINITION = 90, AUDIO_DTS_PARAM_TYPE_TRU_VOLUME = 91, /* debug interface */ AUDIO_DTS_ALL_PARAM_DUMP = 92, DTS_PARAM_IN_CHANNEL_MASK = 93, } Virtualx_params; 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] */ VIRTUALX4_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; #endif