summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--tv_input.cpp45
-rw-r--r--tvapi/android/Android.mk2
-rw-r--r--tvapi/android/include/ITv.h100
-rw-r--r--tvapi/android/include/ITvClient.h58
-rw-r--r--tvapi/android/include/ITvService.h68
-rw-r--r--tvapi/android/include/Tv.h161
-rw-r--r--tvapi/android/include/tvcmd.h1188
-rw-r--r--tvapi/android/jni/Android.mk132
-rw-r--r--tvapi/android/jni/android_amlogic_tv.cpp911
-rw-r--r--tvapi/android/jni/cfbc_jni.cpp214
-rw-r--r--tvapi/android/jni/cfbc_test.cpp86
-rw-r--r--tvapi/android/libtvbinder/Android.mk48
-rw-r--r--tvapi/android/libtvbinder/ITv.cpp289
-rw-r--r--tvapi/android/libtvbinder/ITvClient.cpp117
-rw-r--r--tvapi/android/libtvbinder/ITvService.cpp101
-rw-r--r--tvapi/android/libtvbinder/Tv.cpp378
-rw-r--r--tvapi/android/tvserver/Android.mk162
-rw-r--r--tvapi/android/tvserver/TvService.cpp8755
-rw-r--r--tvapi/android/tvserver/TvService.h164
-rw-r--r--tvapi/android/tvserver/main.cpp46
-rwxr-xr-x[-rw-r--r--]tvapi/build/include/.gitignore0
-rw-r--r--tvapi/docs/tv.uml12156
-rw-r--r--tvapi/libtv/Android.mk3
-rw-r--r--tvapi/libtv/audio/audio_alsa.cpp2426
-rw-r--r--tvapi/libtv/audio/audio_alsa.h261
-rw-r--r--tvapi/libtv/audio/audio_android.cpp2070
-rw-r--r--tvapi/libtv/audio/audio_android.h157
-rw-r--r--tvapi/libtv/audio/audio_android_effect.cpp1182
-rw-r--r--tvapi/libtv/audio/audio_android_effect.h131
-rw-r--r--tvapi/libtv/audio/audio_api.cpp4940
-rw-r--r--tvapi/libtv/audio/audio_api.h647
-rw-r--r--tvapi/libtv/audio/audio_effect.cpp456
-rw-r--r--tvapi/libtv/audio/audio_effect.h63
-rw-r--r--tvapi/libtv/include/amstream.h526
-rw-r--r--tvapi/libtv/include/amvecm.h136
-rw-r--r--tvapi/libtv/include/cm.h306
-rw-r--r--tvapi/libtv/include/hdmirx_cec.h508
-rw-r--r--tvapi/libtv/include/ve.h438
-rw-r--r--tvapi/libtv/tv/AutoBackLight.cpp426
-rw-r--r--tvapi/libtv/tv/AutoBackLight.h47
-rw-r--r--tvapi/libtv/tv/CAv.cpp484
-rw-r--r--tvapi/libtv/tv/CAv.h194
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.cpp2326
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.h680
-rw-r--r--tvapi/libtv/tv/CFrontEnd.cpp838
-rw-r--r--tvapi/libtv/tv/CFrontEnd.h227
-rw-r--r--tvapi/libtv/tv/CTv.cpp10755
-rw-r--r--tvapi/libtv/tv/CTv.h1269
-rw-r--r--tvapi/libtv/tv/CTvBooking.cpp324
-rw-r--r--tvapi/libtv/tv/CTvBooking.h167
-rw-r--r--tvapi/libtv/tv/CTvDmx.cpp8
-rw-r--r--tvapi/libtv/tv/CTvDmx.h15
-rw-r--r--tvapi/libtv/tv/CTvEpg.cpp260
-rw-r--r--tvapi/libtv/tv/CTvEpg.h280
-rw-r--r--tvapi/libtv/tv/CTvEv.cpp2
-rw-r--r--tvapi/libtv/tv/CTvEv.h314
-rw-r--r--tvapi/libtv/tv/CTvLog.h8
-rw-r--r--tvapi/libtv/tv/CTvRecord.cpp552
-rw-r--r--tvapi/libtv/tv/CTvRecord.h93
-rw-r--r--tvapi/libtv/tv/CTvSatellite.h43
-rw-r--r--tvapi/libtv/tv/CTvScanner.cpp1417
-rw-r--r--tvapi/libtv/tv/CTvScanner.h319
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.cpp1060
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.h351
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.cpp272
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.h469
-rw-r--r--tvapi/libtv/tv/CTvTime.h137
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.cpp250
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.h43
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.cpp974
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.h284
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.cpp706
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.h79
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.conf58
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.cpp106
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.h40
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.cpp694
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.h575
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.cpp300
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.h190
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.cpp714
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.h196
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.cpp482
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.h171
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.cpp88
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.h61
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.cpp1766
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.h1065
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.cpp366
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.h85
-rw-r--r--tvapi/libtv/tvin/CHDMIRxCEC.cpp830
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.cpp448
-rw-r--r--tvapi/libtv/tvin/CTvin.cpp4240
-rw-r--r--tvapi/libtv/tvin/CTvin.h2222
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.cpp54
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.h101
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp706
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.h153
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.cpp160
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.h53
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.cpp258
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.h75
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.cpp4424
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingCfg.h742
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp38
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h11
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.cpp2784
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.cpp3706
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.h338
-rw-r--r--tvapi/libtv/tvutils/CCondition.h87
-rw-r--r--tvapi/libtv/tvutils/CFile.cpp250
-rw-r--r--tvapi/libtv/tvutils/CFile.h53
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.cpp6
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.h9
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.cpp144
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.h44
-rw-r--r--tvapi/libtv/tvutils/CMutex.h116
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.cpp118
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.h98
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.cpp568
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.h45
-rw-r--r--tvapi/libtv/tvutils/CSqlite.cpp126
-rw-r--r--tvapi/libtv/tvutils/CSqlite.h292
-rw-r--r--tvapi/libtv/tvutils/CThread.cpp212
-rw-r--r--tvapi/libtv/tvutils/CThread.h79
-rw-r--r--tvapi/libtv/tvutils/CTvInput.cpp196
-rw-r--r--tvapi/libtv/tvutils/CTvInput.h49
-rw-r--r--tvapi/libtv/tvutils/serial_base.cpp560
-rw-r--r--tvapi/libtv/tvutils/serial_base.h34
-rw-r--r--tvapi/libtv/tvutils/serial_operate.cpp336
-rw-r--r--tvapi/libtv/tvutils/serial_operate.h72
-rw-r--r--tvapi/libtv/tvutils/tvutils.cpp3822
-rw-r--r--tvapi/libtv/tvutils/tvutils.h238
-rw-r--r--tvapi/libtv/tvutils/zepoll.cpp66
-rw-r--r--tvapi/libtv/tvutils/zepoll.h57
-rw-r--r--tvapi/libtv/version/version.cpp188
-rw-r--r--tvapi/libtv/version/version.h22
-rw-r--r--tvapi/libtv/vpp/CPQdb.cpp3183
-rw-r--r--tvapi/libtv/vpp/CPQdb.h321
-rw-r--r--tvapi/libtv/vpp/CVpp.cpp4772
-rw-r--r--tvapi/libtv/vpp/CVpp.h683
-rw-r--r--tvapi/libtv/vpp/pqdata.cpp216
-rw-r--r--tvapi/tvtests/Android.mk98
-rw-r--r--tvapi/tvtests/android_tvtest.cpp30
-rw-r--r--tvapi/tvtests/comm_test.cpp42
-rw-r--r--tvapi/tvtests/ssm_test.cpp420
-rw-r--r--tvapi/tvtests/tvconfig_test.cpp854
147 files changed, 55964 insertions, 55946 deletions
diff --git a/tvapi/libtv/tvsetting/audio_cfg.cpp b/tvapi/libtv/tvsetting/audio_cfg.cpp
index 93e9e9e..5607561 100644
--- a/tvapi/libtv/tvsetting/audio_cfg.cpp
+++ b/tvapi/libtv/tvsetting/audio_cfg.cpp
@@ -1,1853 +1,1853 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <android/log.h>
-#include <cutils/properties.h>
-
-#include "../tvsetting/CTvSetting.h"
-#include "../tvconfig/tvconfig.h"
-#include "audio_cfg.h"
-
-#define LOG_TAG "audio_cfg"
-#include "CTvLog.h"
-
-#define CS_AUDIO_AMP_MASTER_NOLINE_SWITCH_CFG_NAME "audio.amp.master.noline.switch"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_CNT_CFG_NAME "audio.amp.master.noline.point.cnt"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_BUF_CFG_NAME "audio.amp.master.noline.point.ind.buf"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME "audio.amp.master.noline.point.data.defbuf"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_DEF_BUF_CFG_NAME "audio.amp.master.noline.point.ind.defbuf"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_TV_BUF_CFG_NAME "audio.amp.master.noline.point.data.tv"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_AV_BUF_CFG_NAME "audio.amp.master.noline.point.data.av"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_COMP_BUF_CFG_NAME "audio.amp.master.noline.point.data.comp"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_HDMI_BUF_CFG_NAME "audio.amp.master.noline.point.data.hdmi"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_VGA_BUF_CFG_NAME "audio.amp.master.noline.point.data.vga"
-#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_MPEG_BUF_CFG_NAME "audio.amp.master.noline.point.data.mpeg"
-
-#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_SWITCH_CFG_NAME "audio.amp.supperbass.noline.switch"
-#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_CNT_CFG_NAME "audio.amp.supperbass.noline.point.cnt"
-#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_BUF_CFG_NAME "audio.amp.supperbass.noline.point.ind.buf"
-#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME "audio.amp.supperbass.noline.point.data.defbuf"
-#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_DEF_BUF_CFG_NAME "audio.amp.supperbass.noline.point.ind.defbuf"
-
-#define CS_AUDIO_AMP_BALANCE_EXCHG_CFG_NAME "audio.amp.balance.exchg"
-
-#define CS_EQ_MOUDLE_DISABLE_CFG_NAME "audio.eq.module.disable"
-#define CS_EQ_USING_ANDROID_CFG_NAME "audio.eq.using.android"
-#define CS_EQ_PRESETBUF_CFG_NAME "audio.eq.presetbuf"
-#define CS_EQ_GAIN_RANGE_CFG_NAME "audio.eq.gain.range"
-#define CS_EQ_UI_GAIN_RANGE_CFG_NAME "audio.eq.uigain.range"
-#define CS_EQ_AMP_MASTER_GAIN_CFG_NAME "audio.eq.ampmaster.gain"
-#define CS_EQ_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.eq.ampsupperbass.gain"
-
-#define CS_AUDIO_AMP_MAINVOL_TV_LUTBUF_CFG_NAME "audio.amp.mainvol.tv.lutbuf"
-#define CS_AUDIO_AMP_MAINVOL_AV_LUTBUF_CFG_NAME "audio.amp.mainvol.av.lutbuf"
-#define CS_AUDIO_AMP_MAINVOL_COMP_LUTBUF_CFG_NAME "audio.amp.mainvol.comp.lutbuf"
-#define CS_AUDIO_AMP_MAINVOL_HDMI_LUTBUF_CFG_NAME "audio.amp.mainvol.hdmi.lutbuf"
-#define CS_AUDIO_AMP_MAINVOL_VGA_LUTBUF_CFG_NAME "audio.amp.mainvol.vga.lutbuf"
-#define CS_AUDIO_AMP_MAINVOL_MPEG_LUTBUF_CFG_NAME "audio.amp.mainvol.mpeg.lutbuf"
-
-#define CS_AUDIO_AMP_SUPPERBASSVOL_TV_LUTBUF_CFG_NAME "audio.amp.supbassvol.tv.lutbuf"
-#define CS_AUDIO_AMP_SUPPERBASSVOL_AV_LUTBUF_CFG_NAME "audio.amp.supbassvol.av.lutbuf"
-#define CS_AUDIO_AMP_SUPPERBASSVOL_COMP_LUTBUF_CFG_NAME "audio.amp.supbassvol.comp.lutbuf"
-#define CS_AUDIO_AMP_SUPPERBASSVOL_HDMI_LUTBUF_CFG_NAME "audio.amp.supbassvol.hdmi.lutbuf"
-#define CS_AUDIO_AMP_SUPPERBASSVOL_VGA_LUTBUF_CFG_NAME "audio.amp.supbassvol.vga.lutbuf"
-#define CS_AUDIO_AMP_SUPPERBASSVOL_MPEG_LUTBUF_CFG_NAME "audio.amp.supbassvol.mpeg.lutbuf"
-
-#define CS_SRS_MOUDLE_DISABLE_CFG_NAME "audio.srs.module.disable"
-#define CS_SRS_SOURROUND_DISABLE_CFG_NAME "audio.srs.sourround.disable"
-#define CS_SRS_TRUBASS_DISABLE_CFG_NAME "audio.srs.trubass.disable"
-#define CS_SRS_DIALOGCLARITY_DISABLE_CFG_NAME "audio.srs.dialogclarity.disable"
-#define CS_SRS_SOURROUND_GAIN_CFG_NAME "audio.srs.sourround.gain"
-#define CS_SRS_SOURROUND_AMP_MASTER_GAIN_CFG_NAME "audio.srs.sourround.ampmaster.gain"
-#define CS_SRS_SOURROUND_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.sourround.ampsupperbass.gain"
-#define CS_SRS_TRUBASS_ONLY_GAIN_CFG_NAME "audio.srs.trubass.only.gain"
-#define CS_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.trubass.only.ampmaster.gain"
-#define CS_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.trubass.only.ampsupperbass.gain"
-#define CS_SRS_DIALOGCLARITY_ONLY_GAIN_CFG_NAME "audio.srs.dialogclarity.only.gain"
-#define CS_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.dialogclarity.only.ampmaster.gain"
-#define CS_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.dialogclarity.only.ampsupperbass.gain"
-#define CS_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_CFG_NAME "audio.srs.dialogclarity.only.definition.gain"
-#define CS_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.trubass.gain"
-#define CS_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.dialogclarity.gain"
-#define CS_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.definition.gain"
-#define CS_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.ampmaster.gain"
-#define CS_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.ampsupperbass.gain"
-#define CS_SRS_SUPPERBASS_ON_TRUBASS_SPEAKER_SIZE_CFG_NAME "audio.srs.supperbasson.turbass.speakersize"
-#define CS_SRS_SUPPERBASS_OFF_TRUBASS_SPEAKER_SIZE_CFG_NAME "audio.srs.supperbassoff.turbass.speakersize"
-
-#define CS_AUDIO_DUMP_DATA_ENABLE_CFG_NAME "audio.dump.data.en"
-#define CS_KEY_MUTE_CFG_NAME "audio.mute.keymute"
-#define CS_AVOUT_INIT_MUTE_CFG_NAME "audio.avout.init.mute"
-#define CS_SUPPERBASS_MODULE_DISABLE_CFG_NAME "audio.supperbass.module.disable"
-#define CS_SUPPERBASS_SWITCH_DISABLE_CFG_NAME "audio.supperbass.switch.disable"
-#define CS_DVI_SUPPORT_ENABLE_CFG_NAME "audio.dvi.support.enable"
-#define CS_SRC_INPUT_TV_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.tv.vol"
-#define CS_SRC_INPUT_AV_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.av.vol"
-#define CS_SRC_INPUT_COMP_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.comp.vol"
-#define CS_SRC_INPUT_HDMI_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.hdmi.vol"
-#define CS_SRC_INPUT_VGA_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.vga.vol"
-#define CS_SRC_INPUT_MPEG_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.mpeg.vol"
-#define CS_SRC_INPUT_TV_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.tv.vol"
-#define CS_SRC_INPUT_AV_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.av.vol"
-#define CS_SRC_INPUT_COMP_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.comp.vol"
-#define CS_SRC_INPUT_HDMI_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.hdmi.vol"
-#define CS_SRC_INPUT_VGA_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.vga.vol"
-#define CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.mpeg.vol"
-#define CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME_OLD "audio.srcinput.lineout.vol"
-
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_TV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.tv"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_AV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.av"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_COMP_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.comp"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_HDMI_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.hdmi"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_VGA_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.vga"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_MPEG_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.mpeg"
-#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_DTV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.dtv"
-
-#define CS_AUDIO_NOISE_GATE_ENABLE_CFG_NAME "audio.noise.gate.enable"
-#define CS_AUDIO_NOISE_GATE_THRESHOLD_CFG_NAME "audio.noise.gate.threshold"
-#define CS_AUDIO_NOISE_GATE_UPPER_BOUND_CFG_NAME "audio.noise.gate.upper.bound"
-
-#define CS_DISABLE_RESET_SYSTEM_FRAMESIZE_CFG_NAME "audio.reset.system.framesize.disable"
-#define CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME "audio.reset.system.framesize"
-
-#define CS_AUDIO_ARCHITECTURE_TYPE_CFG_NAME "audio.architecture.type"
-#define CS_AUDIO_RESAMPLE_TYPE_CFG_NAME "audio.resample.type"
-
-
-#define CC_MAX_SUP_LUT_CFG_INDEX (32)
-
-static int gMasterNoLinePointsIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gMasterNoLinePointsDefDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gMasterNoLinePointsDefIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-
-static int gSupperBassNoLinePointsIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] =
-{ -1 };
-static int gSupperBassNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gSupperBassNoLinePointsDefDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
- -1
-};
-static int gSupperBassNoLinePointsDefIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
- -1
-};
-
-static int gTVMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gAVMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gCOMPMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gHDMIMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gVGAMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gMPEGMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
-static int gHDMI4K2KMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
- -1
-};
-static int gUSB4K2KMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
- -1
-};
-
-static int mTVMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mAVMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mCOMPMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mHDMIMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mVGAMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mMPEGMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-
-static int mTVSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mAVSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mCOMPSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mHDMISupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mVGASupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-static int mMPEGSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
-
-static int mEQPresetValueBuf_XX[CC_EQ_PRESET_BUF_SIZE];
-static int mEQPresetDefBuf[CC_EQ_PRESET_BUF_SIZE] = {
- //
- 50, 50, 50, 50, 50, 50, // SM_STD
- 70, 60, 50, 60, 70, 50, // SM_MUSIC
- 25, 50, 70, 66, 25, 50, // SM_NEWS
- 75, 65, 50, 65, 75, 50, // SM_THEATER
-};
-
-static int GetAudioCfgData(const char *key_str, int *buf_item_count, int radix,
- int data_buf[])
-{
- int cfg_item_count = 0;
- char *token = NULL;
- const char *strDelimit = ",";
- const char *config_value;
- char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 };
-
- config_value = config_get_str("TV", key_str, "null");
- if (strcasecmp(config_value, "null") == 0) {
- //LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str);
- return -1;
- }
-
- cfg_item_count = 0;
-
- memset((void *)data_str, 0, sizeof(data_str));
- strncpy(data_str, config_value, sizeof(data_str) - 1);
- token = strtok(data_str, strDelimit);
- while (token != NULL) {
- if (cfg_item_count < *buf_item_count) {
- data_buf[cfg_item_count] = strtol(token, NULL, radix);
-
- token = strtok(NULL, strDelimit);
- cfg_item_count += 1;
- } else {
- LOGE("%s, we get data count more than desire count (%d)!!!\n",
- __FUNCTION__ , *buf_item_count);
- return -1;
- }
- }
-
- *buf_item_count = cfg_item_count;
-
- return 0;
-}
-
-static int GetAudioCfgBufferData(const char *key_str, int *bufs_count,
- int *buf_item_count, int radix, int data_buf[])
-{
- int cfg_item_count = 0, tmpTotalItemCount = 0;
- char *token = NULL;
- const char *strDelimit = ",";
- const char *config_value;
- char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 };
-
- config_value = config_get_str("TV", key_str, "null");
- if (strcasecmp(config_value, "null") == 0) {
- // LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str);
- *bufs_count = 0;
- *buf_item_count = 0;
- return -1;
- }
-
- tmpTotalItemCount = 0;
-
- memset((void *)data_str, 0, sizeof(data_str));
- strncpy(data_str, config_value, sizeof(data_str) - 1);
- token = strtok(data_str, strDelimit);
- while (token != NULL) {
- if (cfg_item_count == 0) {
- *bufs_count = strtol(token, NULL, radix);
- } else if (cfg_item_count == 1) {
- *buf_item_count = strtol(token, NULL, radix);
- } else if (cfg_item_count >= 2) {
- data_buf[tmpTotalItemCount] = strtol(token, NULL, radix);
- tmpTotalItemCount += 1;
- }
-
- token = strtok(NULL, strDelimit);
- cfg_item_count += 1;
- }
-
- if ((*bufs_count) * (*buf_item_count) != tmpTotalItemCount) {
- LOGE("%s, get item count error!!! should be %d, real is %d.\n",
- __FUNCTION__, (*bufs_count) * (*buf_item_count),
- tmpTotalItemCount);
- *bufs_count = 0;
- *buf_item_count = 0;
- return -1;
- }
-
- return 0;
-}
-
-static int GetAudioCfgSingleIntData(const char *key_str, int def_val)
-{
- const char *config_value;
-
- config_value = config_get_str("TV", key_str, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return def_val;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-template<typename T>
-static int CheckNoLinePoints(int point_cnt, T points_buf[])
-{
- int i = 0, same_cnt = 0, tmp_direct = -1, error_flag = 0;
-
- if (point_cnt <= 1) {
- LOGD("%s, point is less than 2.\n", __FUNCTION__);
- return 0;
- }
-
- for (i = 0; i < point_cnt - 1; i++) {
- if (points_buf[i] < points_buf[i + 1]) {
- if (tmp_direct == -1) {
- tmp_direct = 0;
- } else if (tmp_direct == 1) {
- LOGD("%s, check have direct error.\n", __FUNCTION__);
- return -1;
- }
- } else if (points_buf[i] > points_buf[i + 1]) {
- if (tmp_direct == -1) {
- tmp_direct = 1;
- } else if (tmp_direct == 0) {
- LOGD("%s, check have direct error.\n", __FUNCTION__);
- return -1;
- }
- } else {
- same_cnt += 1;
- }
- }
-
- if (same_cnt == i) {
- LOGD("%s, check have same error.\n", __FUNCTION__);
- return -1;
- }
-
- LOGD("%s, check no error.\n", __FUNCTION__);
- return 0;
-}
-
-int *GetAudioAmplifierNoLinePointsIndexBuffer(int lut_buf_type, int get_type)
-{
- if (lut_buf_type == CC_LUT_BUF_SUPPERBASS) {
- return GetAudioAmplifierSupperBassNoLinePointsIndexBuffer(get_type);
- }
-
- return NULL;
-}
-
-int *GetAudioAmplifierNoLinePointsDataBuffer(int lut_buf_type, int get_type)
-{
- if (lut_buf_type == CC_LUT_BUF_SUPPERBASS) {
- return GetAudioAmplifierSupperBassNoLinePointsDataBuffer(get_type);
- }
-
- return NULL;
-}
-
-int GetAudioAmplifierMasterNoLineSwitchFlag()
-{
- const char *config_value;
- config_value = config_get_str("TV",
- CS_AUDIO_AMP_MASTER_NOLINE_SWITCH_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioAmplifierSupperBassNoLineSwitchFlag()
-{
- const char *config_value;
- config_value = config_get_str("TV",
- CS_AUDIO_AMP_SUPPERBASS_NOLINE_SWITCH_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioAmplifierMasterNoLinePointsCount()
-{
- const char *config_value;
- config_value = config_get_str("TV",
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_CNT_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 11;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioAmplifierSupperBassNoLinePointsCount()
-{
- const char *config_value;
- config_value = config_get_str("TV",
- CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_CNT_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 5;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-static int GetAudioAmplifierNoLinePointsBuffer(const char *key_str,
- int buf_item_count, int data_buf[])
-{
- int i = 0, tmp_item_count = 0;
- int tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
-
- // if (data_buf[0] >= 0 && data_buf[0] <= 100) {
- // LOGD("%s, we have get the index buffer.\n", "TV");
- // return 0;
- // }
-
- tmp_item_count = buf_item_count;
- if (GetAudioCfgData(key_str, &tmp_item_count, 10, tmp_buf) < 0) {
- LOGE("%s, get index buffer data error, set default.\n", __FUNCTION__);
- return -1;
- }
-
- if (tmp_item_count != buf_item_count) {
- LOGE(
- "%s, get index buffer data error(buf item count error), set default.\n",
- __FUNCTION__);
- return -1;
- }
-
- for (i = 0; i < buf_item_count; i++) {
- data_buf[i] = tmp_buf[i];
- }
-
- return 0;
-}
-
-int *GetAudioAmplifierSupperBassNoLinePointsIndexBuffer(int get_type)
-{
- int buf_item_count = 0;
-
- buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
- if (GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_BUF_CFG_NAME,
- buf_item_count, gSupperBassNoLinePointsIndexBuffer) < 0) {
- return GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer();
- }
-
- if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsIndexBuffer)
- < 0) {
- return GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer();
- }
-
- return gSupperBassNoLinePointsIndexBuffer;
-}
-
-int *GetAudioAmplifierMasterNoLinePointsDataBuffer(int get_type)
-{
- int i = 0, buf_item_count = 0, tmp_offset = 0;
- int *tmpPtr = NULL;
- unsigned char tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
-
- buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
-
- if (get_type == CC_GET_LUT_TV) {
- tmpPtr = gTVMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- } else if (get_type == CC_GET_LUT_AV) {
- tmpPtr = gAVMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- } else if (get_type == CC_GET_LUT_COMP) {
- tmpPtr = gCOMPMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- } else if (get_type == CC_GET_LUT_HDMI) {
- tmpPtr = gHDMIMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- } else if (get_type == CC_GET_LUT_VGA) {
- tmpPtr = gVGAMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- } else if (get_type == CC_GET_LUT_MPEG) {
- tmpPtr = gMPEGMasterNoLinePointsDataBuffer;
- tmp_offset = get_type * buf_item_count;
- }
-
- if (tmpPtr != NULL && tmpPtr[0] != -1) {
- return tmpPtr;
- }
-
- if (SSMReadAudioNoLinePoints(tmp_offset, buf_item_count, tmp_buf) < 0) {
- return GetAudioAmplifierMasterNoLinePointsDefDataBuffer(get_type);
- }
-
- if (CheckNoLinePoints(buf_item_count, tmp_buf) < 0) {
- return GetAudioAmplifierMasterNoLinePointsDefDataBuffer(get_type);
- }
-
- for (i = 0; i < buf_item_count; i++) {
- tmpPtr[i] = tmp_buf[i];
- }
-
- return tmpPtr;
-}
-
-int *GetAudioAmplifierSupperBassNoLinePointsDataBuffer(int get_type)
-{
- int i = 0, buf_item_count = 0, tmp_offset = 0;
- int *tmpPtr = NULL;
- unsigned char tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
-
- buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
-
- tmpPtr = gSupperBassNoLinePointsDataBuffer;
- if (tmpPtr != NULL && tmpPtr[0] != -1) {
- return tmpPtr;
- }
-
- tmp_offset = CC_GET_TYPE_CNT * GetAudioAmplifierMasterNoLinePointsCount();
-
- if (SSMReadAudioNoLinePoints(tmp_offset, buf_item_count, tmp_buf) < 0) {
- return GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer();
- }
-
- if (CheckNoLinePoints(buf_item_count, tmp_buf) < 0) {
- return GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer();
- }
-
- for (i = 0; i < buf_item_count; i++) {
- tmpPtr[i] = tmp_buf[i];
- }
-
- return tmpPtr;
-}
-
-int *GetAudioAmplifierMasterNoLinePointsDefIndexBuffer()
-{
- int i = 0, buf_item_count = 0;
-
- buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
- if (GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_DEF_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefIndexBuffer) < 0) {
- gMasterNoLinePointsDefIndexBuffer[0] = 1;
-
- for (i = 1; i <= 10; i++) {
- gMasterNoLinePointsDefIndexBuffer[i] = i * 10;
- }
- }
-
- if (CheckNoLinePoints(buf_item_count, gMasterNoLinePointsDefIndexBuffer)
- < 0) {
- gMasterNoLinePointsDefIndexBuffer[0] = 1;
-
- for (i = 1; i <= 10; i++) {
- gMasterNoLinePointsDefIndexBuffer[i] = i * 10;
- }
- }
-
- return gMasterNoLinePointsDefIndexBuffer;
-}
-
-int *GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer()
-{
- int i = 0, buf_item_count = 0;
-
- buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
- if (GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_DEF_BUF_CFG_NAME,
- buf_item_count, gSupperBassNoLinePointsDefIndexBuffer) < 0) {
- gSupperBassNoLinePointsDefIndexBuffer[0] = 1;
-
- for (i = 1; i <= 4; i++) {
- gSupperBassNoLinePointsDefIndexBuffer[i] = i * 25;
- }
- }
-
- if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsDefIndexBuffer)
- < 0) {
- gSupperBassNoLinePointsDefIndexBuffer[0] = 1;
-
- for (i = 1; i <= 4; i++) {
- gSupperBassNoLinePointsDefIndexBuffer[i] = i * 25;
- }
- }
-
- return gSupperBassNoLinePointsDefIndexBuffer;
-}
-
-int *GetAudioAmplifierMasterNoLinePointsDefDataBuffer(int buf_type)
-{
- int i = 0, buf_item_count = 0, point_buffer_flag = 0;
-
- buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
-
- switch (buf_type) {
- case CC_GET_LUT_TV:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_TV_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- case CC_GET_LUT_AV:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_AV_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- case CC_GET_LUT_COMP:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_COMP_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- case CC_GET_LUT_HDMI:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_HDMI_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- case CC_GET_LUT_VGA:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_VGA_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- case CC_GET_LUT_MPEG:
- point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_MPEG_BUF_CFG_NAME,
- buf_item_count, gMasterNoLinePointsDefDataBuffer);
- break;
- default:
- point_buffer_flag = -1;
- // LOGE("buffer type is wrong ,please check input Parameter !");
- break;
- }
-
- if (point_buffer_flag < 0) {
- for (i = 0; i < buf_item_count; i++) {
- gMasterNoLinePointsDefDataBuffer[i] = 100 + i;
- }
-
- return gMasterNoLinePointsDefDataBuffer;
- }
-
- if (CheckNoLinePoints(buf_item_count, gMasterNoLinePointsDefDataBuffer)
- < 0) {
- for (i = 0; i < buf_item_count; i++) {
- gMasterNoLinePointsDefDataBuffer[i] = 100 + i;
- }
- }
-
- return gMasterNoLinePointsDefDataBuffer;
-}
-
-int *GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer()
-{
- int i = 0, buf_item_count = 0;
-
- buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
- if (GetAudioAmplifierNoLinePointsBuffer(
- CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME,
- buf_item_count, gSupperBassNoLinePointsDefDataBuffer) < 0) {
- for (i = 0; i < buf_item_count; i++) {
- gSupperBassNoLinePointsDefDataBuffer[i] = 100 + i;
- }
- }
-
- if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsDefDataBuffer)
- < 0) {
- for (i = 0; i < buf_item_count; i++) {
- gSupperBassNoLinePointsDefDataBuffer[i] = 100 + i;
- }
- }
-
- return gSupperBassNoLinePointsDefDataBuffer;
-}
-
-int GetAudioAmplifierBalanceExchangeCFG()
-{
- const char *config_value;
- config_value = config_get_str("TV", CS_AUDIO_AMP_BALANCE_EXCHG_CFG_NAME,
- "null");
- if (strcmp(config_value, "null") == 0) {
- return 0; //return 0 to disable balance exchange
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioMainVolLutBufCFGIndexModifyEnable()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", "audio.amp.master.cfgindex.mod.en",
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioMainVolLutBufNameModifyUbootenvCFG()
-{
- char config_value[PROPERTY_VALUE_MAX];
-
- memset(config_value, '\0', 32);
-
- property_get("ubootenv.var.ampindex", config_value, "null");
- if (strcasecmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioMainVolLutBufNameModifyFromUbootenv()
-{
- const char *config_value;
-
- config_value = config_get_str("TV",
- "audio.amp.mainvol.lutbufname.mod.ubootenv", "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioMainVolLutBufNameModifyEnableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", "audio.amp.mainvol.lutbufname.mod.en",
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioMainVolLutBufNameCFG(int get_type, char name_buf[])
-{
- if (get_type == CC_GET_LUT_TV) {
- strcpy(name_buf, "audio.amp.mainvol.tv.lb.name");
- } else if (get_type == CC_GET_LUT_AV) {
- strcpy(name_buf, "audio.amp.mainvol.av.lb.name");
- } else if (get_type == CC_GET_LUT_COMP) {
- strcpy(name_buf, "audio.amp.mainvol.comp.lb.name");
- } else if (get_type == CC_GET_LUT_HDMI) {
- strcpy(name_buf, "audio.amp.mainvol.hdmi.lb.name");
- } else if (get_type == CC_GET_LUT_VGA) {
- strcpy(name_buf, "audio.amp.mainvol.vga.lb.name");
- } else if (get_type == CC_GET_LUT_MPEG) {
- strcpy(name_buf, "audio.amp.mainvol.mpeg.lb.name");
- } else if (get_type == CC_GET_LUT_HDMI_4K2K) {
- strcpy(name_buf, "audio.amp.mainvol.hdmi4k2k.lb.name");
- } else if (get_type == CC_GET_LUT_USB_4K2K) {
- strcpy(name_buf, "audio.amp.mainvol.usb4k2k.lb.name");
- } else {
- return -1;
- }
-
- return 0;
-}
-
-static int GetAudioMainVolLutBufDataByModifyName(int get_type,
- int *VolumeDigitLutBuf_XX)
-{
- int i = 0, buf_count = 0, buf_item_count = 0;
- char key_buf[128];
- const char *value_buf;
-
- memset(key_buf, '\0', 128);
-
- GetAudioMainVolLutBufNameCFG(get_type, key_buf);
-
- value_buf = config_get_str("TV", key_buf, (char *) "");
-
- if (strcmp(value_buf, "") != 0) {
- if (GetAudioCfgBufferData(value_buf, &buf_count, &buf_item_count, 10,
- VolumeDigitLutBuf_XX) == 0) {
- return 0;
- }
- }
-
- return -1;
-}
-
-int *GetAudioAmplifierMasterVolumeLUTBufferPtr(int get_type, int audio_std)
-{
- int buf_count = 0, buf_item_count = 0;
- int name_en = GetAudioMainVolLutBufNameModifyEnableCFG();
-
- if (name_en == 1) {
- if (get_type == CC_GET_LUT_TV) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mTVMainVolumeDigitLutBuf_XX) == 0) {
- return mTVMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_AV) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mAVMainVolumeDigitLutBuf_XX) == 0) {
- return mAVMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_COMP) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mCOMPMainVolumeDigitLutBuf_XX) == 0) {
- return mCOMPMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_HDMI) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mHDMIMainVolumeDigitLutBuf_XX) == 0) {
- return mHDMIMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_VGA) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mVGAMainVolumeDigitLutBuf_XX) == 0) {
- return mVGAMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_MPEG) {
- if (GetAudioMainVolLutBufDataByModifyName(get_type,
- mMPEGMainVolumeDigitLutBuf_XX) == 0) {
- return mMPEGMainVolumeDigitLutBuf_XX;
- }
- }
- } else {
- if (get_type == CC_GET_LUT_TV) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_TV_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mTVMainVolumeDigitLutBuf_XX) == 0) {
- return mTVMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_AV) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_AV_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mAVMainVolumeDigitLutBuf_XX) == 0) {
- return mAVMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_COMP) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_COMP_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mCOMPMainVolumeDigitLutBuf_XX) == 0) {
- return mCOMPMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_HDMI) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_HDMI_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mHDMIMainVolumeDigitLutBuf_XX) == 0) {
- return mHDMIMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_VGA) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_VGA_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mVGAMainVolumeDigitLutBuf_XX) == 0) {
- return mVGAMainVolumeDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_MPEG) {
- if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_MPEG_LUTBUF_CFG_NAME,
- &buf_count, &buf_item_count, 10,
- mMPEGMainVolumeDigitLutBuf_XX) == 0) {
- return mMPEGMainVolumeDigitLutBuf_XX;
- }
- }
- }
- return NULL;
-}
-
-int GetAudioSupperBassVolLutBufCFGIndexModifyEnable()
-{
- const char *config_value;
- config_value = config_get_str("TV", "audio.amp.supperbass.cfgindex.mod.en",
- "null");
- //LOGD("%s, get audio.amp.supperbass.cfgindex.mod.en is %s \n", "TV",
- // config_value);
-
- if (strcmp(config_value, "null") == 0) {
- // LOGD(
- // "%s, get config modify value \"%s\", return audio.amp.supperbass.cfgindex.mod.en.\n",
- // "TV", config_value);
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSupperBassVolLutBufNameModifyEnableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV",
- "audio.amp.supbassvol.lutbufname.mod.en", "null");
- //LOGD("%s, audio.amp.supbassvol.lutbufname.mod.en is %s \n", "TV",
- // config_value);
-
- if (strcmp(config_value, "null") == 0) {
- // LOGD(
- // "%s, get config enable value \"%s\", return 0 to not enable moidfy lut buffer name.\n",
- // "TV", config_value);
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSupperBassVolLutBufNameCFG(int get_type, char name_buf[])
-{
- if (get_type == CC_GET_LUT_TV) {
- strcpy(name_buf, "audio.amp.supbassvol.tv.lb.name");
- } else if (get_type == CC_GET_LUT_AV) {
- strcpy(name_buf, "audio.amp.supbassvol.av.lb.name");
- } else if (get_type == CC_GET_LUT_COMP) {
- strcpy(name_buf, "audio.amp.supbassvol.comp.lb.name");
- } else if (get_type == CC_GET_LUT_HDMI) {
- strcpy(name_buf, "audio.amp.supbassvol.hdmi.lb.name");
- } else if (get_type == CC_GET_LUT_VGA) {
- strcpy(name_buf, "audio.amp.supbassvol.vga.lb.name");
- } else if (get_type == CC_GET_LUT_MPEG) {
- strcpy(name_buf, "audio.amp.supbassvol.mpeg.lb.name");
- } else if (get_type == CC_GET_LUT_HDMI_4K2K) {
- strcpy(name_buf, "audio.amp.supbassvol.hdmi4k2k.lb.name");
- } else if (get_type == CC_GET_LUT_USB_4K2K) {
- strcpy(name_buf, "audio.amp.supbassvol.usb4k2k.lb.name");
- } else {
- return -1;
- }
-
- return 0;
-}
-
-static int GetAudioSupperBassByModifyName(int get_type,
- int *VolumeDigitLutBuf_XX)
-{
- int i = 0, buf_count = 0, buf_item_count = 0;
- char key_buf[128];
- const char *value_buf;
-
- memset(key_buf, '\0', 128);
-
- GetAudioSupperBassVolLutBufNameCFG(get_type, key_buf);
-
- value_buf = config_get_str("TV", key_buf, (char *) "");
- //LOGD("%s, get_type = %d, key_buf = %s, value_buf = %s \n", "TV",
- // get_type, key_buf, value_buf);
-
- if (strcmp(value_buf, "") != 0) {
- if (GetAudioCfgBufferData(value_buf, &buf_count, &buf_item_count, 10,
- VolumeDigitLutBuf_XX) == 0) {
- return 0;
- }
- }
-
- return -1;
-}
-
-int *GetAudioAmplifierSupperBassVolumeLUTBufferPtr(int get_type,
- int audio_std)
-{
- int buf_count = 0, buf_item_count = 0;
-
- int name_en = GetAudioSupperBassVolLutBufNameModifyEnableCFG();
-
- if (name_en == 1) {
- if (get_type == CC_GET_LUT_TV) {
- if (GetAudioSupperBassByModifyName(get_type,
- mTVSupperBassDigitLutBuf_XX) == 0) {
- return mTVSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_AV) {
- if (GetAudioSupperBassByModifyName(get_type,
- mAVSupperBassDigitLutBuf_XX) == 0) {
- return mAVSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_COMP) {
- if (GetAudioSupperBassByModifyName(get_type,
- mCOMPSupperBassDigitLutBuf_XX) == 0) {
- return mCOMPSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_HDMI) {
- if (GetAudioSupperBassByModifyName(get_type,
- mHDMISupperBassDigitLutBuf_XX) == 0) {
- return mHDMISupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_VGA) {
- if (GetAudioSupperBassByModifyName(get_type,
- mVGASupperBassDigitLutBuf_XX) == 0) {
- return mVGASupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_MPEG) {
- if (GetAudioSupperBassByModifyName(get_type,
- mMPEGSupperBassDigitLutBuf_XX) == 0) {
- return mMPEGSupperBassDigitLutBuf_XX;
- }
- }
- } else {
- if (get_type == CC_GET_LUT_TV) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_TV_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mTVSupperBassDigitLutBuf_XX) == 0) {
- return mTVSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_AV) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_AV_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mAVSupperBassDigitLutBuf_XX) == 0) {
- return mAVSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_COMP) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_COMP_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mCOMPSupperBassDigitLutBuf_XX) == 0) {
- return mCOMPSupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_HDMI) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_HDMI_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mHDMISupperBassDigitLutBuf_XX) == 0) {
- return mHDMISupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_VGA) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_VGA_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mVGASupperBassDigitLutBuf_XX) == 0) {
- return mVGASupperBassDigitLutBuf_XX;
- }
- } else if (get_type == CC_GET_LUT_MPEG) {
- if (GetAudioCfgBufferData(
- CS_AUDIO_AMP_SUPPERBASSVOL_MPEG_LUTBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, mMPEGSupperBassDigitLutBuf_XX) == 0) {
- return mMPEGSupperBassDigitLutBuf_XX;
- }
- }
- }
-
- return NULL;
-}
-
-int *GetAudioEQPresetBufferPtr()
-{
- int buf_count = 0, buf_item_count = 0;
- int *tmpDataBufPtr = NULL;
-
- tmpDataBufPtr = mEQPresetValueBuf_XX;
-
- memset((void *) tmpDataBufPtr, 0, sizeof(int) * CC_EQ_PRESET_BUF_SIZE);
-
- if (GetAudioCfgBufferData(CS_EQ_PRESETBUF_CFG_NAME, &buf_count,
- &buf_item_count, 10, tmpDataBufPtr) == 0) {
- return tmpDataBufPtr;
- }
-
- return mEQPresetDefBuf;
-}
-
-int GetAudioDVISupportEnable()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_DVI_SUPPORT_ENABLE_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetTvAudioCardID(char tv_card_id_buf[])
-{
- const char *value;
- value = config_get_str("TV", "audio.tv.card.id", "null");
- //LOGD("%s, get card id is \"%s\".\n", "TV", tv_card_id_buf);
-
- strcpy(tv_card_id_buf, value);
- if (strcmp(value, "null") == 0) {
- strcpy(tv_card_id_buf, "0");
- // LOGD("%s, card id not config, we set to default \"%s\".\n",
- // "TV", "0");
- }
-
- return 0;
-}
-
-int GetTvAudioCardName(char tv_card_name_buf[])
-{
- const char *value;
- value = config_get_str("TV", "audio.tv.card.name", "null");
- //LOGD("%s, get card name is \"%s\".\n", "TV", tv_card_name_buf);
-
- strcpy(tv_card_name_buf, value);
- if (strcmp(value, "null") == 0) {
- strcpy(tv_card_name_buf, "AMLSYNO9629");
- // LOGD("%s, card name not config, we set to default \"%s\".\n",
- // "TV", "AML-M2");
- }
-
- return 0;
-}
-
-int GetTvAudioCardNeedSet()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", "audio.tv.card.needset", "null");
- //LOGD("%s, get \"%s\" is \"%s\".\n", "TV", "audio.tv.card.needset",
- // config_value);
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- if (strtoul(config_value, NULL, 10) == 0) {
- return 0;
- }
-
- return 1;
-}
-
-static int GetAudioEffectAmplifierGainCfg(const char *cfg_name,
- int def_gain_val, int max_gain_val)
-{
- int tmp_val;
- const char *config_value;
-
- config_value = config_get_str("TV", cfg_name, "null");
- //LOGD("%s, get %s is \"%s\".\n", "TV", cfg_name, config_value);
-
- if (strcmp(config_value, "null") == 0) {
- // LOGD(
- // "%s, get config \"%s\" is \"%s\", return default audio effect amplifier gain value(%d).\n",
- // "TV", cfg_name, config_value, def_gain_val);
- return def_gain_val;
- }
-
- tmp_val = strtoul(config_value, NULL, 10);
- if (tmp_val < 0 || tmp_val > max_gain_val) {
- // LOGD(
- // "%s, get config \"%s\" is error, it(%d) should between %d and %d, return default audio effect amplifier gain value(%d)\n",
- // "TV", cfg_name, tmp_val, 0, max_gain_val, def_gain_val);
- tmp_val = def_gain_val;
- }
-
- return tmp_val;
-}
-
-int GetAudioSRSModuleDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SRS_MOUDLE_DISABLE_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSRSSourroundDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SRS_SOURROUND_DISABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSRSTrubassDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SRS_TRUBASS_DISABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSRSDialogClarityDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SRS_DIALOGCLARITY_DISABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-static int GetAudioSRSGainCfg(const char *cfg_name, int def_gain_val)
-{
- int tmp_val;
- const char *config_value;
-
- config_value = config_get_str("TV", cfg_name, "null");
- //LOGD("%s, get %s is \"%s\".\n", "TV", cfg_name, config_value);
-
- if (strcmp(config_value, "null") == 0) {
- // LOGD(
- // "%s, get config \"%s\" is \"%s\", return -1 to use default gain value.\n",
- // "TV", cfg_name, config_value);
- return -1;
- }
-
- tmp_val = strtoul(config_value, NULL, 10);
- if (tmp_val < 0 || tmp_val > 100) {
- tmp_val = def_gain_val;
- // LOGD("%s, get config \"%s\" is error, we set it to %d\n", "TV",
- // cfg_name, tmp_val);
- }
-
- return tmp_val;
-}
-
-static int GetAudioSRSAmplifierGainCfg(const char *cfg_name, int def_gain_val)
-{
- return GetAudioEffectAmplifierGainCfg(cfg_name, def_gain_val, 24);
-}
-
-static int GetAudioEQAmplifierGainCfg(const char *cfg_name, int def_gain_val)
-{
- return GetAudioEffectAmplifierGainCfg(cfg_name, def_gain_val, 24);
-}
-
-int GetAudioSRSSourroundGainCfg()
-{
- return GetAudioSRSGainCfg(CS_SRS_SOURROUND_GAIN_CFG_NAME,
- CC_SRS_SURROUND_GAIN_VAL);
-}
-
-int GetAudioSRSSourroundAmplifierMasterGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_SOURROUND_AMP_MASTER_GAIN_CFG_NAME,
- CC_SRS_SURROUND_AMP_MASTER_GAIN_VAL);
-}
-
-int GetAudioSRSSourroundAmplifierSupperBassGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_SOURROUND_AMP_SUPPERBASS_GAIN_CFG_NAME,
- CC_SRS_SURROUND_AMP_SUPPERBASS_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassOnlyGainCfg()
-{
- return GetAudioSRSGainCfg(CS_SRS_TRUBASS_ONLY_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_ONLY_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassOnlyAmplifierMasterGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassOnlyAmplifierSupperBassGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_VAL);
-}
-
-int GetAudioSRSDialogClarityOnlyGainCfg()
-{
- return GetAudioSRSGainCfg(CS_SRS_DIALOGCLARITY_ONLY_GAIN_CFG_NAME,
- CC_SRS_DIALOGCLARITY_ONLY_GAIN_VAL);
-}
-
-int GetAudioSRSDialogClarityOnlyAmplifierMasterGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_CFG_NAME,
- CC_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_VAL);
-}
-
-int GetAudioSRSDialogClarityOnlyAmplifierSupperBassGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME,
- CC_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_VAL);
-}
-
-int GetAudioSRSDialogClarityOnlyDefinitionGainCfg()
-{
- return GetAudioSRSGainCfg(
- CS_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_CFG_NAME,
- CC_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassAndDialogClarityTrubassGainCfg()
-{
- return GetAudioSRSGainCfg(
- CS_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassAndDialogClarityDialogClarityGainCfg()
-{
- return GetAudioSRSGainCfg(
- CS_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassAndDialogClarityDefinitionGainCfg()
-{
- return GetAudioSRSGainCfg(
- CS_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassAndDialogClarityAmplifierMasterGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_VAL);
-}
-
-int GetAudioSRSTrubassAndDialogClarityAmplifierSupperBassGainCfg()
-{
- return GetAudioSRSAmplifierGainCfg(
- CS_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_CFG_NAME,
- CC_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_VAL);
-}
-
-int GetAudioSRSSupperBassTrubassSpeakerSizeCfg(int get_flag)
-{
- int tmp_val;
- char cfg_name[128] = { 0 };
- const char *config_value;
-
- if (get_flag == 0) {
- strcpy(cfg_name, CS_SRS_SUPPERBASS_OFF_TRUBASS_SPEAKER_SIZE_CFG_NAME);
- } else {
- strcpy(cfg_name, CS_SRS_SUPPERBASS_ON_TRUBASS_SPEAKER_SIZE_CFG_NAME);
- }
-
- config_value = config_get_str("TV", cfg_name, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return -1;
- }
-
- tmp_val = strtoul(config_value, NULL, 10);
- if (tmp_val < 0 || tmp_val > 7) {
- tmp_val = -1;
- }
-
- return tmp_val;
-}
-
-int GetAudioEQAmplifierMasterAddGainCfg()
-{
- return GetAudioEQAmplifierGainCfg(CS_EQ_AMP_MASTER_GAIN_CFG_NAME,
- CC_EQ_AMP_MASTER_GAIN_VAL);
-}
-
-int GetAudioEQAmplifierSupperBassAddGainCfg()
-{
- return GetAudioEQAmplifierGainCfg(CS_EQ_AMP_SUPPERBASS_GAIN_CFG_NAME,
- CC_EQ_AMP_SUPPERBASS_GAIN_VAL);
-}
-
-int GetAudioEqModuleDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_EQ_MOUDLE_DISABLE_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioEqUsingAndroidCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_EQ_USING_ANDROID_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioEQGainRangeCFG(int *min_val, int *max_val)
-{
- int i = 0, buf_item_count = 0, tmp_item_count = 0;
- int tmp_buf[16] = { 0 };
-
- buf_item_count = 2;
- tmp_item_count = buf_item_count;
- if (GetAudioCfgData(CS_EQ_GAIN_RANGE_CFG_NAME, &tmp_item_count, 10, tmp_buf)
- < 0) {
- return -1;
- }
-
- if (tmp_item_count != buf_item_count) {
- return -1;
- }
-
- *min_val = tmp_buf[0];
- *max_val = tmp_buf[1];
-
- return 0;
-}
-
-int GetAudioEQUIGainRangeCFG(int *min_val, int *max_val)
-{
- int i = 0, buf_item_count = 0, tmp_item_count = 0;
- int tmp_buf[16] = { 0 };
-
- buf_item_count = 2;
- tmp_item_count = buf_item_count;
- if (GetAudioCfgData(CS_EQ_UI_GAIN_RANGE_CFG_NAME, &tmp_item_count, 10,
- tmp_buf) < 0) {
- return -1;
- }
-
- if (tmp_item_count != buf_item_count) {
- return -1;
- }
-
- *min_val = tmp_buf[0];
- *max_val = tmp_buf[1];
-
- return 0;
-}
-
-int GetAudioDumpDataEnableFlagCfg()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_AUDIO_DUMP_DATA_ENABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioKeyMuteCfg()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_KEY_MUTE_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioAVOutInitMuteStatusCFG()
-{
- const char *config_value;
- int status = 0;
-
- config_value = config_get_str("TV", CS_AVOUT_INIT_MUTE_CFG_NAME, "null");
- LOGD("%s, get %s is \"%s\".\n", __FUNCTION__, CS_AVOUT_INIT_MUTE_CFG_NAME,
- config_value);
-
- if (strcmp(config_value, "enable") == 0) {
- status = 1;
- } else {
- status = 0;
- }
-
- return status;
-}
-
-int GetAudioSupperBassModuleDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SUPPERBASS_MODULE_DISABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioSupperBassSwitchDisableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_SUPPERBASS_SWITCH_DISABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-static int GetAudioSrcInputLineInVol(const char *cfg_str, int *l_vol,
- int *r_vol)
-{
- int buf_item_count = 2;
- int data_buf[2] = { -1, -1 };
-
- if (GetAudioCfgData(cfg_str, &buf_item_count, 10, data_buf) < 0) {
- return -1;
- }
-
- if (buf_item_count < 2) {
- return -1;
- }
-
- *l_vol = data_buf[0];
- *r_vol = data_buf[1];
-
- return 0;
-}
-
-int GetAudioSrcInputTVLineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_TV_LINEIN_VOL_CFG_NAME, l_vol,
- r_vol);
-}
-
-int GetAudioSrcInputAVLineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_AV_LINEIN_VOL_CFG_NAME, l_vol,
- r_vol);
-}
-
-int GetAudioSrcInputCOMPLineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_COMP_LINEIN_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputHDMILineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_HDMI_LINEIN_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputVGALineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_VGA_LINEIN_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputMPEGLineInVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineInVol(CS_SRC_INPUT_MPEG_LINEIN_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-static int GetAudioSrcInputLineOutVol(const char *cfg_str, int *l_vol,
- int *r_vol)
-{
- int buf_item_count = 2;
- int data_buf[2] = { -1, -1 };
-
- if (GetAudioCfgData(cfg_str, &buf_item_count, 10, data_buf) < 0) {
- return -1;
- }
-
- if (buf_item_count < 2) {
- return -1;
- }
-
- *l_vol = data_buf[0];
- *r_vol = data_buf[1];
-
- return 0;
-}
-
-int GetAudioSrcInputTVLineOutVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_TV_LINEOUT_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputAVLineOutVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_AV_LINEOUT_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputCOMPLineOutVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_COMP_LINEOUT_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputHDMILineOutVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_HDMI_LINEOUT_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputVGALineOutVol(int *l_vol, int *r_vol)
-{
- return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_VGA_LINEOUT_VOL_CFG_NAME,
- l_vol, r_vol);
-}
-
-int GetAudioSrcInputMPEGLineOutVol(int *l_vol, int *r_vol)
-{
- int tmp_val = 0;
- const char *config_value;
-
- config_value = config_get_str("TV",
- CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME_OLD, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return GetAudioSrcInputLineOutVol(
- CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME, l_vol, r_vol);
- }
-
- tmp_val = strtol(config_value, NULL, 10);
-
- *l_vol = tmp_val;
- *r_vol = tmp_val;
-
- return 0;
-}
-
-int GetAudioWallEffectTypeCfg()
-{
- return GetAudioCfgSingleIntData("audio.walleffect.type", 0);
-}
-
-static int GetAudioMainVolumeLutBufCompensation(const char *cfg_str,
- int *cfg_flag)
-{
- const char *config_value;
-
- config_value = config_get_str("TV", cfg_str, "null");
- //LOGD("%s, get \"%s\" is \"%s\".\n", "TV", cfg_str, config_value);
-
- if (strcmp(config_value, "null") == 0) {
- if (cfg_flag != NULL) {
- *cfg_flag = 0;
- }
-
- //LOGD(
- // "%s, get config \"%s\" is \"%s\", return 0 to not compensation lut buffer.\n",
- // "TV", cfg_str, config_value);
- return 0;
- }
-
- if (cfg_flag != NULL) {
- *cfg_flag = 1;
- }
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioMainVolumeLutBufTVCompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_TV_CFG_NAME, NULL);
-}
-
-int GetAudioMainVolumeLutBufAVCompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_AV_CFG_NAME, NULL);
-}
-
-int GetAudioMainVolumeLutBufCOMPCompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_COMP_CFG_NAME, NULL);
-}
-
-int GetAudioMainVolumeLutBufHDMICompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_HDMI_CFG_NAME, NULL);
-}
-
-int GetAudioMainVolumeLutBufVGACompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_VGA_CFG_NAME, NULL);
-}
-
-int GetAudioMainVolumeLutBufMPEGCompensation()
-{
- int tmp_ret = 0, cfg_flag = 0;
-
- tmp_ret = GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_MPEG_CFG_NAME, &cfg_flag);
-
- if (cfg_flag == 0) {
- tmp_ret = GetAudioMainVolumeLutBufDTVCompensation();
- }
-
- return tmp_ret;
-}
-
-int GetAudioMainVolumeLutBufDTVCompensation()
-{
- return GetAudioMainVolumeLutBufCompensation(
- CS_AMP_MAINVOL_LUTBUF_COMPENSATION_DTV_CFG_NAME, NULL);
-}
-
-int GetAudioNoiseGateEnableCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_AUDIO_NOISE_GATE_ENABLE_CFG_NAME,
- "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-int GetAudioNoiseGateUpperBoundCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV",
- CS_AUDIO_NOISE_GATE_UPPER_BOUND_CFG_NAME, "254");
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetAudioNoiseGateThresholdCFG()
-{
- const char *config_value;
-
- config_value = config_get_str("TV", CS_AUDIO_NOISE_GATE_THRESHOLD_CFG_NAME,
- "-1");
-
- return strtol(config_value, NULL, 10);
-}
-
-int GetDisableResetSystemFrameSize()
-{
- const char *config_value;
- config_value = config_get_str("TV",
- CS_DISABLE_RESET_SYSTEM_FRAMESIZE_CFG_NAME, "null");
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
-
-static int gDisableResetSystemFrameSizeFlag = -1;
-int GetDisableReset_System_framesizeCFG(void)
-{
- if (gDisableResetSystemFrameSizeFlag == -1) {
- const char *config_value;
-
- config_value = config_get_str("TV", CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME,
- "null");
- LOGD("%s, get %s is \"%s\".\n",
- __FUNCTION__, CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME, config_value);
-
- if (strcmp(config_value, "disable") == 0) {
- gDisableResetSystemFrameSizeFlag = 0x55;
- } else {
- gDisableResetSystemFrameSizeFlag = 0;
- }
- }
-
- return gDisableResetSystemFrameSizeFlag;
-}
-
-int GetAudioArchitectureTypeCFG()
-{
- static int architecture_type = -1;
- const char *config_value = NULL;
-
- if (architecture_type == -1) {
- config_value = config_get_str ( "TV", CS_AUDIO_ARCHITECTURE_TYPE_CFG_NAME, "null" );
- if (strcasecmp(config_value, "null") == 0) {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
- } else if (strcasecmp(config_value, "t866_external_dac_offboard_fbc") == 0) {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
- } else if (strcasecmp(config_value, "t866_external_dac_offboard_customer_lib") == 0) {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_CUSTOMER_LIB;
- } else if (strcasecmp(config_value, "t866_external_dac_offboard_digital") == 0) {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_DIGITAL;
- } else if (strcasecmp(config_value, "t866_external_dac_onboard") == 0) {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_ON_BOARD;
- } else if (strcasecmp(config_value, "t866_iternal_dac") == 0) {
- architecture_type = CC_DAC_T866_INTERNAL_DAC;
- } else if (strcasecmp(config_value, "m6c") == 0) {
- architecture_type = CC_DAC_M6C_EXTERNAL_DAC_ON_BOARD;
- } else {
- architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
- }
- }
-
- return architecture_type;
-}
-
-static int gAudioResampleType = -1;
-int GetAudioResampleTypeCFG()
-{
- char *token = NULL;
- const char *strDelimit = ",";
- const char *config_value = NULL;
- char cfg_buf[1024];
-
- if (gAudioResampleType == -1) {
- gAudioResampleType = 0;
-
- config_value = config_get_str ( "TV", CS_AUDIO_RESAMPLE_TYPE_CFG_NAME, "null" );
- strncpy(cfg_buf, config_value, sizeof(cfg_buf));
- if (strcmp(cfg_buf, "") != 0) {
- token = strtok(cfg_buf, strDelimit);
- while (token != NULL) {
- if (strcasecmp(token, "hw") == 0) {
- gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_HW;
- } else if (strcasecmp(token, "sw") == 0) {
- gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_SW;
- }
-
- token = strtok(NULL, strDelimit);
- }
- } else {
- gAudioResampleType = CC_AUD_RESAMPLE_TYPE_SW; //if can't find config string, allow sw resample
- }
- }
-
- return gAudioResampleType;
-}
-
-int GetamAudioDisableFlagCFG()
-{
- static int am_audio_disable_flag = -1;
- const char *config_value = NULL;
-
- if (am_audio_disable_flag == -1) {
- config_value = config_get_str ( "TV", "audio.amaudio.disable", "null" );
- if (strcasecmp(config_value, "null") == 0 || strcasecmp(config_value, "false") == 0) {
- am_audio_disable_flag = 0;
- } else if (strcasecmp(config_value, "true") == 0) {
- am_audio_disable_flag = 1;
- } else {
- am_audio_disable_flag = 0;
- }
- }
-
- return am_audio_disable_flag;
-}
-
-int GetAudioFirstInitSetTypeCFG()
-{
- const char *config_value;
- config_value = config_get_str ( "TV", "audio.firstinitset.type", "null" );
-
- if (strcmp(config_value, "null") == 0) {
- return 0;
- }
-
- return strtoul(config_value, NULL, 10);
-}
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <android/log.h>
+#include <cutils/properties.h>
+
+#include "../tvsetting/CTvSetting.h"
+#include "../tvconfig/tvconfig.h"
+#include "audio_cfg.h"
+
+#define LOG_TAG "audio_cfg"
+#include "CTvLog.h"
+
+#define CS_AUDIO_AMP_MASTER_NOLINE_SWITCH_CFG_NAME "audio.amp.master.noline.switch"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_CNT_CFG_NAME "audio.amp.master.noline.point.cnt"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_BUF_CFG_NAME "audio.amp.master.noline.point.ind.buf"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME "audio.amp.master.noline.point.data.defbuf"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_DEF_BUF_CFG_NAME "audio.amp.master.noline.point.ind.defbuf"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_TV_BUF_CFG_NAME "audio.amp.master.noline.point.data.tv"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_AV_BUF_CFG_NAME "audio.amp.master.noline.point.data.av"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_COMP_BUF_CFG_NAME "audio.amp.master.noline.point.data.comp"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_HDMI_BUF_CFG_NAME "audio.amp.master.noline.point.data.hdmi"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_VGA_BUF_CFG_NAME "audio.amp.master.noline.point.data.vga"
+#define CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_MPEG_BUF_CFG_NAME "audio.amp.master.noline.point.data.mpeg"
+
+#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_SWITCH_CFG_NAME "audio.amp.supperbass.noline.switch"
+#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_CNT_CFG_NAME "audio.amp.supperbass.noline.point.cnt"
+#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_BUF_CFG_NAME "audio.amp.supperbass.noline.point.ind.buf"
+#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME "audio.amp.supperbass.noline.point.data.defbuf"
+#define CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_DEF_BUF_CFG_NAME "audio.amp.supperbass.noline.point.ind.defbuf"
+
+#define CS_AUDIO_AMP_BALANCE_EXCHG_CFG_NAME "audio.amp.balance.exchg"
+
+#define CS_EQ_MOUDLE_DISABLE_CFG_NAME "audio.eq.module.disable"
+#define CS_EQ_USING_ANDROID_CFG_NAME "audio.eq.using.android"
+#define CS_EQ_PRESETBUF_CFG_NAME "audio.eq.presetbuf"
+#define CS_EQ_GAIN_RANGE_CFG_NAME "audio.eq.gain.range"
+#define CS_EQ_UI_GAIN_RANGE_CFG_NAME "audio.eq.uigain.range"
+#define CS_EQ_AMP_MASTER_GAIN_CFG_NAME "audio.eq.ampmaster.gain"
+#define CS_EQ_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.eq.ampsupperbass.gain"
+
+#define CS_AUDIO_AMP_MAINVOL_TV_LUTBUF_CFG_NAME "audio.amp.mainvol.tv.lutbuf"
+#define CS_AUDIO_AMP_MAINVOL_AV_LUTBUF_CFG_NAME "audio.amp.mainvol.av.lutbuf"
+#define CS_AUDIO_AMP_MAINVOL_COMP_LUTBUF_CFG_NAME "audio.amp.mainvol.comp.lutbuf"
+#define CS_AUDIO_AMP_MAINVOL_HDMI_LUTBUF_CFG_NAME "audio.amp.mainvol.hdmi.lutbuf"
+#define CS_AUDIO_AMP_MAINVOL_VGA_LUTBUF_CFG_NAME "audio.amp.mainvol.vga.lutbuf"
+#define CS_AUDIO_AMP_MAINVOL_MPEG_LUTBUF_CFG_NAME "audio.amp.mainvol.mpeg.lutbuf"
+
+#define CS_AUDIO_AMP_SUPPERBASSVOL_TV_LUTBUF_CFG_NAME "audio.amp.supbassvol.tv.lutbuf"
+#define CS_AUDIO_AMP_SUPPERBASSVOL_AV_LUTBUF_CFG_NAME "audio.amp.supbassvol.av.lutbuf"
+#define CS_AUDIO_AMP_SUPPERBASSVOL_COMP_LUTBUF_CFG_NAME "audio.amp.supbassvol.comp.lutbuf"
+#define CS_AUDIO_AMP_SUPPERBASSVOL_HDMI_LUTBUF_CFG_NAME "audio.amp.supbassvol.hdmi.lutbuf"
+#define CS_AUDIO_AMP_SUPPERBASSVOL_VGA_LUTBUF_CFG_NAME "audio.amp.supbassvol.vga.lutbuf"
+#define CS_AUDIO_AMP_SUPPERBASSVOL_MPEG_LUTBUF_CFG_NAME "audio.amp.supbassvol.mpeg.lutbuf"
+
+#define CS_SRS_MOUDLE_DISABLE_CFG_NAME "audio.srs.module.disable"
+#define CS_SRS_SOURROUND_DISABLE_CFG_NAME "audio.srs.sourround.disable"
+#define CS_SRS_TRUBASS_DISABLE_CFG_NAME "audio.srs.trubass.disable"
+#define CS_SRS_DIALOGCLARITY_DISABLE_CFG_NAME "audio.srs.dialogclarity.disable"
+#define CS_SRS_SOURROUND_GAIN_CFG_NAME "audio.srs.sourround.gain"
+#define CS_SRS_SOURROUND_AMP_MASTER_GAIN_CFG_NAME "audio.srs.sourround.ampmaster.gain"
+#define CS_SRS_SOURROUND_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.sourround.ampsupperbass.gain"
+#define CS_SRS_TRUBASS_ONLY_GAIN_CFG_NAME "audio.srs.trubass.only.gain"
+#define CS_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.trubass.only.ampmaster.gain"
+#define CS_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.trubass.only.ampsupperbass.gain"
+#define CS_SRS_DIALOGCLARITY_ONLY_GAIN_CFG_NAME "audio.srs.dialogclarity.only.gain"
+#define CS_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.dialogclarity.only.ampmaster.gain"
+#define CS_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.dialogclarity.only.ampsupperbass.gain"
+#define CS_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_CFG_NAME "audio.srs.dialogclarity.only.definition.gain"
+#define CS_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.trubass.gain"
+#define CS_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.dialogclarity.gain"
+#define CS_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.definition.gain"
+#define CS_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.ampmaster.gain"
+#define CS_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_CFG_NAME "audio.srs.turbass.dialogclarity.ampsupperbass.gain"
+#define CS_SRS_SUPPERBASS_ON_TRUBASS_SPEAKER_SIZE_CFG_NAME "audio.srs.supperbasson.turbass.speakersize"
+#define CS_SRS_SUPPERBASS_OFF_TRUBASS_SPEAKER_SIZE_CFG_NAME "audio.srs.supperbassoff.turbass.speakersize"
+
+#define CS_AUDIO_DUMP_DATA_ENABLE_CFG_NAME "audio.dump.data.en"
+#define CS_KEY_MUTE_CFG_NAME "audio.mute.keymute"
+#define CS_AVOUT_INIT_MUTE_CFG_NAME "audio.avout.init.mute"
+#define CS_SUPPERBASS_MODULE_DISABLE_CFG_NAME "audio.supperbass.module.disable"
+#define CS_SUPPERBASS_SWITCH_DISABLE_CFG_NAME "audio.supperbass.switch.disable"
+#define CS_DVI_SUPPORT_ENABLE_CFG_NAME "audio.dvi.support.enable"
+#define CS_SRC_INPUT_TV_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.tv.vol"
+#define CS_SRC_INPUT_AV_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.av.vol"
+#define CS_SRC_INPUT_COMP_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.comp.vol"
+#define CS_SRC_INPUT_HDMI_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.hdmi.vol"
+#define CS_SRC_INPUT_VGA_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.vga.vol"
+#define CS_SRC_INPUT_MPEG_LINEIN_VOL_CFG_NAME "audio.srcinput.linein.mpeg.vol"
+#define CS_SRC_INPUT_TV_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.tv.vol"
+#define CS_SRC_INPUT_AV_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.av.vol"
+#define CS_SRC_INPUT_COMP_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.comp.vol"
+#define CS_SRC_INPUT_HDMI_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.hdmi.vol"
+#define CS_SRC_INPUT_VGA_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.vga.vol"
+#define CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME "audio.srcinput.lineout.mpeg.vol"
+#define CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME_OLD "audio.srcinput.lineout.vol"
+
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_TV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.tv"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_AV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.av"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_COMP_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.comp"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_HDMI_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.hdmi"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_VGA_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.vga"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_MPEG_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.mpeg"
+#define CS_AMP_MAINVOL_LUTBUF_COMPENSATION_DTV_CFG_NAME "audio.amp.mainvol.lutbuf.compensation.dtv"
+
+#define CS_AUDIO_NOISE_GATE_ENABLE_CFG_NAME "audio.noise.gate.enable"
+#define CS_AUDIO_NOISE_GATE_THRESHOLD_CFG_NAME "audio.noise.gate.threshold"
+#define CS_AUDIO_NOISE_GATE_UPPER_BOUND_CFG_NAME "audio.noise.gate.upper.bound"
+
+#define CS_DISABLE_RESET_SYSTEM_FRAMESIZE_CFG_NAME "audio.reset.system.framesize.disable"
+#define CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME "audio.reset.system.framesize"
+
+#define CS_AUDIO_ARCHITECTURE_TYPE_CFG_NAME "audio.architecture.type"
+#define CS_AUDIO_RESAMPLE_TYPE_CFG_NAME "audio.resample.type"
+
+
+#define CC_MAX_SUP_LUT_CFG_INDEX (32)
+
+static int gMasterNoLinePointsIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gMasterNoLinePointsDefDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gMasterNoLinePointsDefIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+
+static int gSupperBassNoLinePointsIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] =
+{ -1 };
+static int gSupperBassNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gSupperBassNoLinePointsDefDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
+ -1
+};
+static int gSupperBassNoLinePointsDefIndexBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
+ -1
+};
+
+static int gTVMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gAVMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gCOMPMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gHDMIMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gVGAMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gMPEGMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = { -1 };
+static int gHDMI4K2KMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
+ -1
+};
+static int gUSB4K2KMasterNoLinePointsDataBuffer[CC_NO_LINE_POINTS_MAX_CNT] = {
+ -1
+};
+
+static int mTVMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mAVMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mCOMPMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mHDMIMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mVGAMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mMPEGMainVolumeDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+
+static int mTVSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mAVSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mCOMPSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mHDMISupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mVGASupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+static int mMPEGSupperBassDigitLutBuf_XX[CC_LUT_BUF_SIZE];
+
+static int mEQPresetValueBuf_XX[CC_EQ_PRESET_BUF_SIZE];
+static int mEQPresetDefBuf[CC_EQ_PRESET_BUF_SIZE] = {
+ //
+ 50, 50, 50, 50, 50, 50, // SM_STD
+ 70, 60, 50, 60, 70, 50, // SM_MUSIC
+ 25, 50, 70, 66, 25, 50, // SM_NEWS
+ 75, 65, 50, 65, 75, 50, // SM_THEATER
+};
+
+static int GetAudioCfgData(const char *key_str, int *buf_item_count, int radix,
+ int data_buf[])
+{
+ int cfg_item_count = 0;
+ char *token = NULL;
+ const char *strDelimit = ",";
+ const char *config_value;
+ char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 };
+
+ config_value = config_get_str("TV", key_str, "null");
+ if (strcasecmp(config_value, "null") == 0) {
+ //LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str);
+ return -1;
+ }
+
+ cfg_item_count = 0;
+
+ memset((void *)data_str, 0, sizeof(data_str));
+ strncpy(data_str, config_value, sizeof(data_str) - 1);
+ token = strtok(data_str, strDelimit);
+ while (token != NULL) {
+ if (cfg_item_count < *buf_item_count) {
+ data_buf[cfg_item_count] = strtol(token, NULL, radix);
+
+ token = strtok(NULL, strDelimit);
+ cfg_item_count += 1;
+ } else {
+ LOGE("%s, we get data count more than desire count (%d)!!!\n",
+ __FUNCTION__ , *buf_item_count);
+ return -1;
+ }
+ }
+
+ *buf_item_count = cfg_item_count;
+
+ return 0;
+}
+
+static int GetAudioCfgBufferData(const char *key_str, int *bufs_count,
+ int *buf_item_count, int radix, int data_buf[])
+{
+ int cfg_item_count = 0, tmpTotalItemCount = 0;
+ char *token = NULL;
+ const char *strDelimit = ",";
+ const char *config_value;
+ char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 };
+
+ config_value = config_get_str("TV", key_str, "null");
+ if (strcasecmp(config_value, "null") == 0) {
+ // LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str);
+ *bufs_count = 0;
+ *buf_item_count = 0;
+ return -1;
+ }
+
+ tmpTotalItemCount = 0;
+
+ memset((void *)data_str, 0, sizeof(data_str));
+ strncpy(data_str, config_value, sizeof(data_str) - 1);
+ token = strtok(data_str, strDelimit);
+ while (token != NULL) {
+ if (cfg_item_count == 0) {
+ *bufs_count = strtol(token, NULL, radix);
+ } else if (cfg_item_count == 1) {
+ *buf_item_count = strtol(token, NULL, radix);
+ } else if (cfg_item_count >= 2) {
+ data_buf[tmpTotalItemCount] = strtol(token, NULL, radix);
+ tmpTotalItemCount += 1;
+ }
+
+ token = strtok(NULL, strDelimit);
+ cfg_item_count += 1;
+ }
+
+ if ((*bufs_count) * (*buf_item_count) != tmpTotalItemCount) {
+ LOGE("%s, get item count error!!! should be %d, real is %d.\n",
+ __FUNCTION__, (*bufs_count) * (*buf_item_count),
+ tmpTotalItemCount);
+ *bufs_count = 0;
+ *buf_item_count = 0;
+ return -1;
+ }
+
+ return 0;
+}
+
+static int GetAudioCfgSingleIntData(const char *key_str, int def_val)
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", key_str, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return def_val;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+template<typename T>
+static int CheckNoLinePoints(int point_cnt, T points_buf[])
+{
+ int i = 0, same_cnt = 0, tmp_direct = -1, error_flag = 0;
+
+ if (point_cnt <= 1) {
+ LOGD("%s, point is less than 2.\n", __FUNCTION__);
+ return 0;
+ }
+
+ for (i = 0; i < point_cnt - 1; i++) {
+ if (points_buf[i] < points_buf[i + 1]) {
+ if (tmp_direct == -1) {
+ tmp_direct = 0;
+ } else if (tmp_direct == 1) {
+ LOGD("%s, check have direct error.\n", __FUNCTION__);
+ return -1;
+ }
+ } else if (points_buf[i] > points_buf[i + 1]) {
+ if (tmp_direct == -1) {
+ tmp_direct = 1;
+ } else if (tmp_direct == 0) {
+ LOGD("%s, check have direct error.\n", __FUNCTION__);
+ return -1;
+ }
+ } else {
+ same_cnt += 1;
+ }
+ }
+
+ if (same_cnt == i) {
+ LOGD("%s, check have same error.\n", __FUNCTION__);
+ return -1;
+ }
+
+ LOGD("%s, check no error.\n", __FUNCTION__);
+ return 0;
+}
+
+int *GetAudioAmplifierNoLinePointsIndexBuffer(int lut_buf_type, int get_type)
+{
+ if (lut_buf_type == CC_LUT_BUF_SUPPERBASS) {
+ return GetAudioAmplifierSupperBassNoLinePointsIndexBuffer(get_type);
+ }
+
+ return NULL;
+}
+
+int *GetAudioAmplifierNoLinePointsDataBuffer(int lut_buf_type, int get_type)
+{
+ if (lut_buf_type == CC_LUT_BUF_SUPPERBASS) {
+ return GetAudioAmplifierSupperBassNoLinePointsDataBuffer(get_type);
+ }
+
+ return NULL;
+}
+
+int GetAudioAmplifierMasterNoLineSwitchFlag()
+{
+ const char *config_value;
+ config_value = config_get_str("TV",
+ CS_AUDIO_AMP_MASTER_NOLINE_SWITCH_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioAmplifierSupperBassNoLineSwitchFlag()
+{
+ const char *config_value;
+ config_value = config_get_str("TV",
+ CS_AUDIO_AMP_SUPPERBASS_NOLINE_SWITCH_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioAmplifierMasterNoLinePointsCount()
+{
+ const char *config_value;
+ config_value = config_get_str("TV",
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_CNT_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 11;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioAmplifierSupperBassNoLinePointsCount()
+{
+ const char *config_value;
+ config_value = config_get_str("TV",
+ CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_CNT_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 5;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+static int GetAudioAmplifierNoLinePointsBuffer(const char *key_str,
+ int buf_item_count, int data_buf[])
+{
+ int i = 0, tmp_item_count = 0;
+ int tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
+
+ // if (data_buf[0] >= 0 && data_buf[0] <= 100) {
+ // LOGD("%s, we have get the index buffer.\n", "TV");
+ // return 0;
+ // }
+
+ tmp_item_count = buf_item_count;
+ if (GetAudioCfgData(key_str, &tmp_item_count, 10, tmp_buf) < 0) {
+ LOGE("%s, get index buffer data error, set default.\n", __FUNCTION__);
+ return -1;
+ }
+
+ if (tmp_item_count != buf_item_count) {
+ LOGE(
+ "%s, get index buffer data error(buf item count error), set default.\n",
+ __FUNCTION__);
+ return -1;
+ }
+
+ for (i = 0; i < buf_item_count; i++) {
+ data_buf[i] = tmp_buf[i];
+ }
+
+ return 0;
+}
+
+int *GetAudioAmplifierSupperBassNoLinePointsIndexBuffer(int get_type)
+{
+ int buf_item_count = 0;
+
+ buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
+ if (GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_BUF_CFG_NAME,
+ buf_item_count, gSupperBassNoLinePointsIndexBuffer) < 0) {
+ return GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer();
+ }
+
+ if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsIndexBuffer)
+ < 0) {
+ return GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer();
+ }
+
+ return gSupperBassNoLinePointsIndexBuffer;
+}
+
+int *GetAudioAmplifierMasterNoLinePointsDataBuffer(int get_type)
+{
+ int i = 0, buf_item_count = 0, tmp_offset = 0;
+ int *tmpPtr = NULL;
+ unsigned char tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
+
+ buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
+
+ if (get_type == CC_GET_LUT_TV) {
+ tmpPtr = gTVMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ } else if (get_type == CC_GET_LUT_AV) {
+ tmpPtr = gAVMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ } else if (get_type == CC_GET_LUT_COMP) {
+ tmpPtr = gCOMPMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ tmpPtr = gHDMIMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ } else if (get_type == CC_GET_LUT_VGA) {
+ tmpPtr = gVGAMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ tmpPtr = gMPEGMasterNoLinePointsDataBuffer;
+ tmp_offset = get_type * buf_item_count;
+ }
+
+ if (tmpPtr != NULL && tmpPtr[0] != -1) {
+ return tmpPtr;
+ }
+
+ if (SSMReadAudioNoLinePoints(tmp_offset, buf_item_count, tmp_buf) < 0) {
+ return GetAudioAmplifierMasterNoLinePointsDefDataBuffer(get_type);
+ }
+
+ if (CheckNoLinePoints(buf_item_count, tmp_buf) < 0) {
+ return GetAudioAmplifierMasterNoLinePointsDefDataBuffer(get_type);
+ }
+
+ for (i = 0; i < buf_item_count; i++) {
+ tmpPtr[i] = tmp_buf[i];
+ }
+
+ return tmpPtr;
+}
+
+int *GetAudioAmplifierSupperBassNoLinePointsDataBuffer(int get_type)
+{
+ int i = 0, buf_item_count = 0, tmp_offset = 0;
+ int *tmpPtr = NULL;
+ unsigned char tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 };
+
+ buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
+
+ tmpPtr = gSupperBassNoLinePointsDataBuffer;
+ if (tmpPtr != NULL && tmpPtr[0] != -1) {
+ return tmpPtr;
+ }
+
+ tmp_offset = CC_GET_TYPE_CNT * GetAudioAmplifierMasterNoLinePointsCount();
+
+ if (SSMReadAudioNoLinePoints(tmp_offset, buf_item_count, tmp_buf) < 0) {
+ return GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer();
+ }
+
+ if (CheckNoLinePoints(buf_item_count, tmp_buf) < 0) {
+ return GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer();
+ }
+
+ for (i = 0; i < buf_item_count; i++) {
+ tmpPtr[i] = tmp_buf[i];
+ }
+
+ return tmpPtr;
+}
+
+int *GetAudioAmplifierMasterNoLinePointsDefIndexBuffer()
+{
+ int i = 0, buf_item_count = 0;
+
+ buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
+ if (GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_IND_DEF_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefIndexBuffer) < 0) {
+ gMasterNoLinePointsDefIndexBuffer[0] = 1;
+
+ for (i = 1; i <= 10; i++) {
+ gMasterNoLinePointsDefIndexBuffer[i] = i * 10;
+ }
+ }
+
+ if (CheckNoLinePoints(buf_item_count, gMasterNoLinePointsDefIndexBuffer)
+ < 0) {
+ gMasterNoLinePointsDefIndexBuffer[0] = 1;
+
+ for (i = 1; i <= 10; i++) {
+ gMasterNoLinePointsDefIndexBuffer[i] = i * 10;
+ }
+ }
+
+ return gMasterNoLinePointsDefIndexBuffer;
+}
+
+int *GetAudioAmplifierSupperBassNoLinePointsDefIndexBuffer()
+{
+ int i = 0, buf_item_count = 0;
+
+ buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
+ if (GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_IND_DEF_BUF_CFG_NAME,
+ buf_item_count, gSupperBassNoLinePointsDefIndexBuffer) < 0) {
+ gSupperBassNoLinePointsDefIndexBuffer[0] = 1;
+
+ for (i = 1; i <= 4; i++) {
+ gSupperBassNoLinePointsDefIndexBuffer[i] = i * 25;
+ }
+ }
+
+ if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsDefIndexBuffer)
+ < 0) {
+ gSupperBassNoLinePointsDefIndexBuffer[0] = 1;
+
+ for (i = 1; i <= 4; i++) {
+ gSupperBassNoLinePointsDefIndexBuffer[i] = i * 25;
+ }
+ }
+
+ return gSupperBassNoLinePointsDefIndexBuffer;
+}
+
+int *GetAudioAmplifierMasterNoLinePointsDefDataBuffer(int buf_type)
+{
+ int i = 0, buf_item_count = 0, point_buffer_flag = 0;
+
+ buf_item_count = GetAudioAmplifierMasterNoLinePointsCount();
+
+ switch (buf_type) {
+ case CC_GET_LUT_TV:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_TV_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ case CC_GET_LUT_AV:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_AV_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ case CC_GET_LUT_COMP:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_COMP_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ case CC_GET_LUT_HDMI:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_HDMI_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ case CC_GET_LUT_VGA:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_VGA_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ case CC_GET_LUT_MPEG:
+ point_buffer_flag = GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_MASTER_NOLINE_POINT_DATA_MPEG_BUF_CFG_NAME,
+ buf_item_count, gMasterNoLinePointsDefDataBuffer);
+ break;
+ default:
+ point_buffer_flag = -1;
+ // LOGE("buffer type is wrong ,please check input Parameter !");
+ break;
+ }
+
+ if (point_buffer_flag < 0) {
+ for (i = 0; i < buf_item_count; i++) {
+ gMasterNoLinePointsDefDataBuffer[i] = 100 + i;
+ }
+
+ return gMasterNoLinePointsDefDataBuffer;
+ }
+
+ if (CheckNoLinePoints(buf_item_count, gMasterNoLinePointsDefDataBuffer)
+ < 0) {
+ for (i = 0; i < buf_item_count; i++) {
+ gMasterNoLinePointsDefDataBuffer[i] = 100 + i;
+ }
+ }
+
+ return gMasterNoLinePointsDefDataBuffer;
+}
+
+int *GetAudioAmplifierSupperBassNoLinePointsDefDataBuffer()
+{
+ int i = 0, buf_item_count = 0;
+
+ buf_item_count = GetAudioAmplifierSupperBassNoLinePointsCount();
+ if (GetAudioAmplifierNoLinePointsBuffer(
+ CS_AUDIO_AMP_SUPPERBASS_NOLINE_POINT_DATA_DEF_BUF_CFG_NAME,
+ buf_item_count, gSupperBassNoLinePointsDefDataBuffer) < 0) {
+ for (i = 0; i < buf_item_count; i++) {
+ gSupperBassNoLinePointsDefDataBuffer[i] = 100 + i;
+ }
+ }
+
+ if (CheckNoLinePoints(buf_item_count, gSupperBassNoLinePointsDefDataBuffer)
+ < 0) {
+ for (i = 0; i < buf_item_count; i++) {
+ gSupperBassNoLinePointsDefDataBuffer[i] = 100 + i;
+ }
+ }
+
+ return gSupperBassNoLinePointsDefDataBuffer;
+}
+
+int GetAudioAmplifierBalanceExchangeCFG()
+{
+ const char *config_value;
+ config_value = config_get_str("TV", CS_AUDIO_AMP_BALANCE_EXCHG_CFG_NAME,
+ "null");
+ if (strcmp(config_value, "null") == 0) {
+ return 0; //return 0 to disable balance exchange
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioMainVolLutBufCFGIndexModifyEnable()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", "audio.amp.master.cfgindex.mod.en",
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioMainVolLutBufNameModifyUbootenvCFG()
+{
+ char config_value[PROPERTY_VALUE_MAX];
+
+ memset(config_value, '\0', 32);
+
+ property_get("ubootenv.var.ampindex", config_value, "null");
+ if (strcasecmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioMainVolLutBufNameModifyFromUbootenv()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV",
+ "audio.amp.mainvol.lutbufname.mod.ubootenv", "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioMainVolLutBufNameModifyEnableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", "audio.amp.mainvol.lutbufname.mod.en",
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioMainVolLutBufNameCFG(int get_type, char name_buf[])
+{
+ if (get_type == CC_GET_LUT_TV) {
+ strcpy(name_buf, "audio.amp.mainvol.tv.lb.name");
+ } else if (get_type == CC_GET_LUT_AV) {
+ strcpy(name_buf, "audio.amp.mainvol.av.lb.name");
+ } else if (get_type == CC_GET_LUT_COMP) {
+ strcpy(name_buf, "audio.amp.mainvol.comp.lb.name");
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ strcpy(name_buf, "audio.amp.mainvol.hdmi.lb.name");
+ } else if (get_type == CC_GET_LUT_VGA) {
+ strcpy(name_buf, "audio.amp.mainvol.vga.lb.name");
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ strcpy(name_buf, "audio.amp.mainvol.mpeg.lb.name");
+ } else if (get_type == CC_GET_LUT_HDMI_4K2K) {
+ strcpy(name_buf, "audio.amp.mainvol.hdmi4k2k.lb.name");
+ } else if (get_type == CC_GET_LUT_USB_4K2K) {
+ strcpy(name_buf, "audio.amp.mainvol.usb4k2k.lb.name");
+ } else {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int GetAudioMainVolLutBufDataByModifyName(int get_type,
+ int *VolumeDigitLutBuf_XX)
+{
+ int i = 0, buf_count = 0, buf_item_count = 0;
+ char key_buf[128];
+ const char *value_buf;
+
+ memset(key_buf, '\0', 128);
+
+ GetAudioMainVolLutBufNameCFG(get_type, key_buf);
+
+ value_buf = config_get_str("TV", key_buf, (char *) "");
+
+ if (strcmp(value_buf, "") != 0) {
+ if (GetAudioCfgBufferData(value_buf, &buf_count, &buf_item_count, 10,
+ VolumeDigitLutBuf_XX) == 0) {
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
+int *GetAudioAmplifierMasterVolumeLUTBufferPtr(int get_type, int audio_std)
+{
+ int buf_count = 0, buf_item_count = 0;
+ int name_en = GetAudioMainVolLutBufNameModifyEnableCFG();
+
+ if (name_en == 1) {
+ if (get_type == CC_GET_LUT_TV) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mTVMainVolumeDigitLutBuf_XX) == 0) {
+ return mTVMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_AV) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mAVMainVolumeDigitLutBuf_XX) == 0) {
+ return mAVMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_COMP) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mCOMPMainVolumeDigitLutBuf_XX) == 0) {
+ return mCOMPMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mHDMIMainVolumeDigitLutBuf_XX) == 0) {
+ return mHDMIMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_VGA) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mVGAMainVolumeDigitLutBuf_XX) == 0) {
+ return mVGAMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ if (GetAudioMainVolLutBufDataByModifyName(get_type,
+ mMPEGMainVolumeDigitLutBuf_XX) == 0) {
+ return mMPEGMainVolumeDigitLutBuf_XX;
+ }
+ }
+ } else {
+ if (get_type == CC_GET_LUT_TV) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_TV_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mTVMainVolumeDigitLutBuf_XX) == 0) {
+ return mTVMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_AV) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_AV_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mAVMainVolumeDigitLutBuf_XX) == 0) {
+ return mAVMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_COMP) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_COMP_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mCOMPMainVolumeDigitLutBuf_XX) == 0) {
+ return mCOMPMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_HDMI_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mHDMIMainVolumeDigitLutBuf_XX) == 0) {
+ return mHDMIMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_VGA) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_VGA_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mVGAMainVolumeDigitLutBuf_XX) == 0) {
+ return mVGAMainVolumeDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ if (GetAudioCfgBufferData(CS_AUDIO_AMP_MAINVOL_MPEG_LUTBUF_CFG_NAME,
+ &buf_count, &buf_item_count, 10,
+ mMPEGMainVolumeDigitLutBuf_XX) == 0) {
+ return mMPEGMainVolumeDigitLutBuf_XX;
+ }
+ }
+ }
+ return NULL;
+}
+
+int GetAudioSupperBassVolLutBufCFGIndexModifyEnable()
+{
+ const char *config_value;
+ config_value = config_get_str("TV", "audio.amp.supperbass.cfgindex.mod.en",
+ "null");
+ //LOGD("%s, get audio.amp.supperbass.cfgindex.mod.en is %s \n", "TV",
+ // config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ // LOGD(
+ // "%s, get config modify value \"%s\", return audio.amp.supperbass.cfgindex.mod.en.\n",
+ // "TV", config_value);
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSupperBassVolLutBufNameModifyEnableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV",
+ "audio.amp.supbassvol.lutbufname.mod.en", "null");
+ //LOGD("%s, audio.amp.supbassvol.lutbufname.mod.en is %s \n", "TV",
+ // config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ // LOGD(
+ // "%s, get config enable value \"%s\", return 0 to not enable moidfy lut buffer name.\n",
+ // "TV", config_value);
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSupperBassVolLutBufNameCFG(int get_type, char name_buf[])
+{
+ if (get_type == CC_GET_LUT_TV) {
+ strcpy(name_buf, "audio.amp.supbassvol.tv.lb.name");
+ } else if (get_type == CC_GET_LUT_AV) {
+ strcpy(name_buf, "audio.amp.supbassvol.av.lb.name");
+ } else if (get_type == CC_GET_LUT_COMP) {
+ strcpy(name_buf, "audio.amp.supbassvol.comp.lb.name");
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ strcpy(name_buf, "audio.amp.supbassvol.hdmi.lb.name");
+ } else if (get_type == CC_GET_LUT_VGA) {
+ strcpy(name_buf, "audio.amp.supbassvol.vga.lb.name");
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ strcpy(name_buf, "audio.amp.supbassvol.mpeg.lb.name");
+ } else if (get_type == CC_GET_LUT_HDMI_4K2K) {
+ strcpy(name_buf, "audio.amp.supbassvol.hdmi4k2k.lb.name");
+ } else if (get_type == CC_GET_LUT_USB_4K2K) {
+ strcpy(name_buf, "audio.amp.supbassvol.usb4k2k.lb.name");
+ } else {
+ return -1;
+ }
+
+ return 0;
+}
+
+static int GetAudioSupperBassByModifyName(int get_type,
+ int *VolumeDigitLutBuf_XX)
+{
+ int i = 0, buf_count = 0, buf_item_count = 0;
+ char key_buf[128];
+ const char *value_buf;
+
+ memset(key_buf, '\0', 128);
+
+ GetAudioSupperBassVolLutBufNameCFG(get_type, key_buf);
+
+ value_buf = config_get_str("TV", key_buf, (char *) "");
+ //LOGD("%s, get_type = %d, key_buf = %s, value_buf = %s \n", "TV",
+ // get_type, key_buf, value_buf);
+
+ if (strcmp(value_buf, "") != 0) {
+ if (GetAudioCfgBufferData(value_buf, &buf_count, &buf_item_count, 10,
+ VolumeDigitLutBuf_XX) == 0) {
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
+int *GetAudioAmplifierSupperBassVolumeLUTBufferPtr(int get_type,
+ int audio_std)
+{
+ int buf_count = 0, buf_item_count = 0;
+
+ int name_en = GetAudioSupperBassVolLutBufNameModifyEnableCFG();
+
+ if (name_en == 1) {
+ if (get_type == CC_GET_LUT_TV) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mTVSupperBassDigitLutBuf_XX) == 0) {
+ return mTVSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_AV) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mAVSupperBassDigitLutBuf_XX) == 0) {
+ return mAVSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_COMP) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mCOMPSupperBassDigitLutBuf_XX) == 0) {
+ return mCOMPSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mHDMISupperBassDigitLutBuf_XX) == 0) {
+ return mHDMISupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_VGA) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mVGASupperBassDigitLutBuf_XX) == 0) {
+ return mVGASupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ if (GetAudioSupperBassByModifyName(get_type,
+ mMPEGSupperBassDigitLutBuf_XX) == 0) {
+ return mMPEGSupperBassDigitLutBuf_XX;
+ }
+ }
+ } else {
+ if (get_type == CC_GET_LUT_TV) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_TV_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mTVSupperBassDigitLutBuf_XX) == 0) {
+ return mTVSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_AV) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_AV_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mAVSupperBassDigitLutBuf_XX) == 0) {
+ return mAVSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_COMP) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_COMP_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mCOMPSupperBassDigitLutBuf_XX) == 0) {
+ return mCOMPSupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_HDMI) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_HDMI_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mHDMISupperBassDigitLutBuf_XX) == 0) {
+ return mHDMISupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_VGA) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_VGA_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mVGASupperBassDigitLutBuf_XX) == 0) {
+ return mVGASupperBassDigitLutBuf_XX;
+ }
+ } else if (get_type == CC_GET_LUT_MPEG) {
+ if (GetAudioCfgBufferData(
+ CS_AUDIO_AMP_SUPPERBASSVOL_MPEG_LUTBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, mMPEGSupperBassDigitLutBuf_XX) == 0) {
+ return mMPEGSupperBassDigitLutBuf_XX;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+int *GetAudioEQPresetBufferPtr()
+{
+ int buf_count = 0, buf_item_count = 0;
+ int *tmpDataBufPtr = NULL;
+
+ tmpDataBufPtr = mEQPresetValueBuf_XX;
+
+ memset((void *) tmpDataBufPtr, 0, sizeof(int) * CC_EQ_PRESET_BUF_SIZE);
+
+ if (GetAudioCfgBufferData(CS_EQ_PRESETBUF_CFG_NAME, &buf_count,
+ &buf_item_count, 10, tmpDataBufPtr) == 0) {
+ return tmpDataBufPtr;
+ }
+
+ return mEQPresetDefBuf;
+}
+
+int GetAudioDVISupportEnable()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_DVI_SUPPORT_ENABLE_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetTvAudioCardID(char tv_card_id_buf[])
+{
+ const char *value;
+ value = config_get_str("TV", "audio.tv.card.id", "null");
+ //LOGD("%s, get card id is \"%s\".\n", "TV", tv_card_id_buf);
+
+ strcpy(tv_card_id_buf, value);
+ if (strcmp(value, "null") == 0) {
+ strcpy(tv_card_id_buf, "0");
+ // LOGD("%s, card id not config, we set to default \"%s\".\n",
+ // "TV", "0");
+ }
+
+ return 0;
+}
+
+int GetTvAudioCardName(char tv_card_name_buf[])
+{
+ const char *value;
+ value = config_get_str("TV", "audio.tv.card.name", "null");
+ //LOGD("%s, get card name is \"%s\".\n", "TV", tv_card_name_buf);
+
+ strcpy(tv_card_name_buf, value);
+ if (strcmp(value, "null") == 0) {
+ strcpy(tv_card_name_buf, "AMLSYNO9629");
+ // LOGD("%s, card name not config, we set to default \"%s\".\n",
+ // "TV", "AML-M2");
+ }
+
+ return 0;
+}
+
+int GetTvAudioCardNeedSet()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", "audio.tv.card.needset", "null");
+ //LOGD("%s, get \"%s\" is \"%s\".\n", "TV", "audio.tv.card.needset",
+ // config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ if (strtoul(config_value, NULL, 10) == 0) {
+ return 0;
+ }
+
+ return 1;
+}
+
+static int GetAudioEffectAmplifierGainCfg(const char *cfg_name,
+ int def_gain_val, int max_gain_val)
+{
+ int tmp_val;
+ const char *config_value;
+
+ config_value = config_get_str("TV", cfg_name, "null");
+ //LOGD("%s, get %s is \"%s\".\n", "TV", cfg_name, config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ // LOGD(
+ // "%s, get config \"%s\" is \"%s\", return default audio effect amplifier gain value(%d).\n",
+ // "TV", cfg_name, config_value, def_gain_val);
+ return def_gain_val;
+ }
+
+ tmp_val = strtoul(config_value, NULL, 10);
+ if (tmp_val < 0 || tmp_val > max_gain_val) {
+ // LOGD(
+ // "%s, get config \"%s\" is error, it(%d) should between %d and %d, return default audio effect amplifier gain value(%d)\n",
+ // "TV", cfg_name, tmp_val, 0, max_gain_val, def_gain_val);
+ tmp_val = def_gain_val;
+ }
+
+ return tmp_val;
+}
+
+int GetAudioSRSModuleDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SRS_MOUDLE_DISABLE_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSRSSourroundDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SRS_SOURROUND_DISABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSRSTrubassDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SRS_TRUBASS_DISABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSRSDialogClarityDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SRS_DIALOGCLARITY_DISABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+static int GetAudioSRSGainCfg(const char *cfg_name, int def_gain_val)
+{
+ int tmp_val;
+ const char *config_value;
+
+ config_value = config_get_str("TV", cfg_name, "null");
+ //LOGD("%s, get %s is \"%s\".\n", "TV", cfg_name, config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ // LOGD(
+ // "%s, get config \"%s\" is \"%s\", return -1 to use default gain value.\n",
+ // "TV", cfg_name, config_value);
+ return -1;
+ }
+
+ tmp_val = strtoul(config_value, NULL, 10);
+ if (tmp_val < 0 || tmp_val > 100) {
+ tmp_val = def_gain_val;
+ // LOGD("%s, get config \"%s\" is error, we set it to %d\n", "TV",
+ // cfg_name, tmp_val);
+ }
+
+ return tmp_val;
+}
+
+static int GetAudioSRSAmplifierGainCfg(const char *cfg_name, int def_gain_val)
+{
+ return GetAudioEffectAmplifierGainCfg(cfg_name, def_gain_val, 24);
+}
+
+static int GetAudioEQAmplifierGainCfg(const char *cfg_name, int def_gain_val)
+{
+ return GetAudioEffectAmplifierGainCfg(cfg_name, def_gain_val, 24);
+}
+
+int GetAudioSRSSourroundGainCfg()
+{
+ return GetAudioSRSGainCfg(CS_SRS_SOURROUND_GAIN_CFG_NAME,
+ CC_SRS_SURROUND_GAIN_VAL);
+}
+
+int GetAudioSRSSourroundAmplifierMasterGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_SOURROUND_AMP_MASTER_GAIN_CFG_NAME,
+ CC_SRS_SURROUND_AMP_MASTER_GAIN_VAL);
+}
+
+int GetAudioSRSSourroundAmplifierSupperBassGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_SOURROUND_AMP_SUPPERBASS_GAIN_CFG_NAME,
+ CC_SRS_SURROUND_AMP_SUPPERBASS_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassOnlyGainCfg()
+{
+ return GetAudioSRSGainCfg(CS_SRS_TRUBASS_ONLY_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_ONLY_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassOnlyAmplifierMasterGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_ONLY_AMP_MASTER_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassOnlyAmplifierSupperBassGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_ONLY_AMP_SUPPERBASS_GAIN_VAL);
+}
+
+int GetAudioSRSDialogClarityOnlyGainCfg()
+{
+ return GetAudioSRSGainCfg(CS_SRS_DIALOGCLARITY_ONLY_GAIN_CFG_NAME,
+ CC_SRS_DIALOGCLARITY_ONLY_GAIN_VAL);
+}
+
+int GetAudioSRSDialogClarityOnlyAmplifierMasterGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_CFG_NAME,
+ CC_SRS_DIALOGCLARITY_ONLY_AMP_MASTER_GAIN_VAL);
+}
+
+int GetAudioSRSDialogClarityOnlyAmplifierSupperBassGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_CFG_NAME,
+ CC_SRS_DIALOGCLARITY_ONLY_AMP_SUPPERBASS_GAIN_VAL);
+}
+
+int GetAudioSRSDialogClarityOnlyDefinitionGainCfg()
+{
+ return GetAudioSRSGainCfg(
+ CS_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_CFG_NAME,
+ CC_SRS_DIALOGCLARITY_ONLY_DEFINITION_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassAndDialogClarityTrubassGainCfg()
+{
+ return GetAudioSRSGainCfg(
+ CS_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_DIALOGCLARITY_TRUBASS_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassAndDialogClarityDialogClarityGainCfg()
+{
+ return GetAudioSRSGainCfg(
+ CS_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_DIALOGCLARITY_DIALOGCLARITY_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassAndDialogClarityDefinitionGainCfg()
+{
+ return GetAudioSRSGainCfg(
+ CS_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_DIALOGCLARITY_DEFINITION_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassAndDialogClarityAmplifierMasterGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_DIALOGCLARITY_AMP_MASTER_GAIN_VAL);
+}
+
+int GetAudioSRSTrubassAndDialogClarityAmplifierSupperBassGainCfg()
+{
+ return GetAudioSRSAmplifierGainCfg(
+ CS_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_CFG_NAME,
+ CC_SRS_TRUBASS_DIALOGCLARITY_AMP_SUPPERBASS_GAIN_VAL);
+}
+
+int GetAudioSRSSupperBassTrubassSpeakerSizeCfg(int get_flag)
+{
+ int tmp_val;
+ char cfg_name[128] = { 0 };
+ const char *config_value;
+
+ if (get_flag == 0) {
+ strcpy(cfg_name, CS_SRS_SUPPERBASS_OFF_TRUBASS_SPEAKER_SIZE_CFG_NAME);
+ } else {
+ strcpy(cfg_name, CS_SRS_SUPPERBASS_ON_TRUBASS_SPEAKER_SIZE_CFG_NAME);
+ }
+
+ config_value = config_get_str("TV", cfg_name, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return -1;
+ }
+
+ tmp_val = strtoul(config_value, NULL, 10);
+ if (tmp_val < 0 || tmp_val > 7) {
+ tmp_val = -1;
+ }
+
+ return tmp_val;
+}
+
+int GetAudioEQAmplifierMasterAddGainCfg()
+{
+ return GetAudioEQAmplifierGainCfg(CS_EQ_AMP_MASTER_GAIN_CFG_NAME,
+ CC_EQ_AMP_MASTER_GAIN_VAL);
+}
+
+int GetAudioEQAmplifierSupperBassAddGainCfg()
+{
+ return GetAudioEQAmplifierGainCfg(CS_EQ_AMP_SUPPERBASS_GAIN_CFG_NAME,
+ CC_EQ_AMP_SUPPERBASS_GAIN_VAL);
+}
+
+int GetAudioEqModuleDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_EQ_MOUDLE_DISABLE_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioEqUsingAndroidCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_EQ_USING_ANDROID_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioEQGainRangeCFG(int *min_val, int *max_val)
+{
+ int i = 0, buf_item_count = 0, tmp_item_count = 0;
+ int tmp_buf[16] = { 0 };
+
+ buf_item_count = 2;
+ tmp_item_count = buf_item_count;
+ if (GetAudioCfgData(CS_EQ_GAIN_RANGE_CFG_NAME, &tmp_item_count, 10, tmp_buf)
+ < 0) {
+ return -1;
+ }
+
+ if (tmp_item_count != buf_item_count) {
+ return -1;
+ }
+
+ *min_val = tmp_buf[0];
+ *max_val = tmp_buf[1];
+
+ return 0;
+}
+
+int GetAudioEQUIGainRangeCFG(int *min_val, int *max_val)
+{
+ int i = 0, buf_item_count = 0, tmp_item_count = 0;
+ int tmp_buf[16] = { 0 };
+
+ buf_item_count = 2;
+ tmp_item_count = buf_item_count;
+ if (GetAudioCfgData(CS_EQ_UI_GAIN_RANGE_CFG_NAME, &tmp_item_count, 10,
+ tmp_buf) < 0) {
+ return -1;
+ }
+
+ if (tmp_item_count != buf_item_count) {
+ return -1;
+ }
+
+ *min_val = tmp_buf[0];
+ *max_val = tmp_buf[1];
+
+ return 0;
+}
+
+int GetAudioDumpDataEnableFlagCfg()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_AUDIO_DUMP_DATA_ENABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioKeyMuteCfg()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_KEY_MUTE_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioAVOutInitMuteStatusCFG()
+{
+ const char *config_value;
+ int status = 0;
+
+ config_value = config_get_str("TV", CS_AVOUT_INIT_MUTE_CFG_NAME, "null");
+ LOGD("%s, get %s is \"%s\".\n", __FUNCTION__, CS_AVOUT_INIT_MUTE_CFG_NAME,
+ config_value);
+
+ if (strcmp(config_value, "enable") == 0) {
+ status = 1;
+ } else {
+ status = 0;
+ }
+
+ return status;
+}
+
+int GetAudioSupperBassModuleDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SUPPERBASS_MODULE_DISABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioSupperBassSwitchDisableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_SUPPERBASS_SWITCH_DISABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+static int GetAudioSrcInputLineInVol(const char *cfg_str, int *l_vol,
+ int *r_vol)
+{
+ int buf_item_count = 2;
+ int data_buf[2] = { -1, -1 };
+
+ if (GetAudioCfgData(cfg_str, &buf_item_count, 10, data_buf) < 0) {
+ return -1;
+ }
+
+ if (buf_item_count < 2) {
+ return -1;
+ }
+
+ *l_vol = data_buf[0];
+ *r_vol = data_buf[1];
+
+ return 0;
+}
+
+int GetAudioSrcInputTVLineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_TV_LINEIN_VOL_CFG_NAME, l_vol,
+ r_vol);
+}
+
+int GetAudioSrcInputAVLineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_AV_LINEIN_VOL_CFG_NAME, l_vol,
+ r_vol);
+}
+
+int GetAudioSrcInputCOMPLineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_COMP_LINEIN_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputHDMILineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_HDMI_LINEIN_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputVGALineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_VGA_LINEIN_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputMPEGLineInVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineInVol(CS_SRC_INPUT_MPEG_LINEIN_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+static int GetAudioSrcInputLineOutVol(const char *cfg_str, int *l_vol,
+ int *r_vol)
+{
+ int buf_item_count = 2;
+ int data_buf[2] = { -1, -1 };
+
+ if (GetAudioCfgData(cfg_str, &buf_item_count, 10, data_buf) < 0) {
+ return -1;
+ }
+
+ if (buf_item_count < 2) {
+ return -1;
+ }
+
+ *l_vol = data_buf[0];
+ *r_vol = data_buf[1];
+
+ return 0;
+}
+
+int GetAudioSrcInputTVLineOutVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_TV_LINEOUT_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputAVLineOutVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_AV_LINEOUT_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputCOMPLineOutVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_COMP_LINEOUT_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputHDMILineOutVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_HDMI_LINEOUT_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputVGALineOutVol(int *l_vol, int *r_vol)
+{
+ return GetAudioSrcInputLineOutVol(CS_SRC_INPUT_VGA_LINEOUT_VOL_CFG_NAME,
+ l_vol, r_vol);
+}
+
+int GetAudioSrcInputMPEGLineOutVol(int *l_vol, int *r_vol)
+{
+ int tmp_val = 0;
+ const char *config_value;
+
+ config_value = config_get_str("TV",
+ CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME_OLD, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return GetAudioSrcInputLineOutVol(
+ CS_SRC_INPUT_MPEG_LINEOUT_VOL_CFG_NAME, l_vol, r_vol);
+ }
+
+ tmp_val = strtol(config_value, NULL, 10);
+
+ *l_vol = tmp_val;
+ *r_vol = tmp_val;
+
+ return 0;
+}
+
+int GetAudioWallEffectTypeCfg()
+{
+ return GetAudioCfgSingleIntData("audio.walleffect.type", 0);
+}
+
+static int GetAudioMainVolumeLutBufCompensation(const char *cfg_str,
+ int *cfg_flag)
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", cfg_str, "null");
+ //LOGD("%s, get \"%s\" is \"%s\".\n", "TV", cfg_str, config_value);
+
+ if (strcmp(config_value, "null") == 0) {
+ if (cfg_flag != NULL) {
+ *cfg_flag = 0;
+ }
+
+ //LOGD(
+ // "%s, get config \"%s\" is \"%s\", return 0 to not compensation lut buffer.\n",
+ // "TV", cfg_str, config_value);
+ return 0;
+ }
+
+ if (cfg_flag != NULL) {
+ *cfg_flag = 1;
+ }
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioMainVolumeLutBufTVCompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_TV_CFG_NAME, NULL);
+}
+
+int GetAudioMainVolumeLutBufAVCompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_AV_CFG_NAME, NULL);
+}
+
+int GetAudioMainVolumeLutBufCOMPCompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_COMP_CFG_NAME, NULL);
+}
+
+int GetAudioMainVolumeLutBufHDMICompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_HDMI_CFG_NAME, NULL);
+}
+
+int GetAudioMainVolumeLutBufVGACompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_VGA_CFG_NAME, NULL);
+}
+
+int GetAudioMainVolumeLutBufMPEGCompensation()
+{
+ int tmp_ret = 0, cfg_flag = 0;
+
+ tmp_ret = GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_MPEG_CFG_NAME, &cfg_flag);
+
+ if (cfg_flag == 0) {
+ tmp_ret = GetAudioMainVolumeLutBufDTVCompensation();
+ }
+
+ return tmp_ret;
+}
+
+int GetAudioMainVolumeLutBufDTVCompensation()
+{
+ return GetAudioMainVolumeLutBufCompensation(
+ CS_AMP_MAINVOL_LUTBUF_COMPENSATION_DTV_CFG_NAME, NULL);
+}
+
+int GetAudioNoiseGateEnableCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_AUDIO_NOISE_GATE_ENABLE_CFG_NAME,
+ "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+int GetAudioNoiseGateUpperBoundCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV",
+ CS_AUDIO_NOISE_GATE_UPPER_BOUND_CFG_NAME, "254");
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetAudioNoiseGateThresholdCFG()
+{
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_AUDIO_NOISE_GATE_THRESHOLD_CFG_NAME,
+ "-1");
+
+ return strtol(config_value, NULL, 10);
+}
+
+int GetDisableResetSystemFrameSize()
+{
+ const char *config_value;
+ config_value = config_get_str("TV",
+ CS_DISABLE_RESET_SYSTEM_FRAMESIZE_CFG_NAME, "null");
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}
+
+static int gDisableResetSystemFrameSizeFlag = -1;
+int GetDisableReset_System_framesizeCFG(void)
+{
+ if (gDisableResetSystemFrameSizeFlag == -1) {
+ const char *config_value;
+
+ config_value = config_get_str("TV", CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME,
+ "null");
+ LOGD("%s, get %s is \"%s\".\n",
+ __FUNCTION__, CS_AUDIO_SYSTEM_FRAMESIZE_CFG_NAME, config_value);
+
+ if (strcmp(config_value, "disable") == 0) {
+ gDisableResetSystemFrameSizeFlag = 0x55;
+ } else {
+ gDisableResetSystemFrameSizeFlag = 0;
+ }
+ }
+
+ return gDisableResetSystemFrameSizeFlag;
+}
+
+int GetAudioArchitectureTypeCFG()
+{
+ static int architecture_type = -1;
+ const char *config_value = NULL;
+
+ if (architecture_type == -1) {
+ config_value = config_get_str ( "TV", CS_AUDIO_ARCHITECTURE_TYPE_CFG_NAME, "null" );
+ if (strcasecmp(config_value, "null") == 0) {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
+ } else if(strcasecmp(config_value, "t866_external_dac_offboard_fbc") == 0) {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
+ } else if(strcasecmp(config_value, "t866_external_dac_offboard_customer_lib") == 0) {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_CUSTOMER_LIB;
+ } else if(strcasecmp(config_value, "t866_external_dac_offboard_digital") == 0) {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_DIGITAL;
+ } else if (strcasecmp(config_value, "t866_external_dac_onboard") == 0) {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_ON_BOARD;
+ } else if (strcasecmp(config_value, "t866_iternal_dac") == 0) {
+ architecture_type = CC_DAC_T866_INTERNAL_DAC;
+ } else if (strcasecmp(config_value, "m6c") == 0) {
+ architecture_type = CC_DAC_M6C_EXTERNAL_DAC_ON_BOARD;
+ } else {
+ architecture_type = CC_DAC_T866_EXTERNAL_DAC_OFF_BOARD_FBC;
+ }
+ }
+
+ return architecture_type;
+}
+
+static int gAudioResampleType = -1;
+int GetAudioResampleTypeCFG()
+{
+ char *token = NULL;
+ const char *strDelimit = ",";
+ const char *config_value = NULL;
+ char cfg_buf[1024];
+
+ if (gAudioResampleType == -1) {
+ gAudioResampleType = 0;
+
+ config_value = config_get_str ( "TV", CS_AUDIO_RESAMPLE_TYPE_CFG_NAME, "null" );
+ strncpy(cfg_buf, config_value, sizeof(cfg_buf));
+ if (strcmp(cfg_buf, "") != 0) {
+ token = strtok(cfg_buf, strDelimit);
+ while (token != NULL) {
+ if (strcasecmp(token, "hw") == 0) {
+ gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_HW;
+ } else if (strcasecmp(token, "sw") == 0) {
+ gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_SW;
+ }
+
+ token = strtok(NULL, strDelimit);
+ }
+ } else {
+ gAudioResampleType = CC_AUD_RESAMPLE_TYPE_SW; //if can't find config string, allow sw resample
+ }
+ }
+
+ return gAudioResampleType;
+}
+
+int GetamAudioDisableFlagCFG()
+{
+ static int am_audio_disable_flag = -1;
+ const char *config_value = NULL;
+
+ if (am_audio_disable_flag == -1) {
+ config_value = config_get_str ( "TV", "audio.amaudio.disable", "null" );
+ if (strcasecmp(config_value, "null") == 0 || strcasecmp(config_value, "false") == 0) {
+ am_audio_disable_flag = 0;
+ } else if (strcasecmp(config_value, "true") == 0) {
+ am_audio_disable_flag = 1;
+ } else {
+ am_audio_disable_flag = 0;
+ }
+ }
+
+ return am_audio_disable_flag;
+}
+
+int GetAudioFirstInitSetTypeCFG()
+{
+ const char *config_value;
+ config_value = config_get_str ( "TV", "audio.firstinitset.type", "null" );
+
+ if (strcmp(config_value, "null") == 0) {
+ return 0;
+ }
+
+ return strtoul(config_value, NULL, 10);
+}