author | yang.xu <yang.xu@amlogic.com> | 2018-02-27 05:55:52 (GMT) |
---|---|---|
committer | yang.xu <yang.xu@amlogic.com> | 2018-02-28 06:44:01 (GMT) |
commit | 7111a9fd4f0d6fc4d4580fe1a7b4c8088e7af1d8 (patch) | |
tree | 87cc5b0c154a4817115b10e57969ee5ab343641f | |
parent | 27c3a82804ac14481f172369bcdb7a81068e43fc (diff) | |
download | ampere-7111a9fd4f0d6fc4d4580fe1a7b4c8088e7af1d8.zip ampere-7111a9fd4f0d6fc4d4580fe1a7b4c8088e7af1d8.tar.gz ampere-7111a9fd4f0d6fc4d4580fe1a7b4c8088e7af1d8.tar.bz2 |
tvserver: rm audio control to ref_out[1/1]
PD# 160738
mv audio control to patch panel
Change-Id: I3068ade16ab2528349cf371fbf9d745b0dc39b1e
-rw-r--r-- | tv/tvserver/libtv/Android.mk | 46 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/CAudioCustomerCtrl.cpp | 137 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/CAudioCustomerCtrl.h | 40 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/CTvAudio.cpp | 38 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/CTvAudio.h | 85 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/audio_alsa.cpp | 878 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/audio_alsa.h | 138 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/audio_effect.cpp | 147 | ||||
-rw-r--r-- | tv/tvserver/libtv/audio/audio_effect.h | 37 | ||||
-rw-r--r-- | tv/tvserver/libtv/tv/CTv.cpp | 2298 | ||||
-rw-r--r-- | tv/tvserver/libtv/tv/CTv.h | 240 | ||||
-rw-r--r-- | tv/tvserver/libtv/tvin/CTvin.cpp | 173 | ||||
-rw-r--r-- | tv/tvserver/libtv/tvin/CTvin.h | 49 | ||||
-rw-r--r-- | tv/tvserver/libtv/tvsetting/audio_cfg.cpp | 747 | ||||
-rw-r--r-- | tv/tvserver/libtv/tvsetting/audio_cfg.h | 80 | ||||
-rw-r--r-- | tv/tvserver/tvserver/DroidTvServiceIntf.cpp | 168 | ||||
-rw-r--r-- | tv/tvserver/tvserver/TvService.cpp | 254 |
17 files changed, 16 insertions, 5539 deletions
diff --git a/tv/tvserver/libtv/Android.mk b/tv/tvserver/libtv/Android.mk index 4ee13fa..9d9b925 100644 --- a/tv/tvserver/libtv/Android.mk +++ b/tv/tvserver/libtv/Android.mk @@ -27,12 +27,6 @@ LIB_TV_BINDER := $(LOCAL_PATH)/../../frameworks/libtvbinder AM_LIBPLAYER_PATH := $(wildcard $(BOARD_AML_VENDOR_PATH)/frameworks/av/LibPlayer) LIB_SQLITE_PATH := $(wildcard external/sqlite) -#support android and amaudio -BOARD_TV_AUDIO_TYPE := amaudio - -#support builtin and external -BOARD_TV_AUDIO_AMAUDIO_LIB_TYPE := external - LOCAL_MODULE_TAGS := optional @@ -68,11 +62,6 @@ LOCAL_SRC_FILES := \ tv/CTvEas.cpp \ tv/CTvRecord.cpp \ vpp/CVpp.cpp \ - audio/CTvAudio.cpp \ - audio/audio_effect.cpp \ - audio/audio_alsa.cpp \ - audio/CAudioCustomerCtrl.cpp \ - tvsetting/audio_cfg.cpp \ tvsetting/CTvSetting.cpp \ tvsetting/TvKeyData.cpp \ version/version.cpp \ @@ -89,7 +78,6 @@ LOCAL_SHARED_LIBRARIES := \ libmedia \ libtinyxml \ liblog \ - libaudioclient \ libbinder LOCAL_SHARED_LIBRARIES += \ @@ -118,16 +106,6 @@ LOCAL_C_INCLUDES += \ endif -ifeq ($(strip $(BOARD_TV_AUDIO_AMAUDIO_LIB_TYPE)), external) - LOCAL_SHARED_LIBRARIES += libTVaudio -endif - -ifeq ($(strip $(BOARD_ALSA_AUDIO)),tiny) - LOCAL_SHARED_LIBRARIES += libtinyalsa -else - LOCAL_SHARED_LIBRARIES += libasound -endif - LOCAL_STATIC_LIBRARIES += \ libz \ libtv_utils \ @@ -155,36 +133,12 @@ ifeq ($(TARGET_SIMULATOR),true) LOCAL_CFLAGS += -DSINGLE_PROCESS endif -ifeq ($(strip $(BOARD_ALSA_AUDIO)),tiny) - LOCAL_CFLAGS += -DBOARD_ALSA_AUDIO_TINY -endif - -ifeq ($(strip $(BOARD_TV_AUDIO_TYPE)),amaudio) - LOCAL_CFLAGS += -DCC_TV_AUDIO_TYPE_AMAUDIO=1 -endif - -ifeq ($(strip $(BOARD_TV_AUDIO_TYPE)),android) - LOCAL_SRC_FILES += audio/audio_android.cpp - LOCAL_CFLAGS += -DCC_TV_AUDIO_TYPE_ANDROID=1 -endif - LOCAL_C_INCLUDES += \ external/tinyxml \ $(LIB_TV_BINDER)/include \ $(LIB_SQLITE_PATH)/dist \ - system/media/audio_effects/include \ $(BOARD_AML_VENDOR_PATH)/frameworks/services/systemcontrol/PQ/include -ifeq ($(strip $(BOARD_TV_AUDIO_AMAUDIO_LIB_TYPE)), external) - LOCAL_C_INCLUDES += hardware/amlogic/audio/libTVaudio -endif - -ifeq ($(strip $(BOARD_ALSA_AUDIO)),tiny) - LOCAL_C_INCLUDES += external/tinyalsa/include -else - LOCAL_C_INCLUDES += external/alsa-lib/include -endif - ifeq ($(wildcard hardware/amlogic/media),hardware/amlogic/media) $(info "have hardware/amlogic/media") AML_DEC_PATH := $(wildcard hardware/amlogic/media) diff --git a/tv/tvserver/libtv/audio/CAudioCustomerCtrl.cpp b/tv/tvserver/libtv/audio/CAudioCustomerCtrl.cpp deleted file mode 100644 index d41ab9a..0000000 --- a/tv/tvserver/libtv/audio/CAudioCustomerCtrl.cpp +++ b/dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: c++ file - */ -#define LOG_TAG "tvserver" -#define LOG_TV_TAG "CAudioCustomerCtrl" - -#include "CAudioCustomerCtrl.h" -#include <dlfcn.h> -#include "CTvLog.h" -#include "tvsetting/audio_cfg.h" - -CAudioCustomerCtrl::CAudioCustomerCtrl() -{ - gExternalDacLibHandler = NULL; - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; -} - -CAudioCustomerCtrl::~CAudioCustomerCtrl() -{ - UnLoadExternalDacLib(); -} - -int CAudioCustomerCtrl::UnLoadExternalDacLib(void) -{ - if (gExternalDacLibHandler != NULL) { - dlclose(gExternalDacLibHandler); - gExternalDacLibHandler = NULL; - } - - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; - - return 0; -} - -int CAudioCustomerCtrl::LoadExternalDacLib(void) -{ - char *error; - - LOGD("%s, entering...\n", __FUNCTION__); - - if (gExternalDacLibHandler != NULL) { - return 0; - } - - const char *config_value = GetAudExtDacLibPath(); - gExternalDacLibHandler = dlopen(config_value, RTLD_NOW); - if (!gExternalDacLibHandler) { - LOGE("%s, failed to load external dac lib (%s)\n", __FUNCTION__, config_value); - goto Error; - } - - mpDacMuteFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMute"); - if (mpDacMuteFun == NULL) { - LOGE("%s, fail find fun mpDacMuteFun()\n", __FUNCTION__); - goto Error; - } - mpDacMainVolFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMainVolume"); - if (mpDacMainVolFun == NULL) { - LOGE("%s, fail find fun HandleDacMainVolume()\n", __FUNCTION__); - goto Error; - } - mpDacBalanceFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacBalance"); - if (mpDacBalanceFun == NULL) { - LOGE("%s, fail find fun HandleDacBalance()\n", __FUNCTION__); - goto Error; - } - mpSetSourceTypeFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleAudioSourceType"); - if (mpSetSourceTypeFun == NULL) { - LOGE("%s, fail find fun HandleAudioSourceType()\n", __FUNCTION__); - goto Error; - } - - return 0; - -Error: // - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; - - if (gExternalDacLibHandler != NULL) { - dlclose(gExternalDacLibHandler); - gExternalDacLibHandler = NULL; - } - return -1; -} - -// 0 mute, 1 unmute -int CAudioCustomerCtrl::SetMute(int mute) -{ - int ret = LoadExternalDacLib(); - if (mpDacMuteFun != NULL) { - ret = (*mpDacMuteFun)(mute); - } - return ret; -} - -int CAudioCustomerCtrl::SetVolumeBar(int vol) -{ - int ret = LoadExternalDacLib(); - if (mpDacMainVolFun != NULL) { - LOGD("%s, call external dac lib HandleDacMainVolume (para = %d).\n", __FUNCTION__, vol); - ret = (*mpDacMainVolFun)(vol); - } - return ret; -} - -int CAudioCustomerCtrl::SetBlance(int balance) -{ - int ret = LoadExternalDacLib(); - if (mpDacBalanceFun != NULL) { - LOGD("%s, call external dac lib HandleDacBalance (para = %d).\n", __FUNCTION__, balance); - ret = (*mpDacBalanceFun)(balance); - } - return ret; -} - -int CAudioCustomerCtrl::SetSource(int source) -{ - int ret = LoadExternalDacLib(); - if (mpSetSourceTypeFun != NULL) { - LOGD("%s, call external dac lib HandleAudioSourceType (para = %d).\n", __FUNCTION__, source); - ret = (*mpSetSourceTypeFun)(source); - } - return ret; -} diff --git a/tv/tvserver/libtv/audio/CAudioCustomerCtrl.h b/tv/tvserver/libtv/audio/CAudioCustomerCtrl.h deleted file mode 100644 index e98fc82..0000000 --- a/tv/tvserver/libtv/audio/CAudioCustomerCtrl.h +++ b/dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: header file - */ - -#ifndef __AUDIO_CUSTOMER_CTRL_H__ -#define __AUDIO_CUSTOMER_CTRL_H__ - -typedef int (*TYPE_DacMute_FUN)(int mute_state); -typedef int (*TYPE_DacMainVolume_FUN)(int vol); -typedef int (*TYPE_DacBalance_FUN)(int balance_val); -typedef int (*TYPE_AudioSourceType_FUN)(int source_type); - -class CAudioCustomerCtrl { -public: - static const int MUTE = 0; - static const int UNMUTE = 1; - - CAudioCustomerCtrl(); - ~CAudioCustomerCtrl(); - int LoadExternalDacLib(void); - int UnLoadExternalDacLib(void); - int SendCmdToOffBoardCustomerLibExternalDac(int, int); - int SetMute(int mute); - int SetVolumeBar(int vol); - int SetBlance(int balance); - int SetSource(int source); - -private: - void *gExternalDacLibHandler; - TYPE_DacMute_FUN mpDacMuteFun; - TYPE_DacMainVolume_FUN mpDacMainVolFun; - TYPE_DacBalance_FUN mpDacBalanceFun; - TYPE_AudioSourceType_FUN mpSetSourceTypeFun; -}; -#endif diff --git a/tv/tvserver/libtv/audio/CTvAudio.cpp b/tv/tvserver/libtv/audio/CTvAudio.cpp deleted file mode 100644 index 559cd32..0000000 --- a/tv/tvserver/libtv/audio/CTvAudio.cpp +++ b/dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: c++ file - */ - -#define LOG_TAG "tvserver" -#define LOG_TV_TAG "CTvAudio" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <pthread.h> -#include <fcntl.h> - -#include <android/log.h> -#include <cutils/properties.h> - -#include "../tvsetting/CTvSetting.h" -#include <tvutils.h> -#include <CFile.h> -#include "audio_effect.h" -#include "CTvAudio.h" - -#include "CTvLog.h" - -CTvAudio::CTvAudio() -{ -} - -CTvAudio::~CTvAudio() -{ -} - diff --git a/tv/tvserver/libtv/audio/CTvAudio.h b/tv/tvserver/libtv/audio/CTvAudio.h deleted file mode 100644 index 8e4672b..0000000 --- a/tv/tvserver/libtv/audio/CTvAudio.h +++ b/dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: header file - */ - -#ifndef __TV_AUDIO_API_H__ -#define __TV_AUDIO_API_H__ - - -#include "tvsetting/audio_cfg.h" -#include "audio_alsa.h" -#include "audio_effect.h" -#include <audio_amaudio.h> -#include "CAudioCustomerCtrl.h" - -enum CC_AUDIO_SWITCH_STATUS { - CC_SWITCH_OFF, - CC_SWITCH_ON, -}; - -enum CC_AMAUDIO_OUT_MODE { - CC_AMAUDIO_OUT_MODE_DIRECT, - CC_AMAUDIO_OUT_MODE_INTER_MIX, - CC_AMAUDIO_OUT_MODE_DIRECT_MIX, -}; - -static const int CC_SPDIF_MODE_PCM = 0; -static const int CC_SPDIF_MODE_RAW = 1; - -static const int CC_MIN_SOUND_VOL = 0; -static const int CC_MAX_SOUND_VOL = 100; -static const int CC_DEF_SOUND_VOL = 10; -static const int CC_MIN_SUPPERBASS_VOL = 0; -static const int CC_MAX_SUPPERBASS_VOL = 100; -static const int CC_DEF_SUPPERBASS_VOL = 50; - -static const int CC_DEF_BASS_TREBLE_VOL = 50; -static const int CC_EQ_BASS_IND = 1; -static const int CC_EQ_TREBLE_IND = 3; -static const int CC_EQ_DEF_UI_MIN_GAIN = 0; -static const int CC_EQ_DEF_UI_MAX_GAIN = 100; -static const int CC_MIN_EQ_GAIN_VAL = -10; -static const int CC_MAX_EQ_GAIN_VAL = 10; - -static const int CC_LUT_BUF_MASTER = 0; -static const int CC_LUT_BUF_SUPPERBASS = 1; -static const int CC_LUT_BUF_SIZE = 101; -static const int CC_NO_LINE_POINTS_MAX_CNT = 101; - - -enum CC_AUD_SOUND_MODE { - CC_SOUND_MODE_START = 0, - CC_SOUND_MODE_STD = 0, - CC_SOUND_MODE_MUSIC, - CC_SOUND_MODE_NEWS, - CC_SOUND_MODE_THEATER, - CC_SOUND_MODE_USER, - CC_SOUND_MODE_END = CC_SOUND_MODE_USER -}; - -enum CC_AUD_EQ_MODE { - CC_EQ_MODE_START = 0, - CC_EQ_MODE_NOMAL = 0, - CC_EQ_MODE_POP, - CC_EQ_MODE_JAZZ, - CC_EQ_MODE_ROCK, - CC_EQ_MODE_CLASSIC, - CC_EQ_MODE_DANCE, - CC_EQ_MODE_PARTY, - CC_EQ_MODE_BASS, - CC_EQ_MODE_TREBLE, - CC_EQ_MODE_CUSTOM, - CC_EQ_MODE_END = CC_EQ_MODE_CUSTOM -}; - -class CTvAudio { -public: - CTvAudio(); - ~CTvAudio(); -}; -#endif //__TV_AUDIO_API_H__ diff --git a/tv/tvserver/libtv/audio/audio_alsa.cpp b/tv/tvserver/libtv/audio/audio_alsa.cpp deleted file mode 100644 index a9dafd3..0000000 --- a/tv/tvserver/libtv/audio/audio_alsa.cpp +++ b/dev/null @@ -1,878 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: c++ file - */ - -#define LOG_TAG "tvserver" -#define LOG_TV_TAG "CAudioAlsa" -//#define LOG_NDEBUG 0 - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <getopt.h> -#include <pthread.h> -#include <stdarg.h> -#include <ctype.h> -#include <math.h> -#include <errno.h> -#include <assert.h> -#include <fcntl.h> -#include <tinyalsa/asoundlib.h> -#include "fbcutils/CFbcCommunication.h" -#include <sys/poll.h> -#include "tvsetting/audio_cfg.h" -#include "audio_alsa.h" -#include <cutils/properties.h> -#include "CTvLog.h" -#include "audio_amaudio.h" - -static const int DEFAULT_MAIN_DIGIT_LUT[] = { - // - 0, 40, 50, 60, 70, 87, 110, 120, 130, 140, // 0~9 - 150, 152, 155, 158, 161, 164, 167, 170, 173, 174, // 10~19 - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, // 20~29 - 191, 191, 192, 193, 194, 195, 196, 196, 197, 197, // 30~39 - 198, 198, 198, 199, 199, 200, 200, 201, 201, 201, // 40~49 - 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, // 50~59 - 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, // 60~69 - 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, // 70~79 - 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, // 80~89 - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, // 90~99 - 209, // 100 -}; - -static const int DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF[] = { - // - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, // 0~9 - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, // 10~19 - 141, 142, 143, 144, 145, 147, 147, 148, 148, 149, // 20~29 - 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, // 30~39 - 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, // 40~49 - 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, // 50~59 - 162, 163, 163, 163, 163, 164, 164, 164, 165, 165, // 60~69 - 165, 165, 166, 166, 166, 167, 168, 169, 170, 171, // 70~79 - 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, // 80~89 - 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, // 90~99 - 197 // 100 -}; - -CAudioAlsa::CAudioAlsa() -{ - int card_id; - card_id = get_aml_card(); - LOGV("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id); - mpMixer = mixer_open(card_id); - - card_id = get_USB_Audio_card(); - LOGV("[%s:%d] usb card_id:%d\n", __FUNCTION__, __LINE__, card_id); - mpUsbMixer = mixer_open(card_id); - mMainVolumeGainVal = 0; - mSupperBassVolumeGainVal = 0; - ArrayCopy(mMainDigitLutBuf, DEFAULT_MAIN_DIGIT_LUT, CC_VOL_TRANS_LUT_BUF_SIZE); - ArrayCopy(mSupperBassDigitLutBuf, DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF, CC_VOL_TRANS_LUT_BUF_SIZE); -} - -CAudioAlsa::~CAudioAlsa() -{ - if (NULL != mpMixer) { - mixer_close(mpMixer); - } - - if (NULL != mpUsbMixer) { - mixer_close(mpUsbMixer); - } -} - -int CAudioAlsa::get_aml_card() -{ - int card = -1, err = 0; - int fd = -1; - char read_buf[512], *pd = NULL; - static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; - fd = open(SOUND_CARDS_PATH, O_RDONLY); - if (fd < 0) { - LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - memset(read_buf, 0x0, 512); - err = read(fd, read_buf, 512); - if (fd < 0) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - pd = strstr(read_buf, "AML"); - card = *(pd - 3) - '0'; - close(fd); - return card; -} - -int CAudioAlsa::AudioControlSetValue(int val_count, int data_buf[], char *match_names) -{ - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int value_index; - - if (NULL == mpMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - - pctl = mixer_get_ctl_by_name(mpMixer, match_names); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { - LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); - goto err_exit; - } - } - return 0; -err_exit: - return -1; -} - -int CAudioAlsa::AudioControlGetValue(int val_count, int ret_buf[], char *match_names) -{ - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int value_index; - - if (NULL == mpMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - pctl = mixer_get_ctl_by_name(mpMixer, match_names); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - ret_buf[value_index] = mixer_ctl_get_value(pctl, value_index); - } - return 0; -err_exit: - return -1; -} - -int CAudioAlsa::get_USB_Audio_card() -{ - int card = -1, err = 0; - int fd = -1; - char read_buf[512], *pd = NULL; - static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; - fd = open(SOUND_CARDS_PATH, O_RDONLY); - if (fd < 0) { - LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - memset(read_buf, 0x0, 512); - err = read(fd, read_buf, 512); - if (fd < 0) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - pd = strstr(read_buf, "Receiver"); - if (pd == NULL) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - - card = *(pd - 3) - '0'; - close(fd); - return card; -} - -int CAudioAlsa::HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names) -{ - - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int match_index; - unsigned int value_index; - char card_id_str[9] = {0}; - - if (NULL == mpUsbMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - - for (match_index = 0; match_index < (unsigned int)match_count; match_index++) { - pctl = mixer_get_ctl_by_name(mpUsbMixer, match_names[match_index]); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names[match_index]); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { - LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); - goto err_exit; - } - } - } - - return 0; -err_exit: - return -1; -} - -int CAudioAlsa::CheckVolume(int digit_vol, int digit_min __unused, int digit_max __unused, - int hd_min, int hd_max) -{ - if (digit_vol < hd_min) { - return hd_min; - } else if (digit_vol > hd_max) { - return hd_max; - } - - return digit_vol; -} - -int CAudioAlsa::GetTwoChannelVolume(int vol_buf[], - int l_min_vol __unused, int l_max_vol __unused, - int r_min_vol __unused, int r_max_vol __unused, - char *match_names, - int hd_min __unused, int hd_max __unused) -{ - vol_buf[0] = 0; - vol_buf[1] = 0; - return AudioControlGetValue(2, vol_buf, match_names); -} - -int CAudioAlsa::GetLineInMaxVol() -{ - return 127; -} - -int CAudioAlsa::GetLineOutMaxVol() -{ - return 255; -} - -#define CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME (0) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN (1) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME (2) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME (3) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME (4) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME (5) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME (6) -#define CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME (7) -#define CC_GET_ALSA_CTL_I2S_MUTE_NAME (8) -#define CC_GET_ALSA_CTL_SPDIF_MUTE_NAME (9) -#define CC_GET_ALSA_CTL_HW_RESAMPLE_NAME (10) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME (11) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME (12) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME (13) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME (14) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME (15) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME (16) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME (17) -#define CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME (18) -#define CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME (19) -#define CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH (20) -#define CC_GET_ALSA_CTL_SETOUTPUT_SWAP (21) -#define CC_GET_ALSA_CTL_AUDIO_IN_SWITCH (22) -#define CC_SET_AUDIO_ARC_SWITCH (23) - -static char gG9AlsaNames[32][48] = { - {"Audio In Source"},//0 - {"PGA IN Gain"},//1 - {"ADC Digital Capture Volume"},//2 - {"DAC Digital Playback Volume"},//3 - {"Linein right switch"},//4 - {"Linein left switch"}, - {"ADC Digital Capture Volume"}, - {"DAC Digital Playback Volume"}, - {"Audio i2s mute"},//8 - {"Audio spdif mute"}, - {"Hardware resample enable"},//10 - {"AMP Master Volume"}, - {"AMP Ch1 Volume"},//12 - {"AMP Ch2 Volume"}, - {"AMP Ch3 Volume"}, - {"AMP Ch1 Switch"}, - {"AMP Ch2 Switch"}, - {"AMP Ch3 Switch"},//17 - {"AMP EQ Mode"}, - {"PCM Playback Volume"}, - {"PCM Playback Switch"}, - {"Output Swap"}, - {"AudioIn Switch"},//22 - {"HDMI ARC Switch"}, -}; - - -char *CAudioAlsa::GetAlsaControlName(int get_type) -{ - return gG9AlsaNames[get_type]; -} - - -int CAudioAlsa::SetAudioInSource(int source_type) -{ - int set_val = 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); - set_val = source_type; - return AudioControlSetValue(1, &set_val, match_names); -} - -int CAudioAlsa::GetAudioInSource(void) -{ - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); - int source_type = 0; - AudioControlGetValue(1, &source_type, match_names); - return source_type; -} - -int CAudioAlsa::SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val) -{ - int GainBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); - - GainBuf[0] = gain_l_val; - GainBuf[1] = gain_r_val; - if (gain_l_val < 0 || gain_l_val > 31) { - GainBuf[0] = 16; - } - if (gain_r_val < 0 || gain_r_val > 31) { - GainBuf[1] = 16; - } - - return AudioControlSetValue(2, GainBuf, match_names); -} - -int CAudioAlsa::GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val) -{ - int GainBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); - - AudioControlGetValue(2, GainBuf, match_names); - - *gain_l_val = GainBuf[0]; - *gain_r_val = GainBuf[1]; - - return 0; -} - -int CAudioAlsa::SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val) -{ - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); - - VolumeBuf[0] = vol_l_val; - VolumeBuf[1] = vol_r_val; - if (vol_l_val < 0 || vol_l_val > 127) { - VolumeBuf[0] = 82; - } - if (vol_r_val < 0 || vol_r_val > 127) { - VolumeBuf[1] = 82; - } - - return AudioControlSetValue(2, VolumeBuf, match_names); -} - -int CAudioAlsa::GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val) -{ - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); - - AudioControlGetValue(2, VolumeBuf, match_names); - - *vol_l_val = VolumeBuf[0]; - *vol_r_val = VolumeBuf[1]; - - return 0; -} - -int CAudioAlsa::SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val) -{ - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); - - VolumeBuf[0] = vol_l_val; - VolumeBuf[1] = vol_r_val; - if (vol_l_val < 0 || vol_l_val > 255) { - VolumeBuf[0] = 255; - } - if (vol_r_val < 0 || vol_r_val > 255) { - VolumeBuf[1] = 255; - } - - return AudioControlSetValue(2, VolumeBuf, match_names); -} - -int CAudioAlsa::GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val) -{ - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); - - AudioControlGetValue(2, VolumeBuf, match_names); - - *vol_l_val = VolumeBuf[0]; - *vol_r_val = VolumeBuf[1]; - - return 0; -} - -int CAudioAlsa::SetInternalDacLineInSelectChannel(int line_in_number) -{ - int tmp_ret = 0; - char *match_names = NULL; - - if (line_in_number < 0 || line_in_number > 7) { - return -1; - } - - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME); - tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); - - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME); - tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); - - return tmp_ret; -} - -int CAudioAlsa::SetInternalDacLineInCaptureVolume(int l_vol, int r_vol) -{ - int max_val = GetLineInMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); - int VolumeBuf[2]; - - VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); - VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); - - return AudioControlSetValue(2, VolumeBuf, match_names); -} - -int CAudioAlsa::GetInternalDacLineInCaptureVolume(int vol_buf[]) -{ - int max_val = GetLineInMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); - - return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); -} - -int CAudioAlsa::SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol) -{ - int max_val = GetLineOutMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); - int VolumeBuf[2]; - - VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); - VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); - - return AudioControlSetValue(2, VolumeBuf, match_names); -} - -int CAudioAlsa::GetInternalDacLineOutPlayBackVolume(int vol_buf[]) -{ - int max_val = GetLineOutMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); - - return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); -} - -int CAudioAlsa::SetAudioPcmPlaybackVolume(int vol) -{ - if (get_USB_Audio_card() == -EINVAL) return 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME); - return HandleUSBAudioControlValue(1, &vol, 1, &match_names); -} - -int CAudioAlsa::SetAudioPcmPlaybackSwitch(int vol) -{ - if (get_USB_Audio_card() == -EINVAL) return 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH); - return HandleUSBAudioControlValue(1, &vol, 1, &match_names); -} - -int CAudioAlsa::SetExternalDacChannelSwitch(int chan_ind, int switch_val) -{ - char *match_names = NULL; - - if (chan_ind == 1) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME); - } else if (chan_ind == 2) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME); - } else if (chan_ind == 3) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME); - } else { - return -1; - } - - return AudioControlSetValue(1, &switch_val, match_names); -} - -int CAudioAlsa::SetExternalDacChannelVolume(int chan_ind, int main_vol) -{ - int tmp_ret = 0; - char *match_names = NULL; - - if (chan_ind == 0) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME); - } else if (chan_ind == 1) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME); - } else if (chan_ind == 2) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME); - } else if (chan_ind == 3) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME); - } else { - return -1; - } - - return AudioControlSetValue(1, &main_vol, match_names); -} -int CAudioAlsa::SetAudioSwitchIO(int value) -{ - char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_AUDIO_IN_SWITCH]; - - return AudioControlSetValue(1, &value, match_names); -} -int CAudioAlsa::SetOutput_Swap(int value) -{ - char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_SETOUTPUT_SWAP]; - - return AudioControlSetValue(1, &value, match_names); -} - -int CAudioAlsa::SetExternalDacEQMode(int mode_val) -{ - char *match_names = NULL; - - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME); - return AudioControlSetValue(1, &mode_val, match_names); -} - -int CAudioAlsa::SetI2SMute(int mute_status) -{ - char *match_names = NULL; - - if (mute_status != CC_I2S_MUTE_ON && mute_status != CC_I2S_MUTE_OFF) { - LOGE("%s, I2S mute value (%d) error!\n", __FUNCTION__, mute_status); - return -1; - } - - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_I2S_MUTE_NAME); - return AudioControlSetValue(1, &mute_status, match_names); -} - -int CAudioAlsa::SetSPDIFMute(int mute_status) -{ - int set_val = 0; - char *match_names = NULL; - - if (mute_status == CC_AUDIO_MUTE) { - set_val = CC_SPDIF_MUTE_ON; - } else if (mute_status == CC_AUDIO_UNMUTE) { - set_val = CC_SPDIF_MUTE_OFF; - } else { - return -1; - } - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_SPDIF_MUTE_NAME); - return AudioControlSetValue(1, &mute_status, match_names); -} - -#define CC_SAMPLE_BUF_SIZE (32) - -enum CC_HW_RESAMPLE_TYPE { - CC_HW_RESAMPLE_DISABLE, - CC_HW_RESAMPLE_48K, - CC_HW_RESAMPLE_44K, - CC_HW_RESAMPLE_32K, -}; - -int CAudioAlsa::SetHardwareResample(int sr) -{ - int i = 0, set_val = 0, tmp_val = 0; - int diff_val = 0x7FFFFFFF, diff_ind = -1; - char *match_names = NULL; - int sample_buf[CC_SAMPLE_BUF_SIZE] = - {32000, 44100, 48000, 88200, 96000, 176400, 192000, -1}; - - if (sr < 0) { - set_val = 0; - } else { - for (i = 0; i < CC_SAMPLE_BUF_SIZE; i++) { - if (sample_buf[i] < 0) { - break; - } - - if (sample_buf[i] >= sr) { - tmp_val = sample_buf[i] - sr; - } else { - tmp_val = sr - sample_buf[i]; - } - - if (tmp_val <= diff_val) { - diff_val = tmp_val; - diff_ind = i; - } - } - - if (diff_ind < 0) { - set_val = 0; - } else { - set_val = diff_ind + 1; - } - } - - LOGD("%s, set_val = %d.\n", __FUNCTION__, set_val); - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_HW_RESAMPLE_NAME); - return AudioControlSetValue(1, &set_val, match_names); -} - -int CAudioAlsa::SetMixerBypassSwitch(int switch_val) -{ - char match_names[48] = "Output Mixer Bypass Switch" ; - int ctl_buf[2]; - - if (switch_val != 0 && switch_val != 1) { - return -1; - } - - ctl_buf[0] = switch_val; - ctl_buf[1] = switch_val; - - return AudioControlSetValue(2, ctl_buf, match_names); -} - -int CAudioAlsa::GetMixerBypassSwitch(void) -{ - char match_names[48] = "Output Mixer Bypass Switch" ; - int ctl_buf[2]; - - AudioControlSetValue(2, ctl_buf, match_names); - - return ctl_buf[0]; -} - -int CAudioAlsa::SetMixerDacSwitch(int switch_val) -{ - char match_names[48] = "Output Mixer DAC Switch" ; - int ctl_buf[2]; - - if (switch_val != 0 && switch_val != 1) { - return -1; - } - - ctl_buf[0] = switch_val; - ctl_buf[1] = switch_val; - - return AudioControlSetValue(2, ctl_buf, match_names); -} - -int CAudioAlsa::GetMixerDacSwitch(void) -{ - int ctl_buf[2]; - AudioControlGetValue(2, ctl_buf, (char *)"Output Mixer DAC Switch"); - return ctl_buf[0]; -} - -int CAudioAlsa::TransVolumeBarVolToDigitalVol(int digit_lut_buf[], int digit_vol) -{ - return digit_lut_buf[digit_vol]; -} - -int CAudioAlsa::TransDigitalVolToVolumeBarVol(int digit_lut_buf[], int hd_vol, - int hd_min __unused, int hd_max __unused, - int digit_min __unused, int digit_max) -{ - int i = 0; - for (; i < CC_VOL_TRANS_LUT_BUF_SIZE - 1; i++) { - if (digit_lut_buf[i] >= hd_vol && digit_lut_buf[i + 1] < hd_vol) - break; - } - - if (i < CC_VOL_TRANS_LUT_BUF_SIZE - 1) - return i; - - return digit_max; -} - -void CAudioAlsa::SetMainVolDigitLutBuf(int digit_lut_buf[]) -{ - memcpy((void *) mMainDigitLutBuf, digit_lut_buf, - CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); -} - -int *CAudioAlsa::GetMainVolDigitLutBuf() -{ - return mMainDigitLutBuf; -} -void CAudioAlsa::SetSupperBassVolDigitLutBuf(int digit_lut_buf[]) -{ - memcpy((void *) mSupperBassDigitLutBuf, digit_lut_buf, - CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); -} - - -int CAudioAlsa::SetMainVolumeGain(int gain_val) -{ - mMainVolumeGainVal = gain_val; - return mMainVolumeGainVal; -} - -int CAudioAlsa::GetMainVolumeGain() -{ - return mMainVolumeGainVal; -} - -int CAudioAlsa::SetSupperBassVolumeGain(int gain_val) -{ - int tmp_val = 0; - tmp_val = mSupperBassVolumeGainVal; - mSupperBassVolumeGainVal = gain_val; - return tmp_val; -} - -int CAudioAlsa::GetSupperBassVolumeGain() -{ - int tmp_val = 0; - tmp_val = mSupperBassVolumeGainVal; - return tmp_val; -} - - -int CAudioAlsa::CalculateBalanceVol(int max_vol, int balance_val, int vol_buf[]) -{ - int bal_mid_vol = 0, bal_cal_len = 0; - int tmp_val = 0; - - vol_buf[0] = max_vol; - vol_buf[1] = max_vol; - - bal_mid_vol = (CC_MIN_SOUND_BALANCE_VAL + CC_MAX_SOUND_BALANCE_VAL) / 2; - bal_cal_len = (CC_MAX_SOUND_BALANCE_VAL - CC_MIN_SOUND_BALANCE_VAL) / 2; - - if (balance_val == bal_mid_vol) { - LOGD( - "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", - __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); - return 0; - } else if (balance_val < bal_mid_vol) { - vol_buf[1] = (bal_cal_len - (bal_mid_vol - balance_val)) * max_vol / bal_cal_len; - } else if (balance_val > bal_mid_vol) { - vol_buf[0] = (bal_cal_len - (balance_val - bal_mid_vol)) * max_vol / bal_cal_len; - } - - if (GetAudioAmplifierBalanceExchangeCFG() != 0) { - tmp_val = vol_buf[0]; - vol_buf[0] = vol_buf[1]; - vol_buf[1] = tmp_val; - } - - LOGD( - "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", - __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); - return 0; -} - - -int CAudioAlsa::SetInternalDacMute(int mute_state) -{ - int ret = 0; - if (mute_state == CC_AUDIO_MUTE) - ret = SetAudioInternalDacDACDigitalPlayBackVolume(0, 0); - else - ret = SetAudioInternalDacDACDigitalPlayBackVolume(255, 255); - return ret; -} - -int CAudioAlsa::setAudioPcmPlaybackMute(int mute_state) -{ - char prop[256]; - property_get("audio.output.double_output", prop, "null"); - if ( Get2d4gHeadsetEnable() == 1 && (strcmp(prop, "0") == 0 || strcmp(prop, "null") == 0)) { - SetAudioPcmPlaybackSwitch(mute_state); - } - return 0; -} - - -int CAudioAlsa::SetInternalDacMainVolume(int main_vol) -{ - int tmp_ret = 0, digit_vol = 0; - digit_vol = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, main_vol); - - return SetInternalDacLineOutPlayBackVolume(digit_vol, digit_vol); -} - - -static int gDigitalMuteStatus = CC_AUDIO_UNMUTE; -static int gDigitalLeftVol = 0; -static int gDigitalRightVol = 0; - -int CAudioAlsa::SetDigitalVolume(int l_val, int r_val) -{ - amAudioSetLeftGain(l_val); - amAudioSetRightGain(r_val); - LOGD("%s, l_val = %d, r_val = %d.\n", __FUNCTION__, l_val, r_val); - return 0; -} - -int CAudioAlsa::SetDigitalMainVolume(int l_vol, int r_vol) -{ - int tmp_ret = 0, l_val = 0, r_val = 0; - - //handle l&r channel volume for balance - l_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, l_vol); - r_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, r_vol); - - gDigitalLeftVol = l_val; - gDigitalRightVol = r_val; - if (gDigitalMuteStatus == CC_AUDIO_UNMUTE) { - SetDigitalVolume(l_val, r_val); - } - - return tmp_ret; -} - -int CAudioAlsa::SetDigitalMute(int mute_status) -{ - gDigitalMuteStatus = mute_status; - if (mute_status == CC_AUDIO_MUTE) { - SetDigitalVolume(0, 0); - } else if (mute_status == CC_AUDIO_UNMUTE) { - SetDigitalVolume(gDigitalLeftVol, gDigitalRightVol); - } - - return 0; -} - -int CAudioAlsa::SetAudioARCSwitch(int on_off) -{ - int status = 0; - char *match_names = GetAlsaControlName(CC_SET_AUDIO_ARC_SWITCH); - if (on_off != 0 && on_off != 1) { - return -1; - } - status = on_off; - return AudioControlSetValue(1, &status, match_names); -} - diff --git a/tv/tvserver/libtv/audio/audio_alsa.h b/tv/tvserver/libtv/audio/audio_alsa.h deleted file mode 100644 index 5cd6d34..0000000 --- a/tv/tvserver/libtv/audio/audio_alsa.h +++ b/dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: header file - */ - -#ifndef __TV_AUDIO_ALSA_H__ -#define __TV_AUDIO_ALSA_H__ - -enum CC_AUD_I2S_MUTE { - CC_I2S_MUTE_OFF, - CC_I2S_MUTE_ON, -}; - -enum CC_AUDIO_MUTE_STATUS { - CC_MUTE_ON, - CC_MUTE_OFF, -}; -enum CC_AUD_SPDIF_MUTE { - CC_SPDIF_MUTE_OFF, - CC_SPDIF_MUTE_ON, -}; - -enum CC_AUD_IN_TYPE { - CC_AUDIO_IN_SOURCE_LINEIN, - CC_AUDIO_IN_SOURCE_ATV, - CC_AUDIO_IN_SOURCE_HDMI, - CC_AUDIO_IN_SOURCE_SPDIFIN, -}; - - -#define CC_MIN_DAC_VOLUME (0) -#define CC_MAX_DAC_VOLUME (255) -#define CC_MIN_DAC_SUB_WOOFER_VOLUME (0) -#define CC_MAX_DAC_SUB_WOOFER_VOLUME (255) - -#define CC_MIN_SOUND_BALANCE_VAL (0) -#define CC_MAX_SOUND_BALANCE_VAL (100) -#define CC_DEF_SOUND_BALANCE_VAL (50) - -#define CC_DAC_MUTE_TYPE_EXTERNAL (1) -#define CC_DAC_MUTE_TYPE_INTERNAL (2) - -#define CC_VOL_TRANS_LUT_BUF_SIZE (101) - -static const int CC_AUDIO_MUTE = 1; -static const int CC_AUDIO_UNMUTE = 0; - -enum CC_AUDIO_SOURCE_TYPE { - AUDIO_HDMI_SOURCE, - AUDIO_ATV_SOURCE, - AUDIO_AV_SOURCE, - AUDIO_MPEG_SOURCE, - AUDIO_MAX_SOURCE -}; - - -//use tinyalsa,is a like alsa-lib for android -class CAudioAlsa { -public: - CAudioAlsa(); - ~CAudioAlsa(); - int SetAudioInSource(int source_type); - int GetAudioInSource(void); - int SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val); - int GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val); - int SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val); - int GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val); - int SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val); - int GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val); - int SetInternalDacLineInSelectChannel(int line_in_number); - int SetInternalDacLineInCaptureVolume(int l_vol, int r_vol); - int GetInternalDacLineInCaptureVolume(int vol_buf[]); - int SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol); - int GetInternalDacLineOutPlayBackVolume(int vol_buf[]); - int SetExternalDacChannelSwitch(int chan_ind, int switch_val); - int SetExternalDacChannelVolume(int chan_ind, int main_vol); - int SetExternalDacEQMode(int mode_val); - int SetI2SMute(int mute_status); - int SetSPDIFMute(int mute_status); - int SetHardwareResample(int sr); - int SetAudioSwitchIO(int value); - int SetAudioPcmPlaybackVolume(int val); - int SetAudioPcmPlaybackSwitch(int vol); - - int SetOutput_Swap(int value); - - - int SetMixerBypassSwitch(int switch_val); - int GetMixerBypassSwitch(void); - int SetMixerDacSwitch(int switch_val); - int GetMixerDacSwitch(void); - //dac - void SetMainVolDigitLutBuf(int digit_lut_buf[]); - int *GetMainVolDigitLutBuf(); - void SetSupperBassVolDigitLutBuf(int digit_lut_buf[]); - int SetMainVolumeGain(int gain_val); - int GetMainVolumeGain(); - int SetSupperBassVolumeGain(int gain_val); - int GetSupperBassVolumeGain(); - int SetInternalDacMute(int); - int setAudioPcmPlaybackMute(int); - //end dac - int TransVolumeBarVolToDigitalVol(int *, int); - int TransDigitalVolToVolumeBarVol(int *, int, int, int, int, int); - int CalculateBalanceVol(int, int, int *); - int SetExternalDacMainVolume(int); - int SetInternalDacMainVolume(int); - int SetDigitalVolume(int, int); - int SetDigitalMainVolume(int, int); - int SetDigitalMute(int); - int SetAudioARCSwitch(int on_off); -private: - int get_aml_card(); - int AudioControlSetValue(int val_count, int data_buf[], char *match_names); - int AudioControlGetValue(int val_count, int ret_buf[], char *match_names); - int get_USB_Audio_card(); - int HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names); - int CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min, int hd_max); - int GetTwoChannelVolume(int vol_buf[], int l_min_vol, int l_max_vol, int r_min_vol, int r_max_vol, char *match_names, int hd_min, int hd_max); - int GetLineInMaxVol(); - int GetLineOutMaxVol(); - char *GetAlsaControlName(int get_type); - // - // - //mem - struct mixer *mpMixer; - struct mixer *mpUsbMixer; - int mMainVolumeBalanceVal; - int mMainVolumeGainVal; - int mSupperBassVolumeGainVal; - int mMainDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; - int mSupperBassDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; -}; -#endif //__TV_AUDIO_ALSA_H__ diff --git a/tv/tvserver/libtv/audio/audio_effect.cpp b/tv/tvserver/libtv/audio/audio_effect.cpp deleted file mode 100644 index 47a47a9..0000000 --- a/tv/tvserver/libtv/audio/audio_effect.cpp +++ b/dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: c++ file - */ -#define LOG_TAG "tvserver" -#define LOG_TV_TAG "CAudioEffect" -#define UNUSED(x) (void)x - -#include <stdio.h> -#include <stdlib.h> -#include <malloc.h> -#include <unistd.h> -#include <pthread.h> - -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/poll.h> -#include <sys/ioctl.h> -#include <fcntl.h> - -#include "audio_amaudio.h" -#include "audio_effect.h" -#include "CTvLog.h" - -CAudioEffect::CAudioEffect() -{ -} - -CAudioEffect::~CAudioEffect() -{ -} - -int CAudioEffect::GetEQBandCount() -{ - return CC_BAND_ITEM_CNT; -} - -int CAudioEffect::SetEQSwitch(int switch_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetEQEnable(switch_val); - return tmp_ret; -} - -int CAudioEffect::GetEQSwitch() -{ - int tmp_ret = 0; - return 0; -} - -int CAudioEffect::SetEQValue(int gain_val_buf[]) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetEQGain(gain_val_buf, CC_BAND_ITEM_CNT); - return tmp_ret; -} - -int CAudioEffect::GetEQValue(int gain_val_buf[] __unused) -{ - return 0; -} - -int CAudioEffect::SetSrsSurroundSwitch(int switch_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSSurroundSwitch(switch_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsSurroundGain(int gain_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSSurroundGain(gain_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsInputOutputGain(int input_gain_val, int output_gain_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSGain(input_gain_val, output_gain_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsTruBassSwitch(int switch_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSTrubassSwitch(switch_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsTruBassGain(int gain_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSTrubassGain(gain_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsDialogClaritySwitch(int switch_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSDialogClaritySwitch(switch_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsDialogClarityGain(int gain_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSDialogClarityGain(gain_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsDefinitionGain(int gain_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSDefinitionGain(gain_val); - return tmp_ret; -} - -int CAudioEffect::SetSrsTrubassSpeakerSize(int set_val) -{ - int tmp_ret = 0; - //tmp_ret |= amAudioSetSRSTrubassSpeakerSize(set_val); - return tmp_ret; -} - -int CAudioEffect::DbxTv_SetMode(int mode __unused, int son_value, int vol_value, int sur_value) -{ - //TODO - UNUSED(son_value); - UNUSED(vol_value); - UNUSED(sur_value); - - int ret = 0; -#ifdef TV_AUDIO_USE_DBX_TV - ret |= amAudioSetDBXTVParameter( son_value, vol_value, sur_value); -#endif - return ret; -} - -int CAudioEffect::SetAudioVirtualizer(int enable, int EffectLevel) -{ - return 0;//amAudioVirtualizer(enable, EffectLevel); -} diff --git a/tv/tvserver/libtv/audio/audio_effect.h b/tv/tvserver/libtv/audio/audio_effect.h deleted file mode 100644 index 2439e51..0000000 --- a/tv/tvserver/libtv/audio/audio_effect.h +++ b/dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: header file - */ - -#ifndef __TV_AUDIO_EFFECT_H__ -#define __TV_AUDIO_EFFECT_H__ -#define CC_BAND_ITEM_CNT ( 6 ) -class CAudioEffect { -public: - CAudioEffect(); - ~CAudioEffect(); - int GetEQBandCount(); - int SetEQSwitch(int switch_val); - int GetEQSwitch(); - int SetEQValue(int gain_val_buf[]); - int GetEQValue(int gain_val_buf[]); - - int SetSrsSurroundSwitch(int switch_val); - int SetSrsInputOutputGain(int input_gain_val, int output_gain_val); - int SetSrsSurroundGain(int gain_val); - int SetSrsTruBassSwitch(int switch_val); - int SetSrsTruBassGain(int gain_val); - int SetSrsDialogClaritySwitch(int switch_val); - int SetSrsDialogClarityGain(int gain_val); - int SetSrsDefinitionGain(int gain_val); - int SetSrsTrubassSpeakerSize(int tmp_val); - int DbxTv_SetMode(int mode, int son_value, int vol_value, int sur_value); - int SetAudioVirtualizer(int enable, int EffectLevel); - -private: -}; -#endif //__TV_AUDIO_EFFECT_H__ diff --git a/tv/tvserver/libtv/tv/CTv.cpp b/tv/tvserver/libtv/tv/CTv.cpp index dd950a5..033ce25 100644 --- a/tv/tvserver/libtv/tv/CTv.cpp +++ b/tv/tvserver/libtv/tv/CTv.cpp @@ -73,8 +73,6 @@ extern "C" { using namespace android; -static const int WALL_EFFECT_VALUE[CC_BAND_ITEM_CNT] = { 0, 0, 1, 2, 2, 0 }; - bool CTv::insertedFbcDevice() { bool ret = false; @@ -104,9 +102,6 @@ bool CTv::insertedFbcDevice() CTv::CTv():mTvDmx(0), mTvDmx1(1), mTvDmx2(2), mTvMsgQueue(this) { - mAudioMuteStatusForTv = CC_AUDIO_UNMUTE; - mAudioMuteStatusForSystem = CC_AUDIO_UNMUTE; - //copy file to param char buf[PROPERTY_VALUE_MAX] = {0}; int len = property_get("tv.tvconfig.force_copy", buf, "true"); @@ -183,8 +178,6 @@ CTv::CTv():mTvDmx(0), mTvDmx1(1), mTvDmx2(2), mTvMsgQueue(this) mBootvideoStatusDetectThread = new CBootvideoStatusDetect(); mBootvideoStatusDetectThread->setObserver(this); - m_hdmi_audio_data = 0; - mHDMIAudioCheckThread.setObserver(this); mDevicesPollStatusDetectThread.setObserver ( this ); mFrontDev->setObserver ( &mTvMsgQueue ); mTvEas = CTvEas::GetInstance(); @@ -197,43 +190,6 @@ CTv::CTv():mTvDmx(0), mTvDmx1(1), mTvDmx2(2), mTvMsgQueue(this) mSubtitle.setObserver(this); mHeadSet.setObserver(this); mAv.setObserver(&mTvMsgQueue); - mMainVolLutTableExtraName[0] = '\0'; - //----------------------------------------------------------- - mCurAudioMasterVolume = CC_DEF_SOUND_VOL; - mCurAudioBalance = CC_DEF_SOUND_BALANCE_VAL; - mCurAudioSupperBassVolume = CC_DEF_SUPPERBASS_VOL; - mCurAudioSupperBassSwitch = CC_SWITCH_OFF; - mCurAudioSRSSurround = CC_SWITCH_OFF; - mCurAudioSrsDialogClarity = CC_SWITCH_OFF; - mCurAudioSrsTruBass = CC_SWITCH_OFF; - mCurAudioSPDIFSwitch = CC_SWITCH_ON; - mCurAudioSPDIFMode = CC_SPDIF_MODE_PCM; - mCurAudioBassVolume = CC_DEF_BASS_TREBLE_VOL; - mCurAudioTrebleVolume = CC_DEF_BASS_TREBLE_VOL; - mCurAudioSoundMode = CC_SOUND_MODE_END; - mCurAudioWallEffect = CC_SWITCH_OFF; - mCurAudioEQMode = CC_EQ_MODE_START; - mCustomAudioMasterVolume = CC_DEF_SOUND_VOL; - mCustomAudioBalance = CC_DEF_SOUND_BALANCE_VAL; - mCustomAudioSupperBassVolume = CC_DEF_SUPPERBASS_VOL; - mCustomAudioSupperBassSwitch = CC_SWITCH_OFF; - mCustomAudioSRSSurround = CC_SWITCH_OFF; - mCustomAudioSrsDialogClarity = CC_SWITCH_OFF; - mCustomAudioSrsTruBass = CC_SWITCH_OFF; - mCustomAudioBassVolume = CC_DEF_BASS_TREBLE_VOL; - mCustomAudioTrebleVolume = CC_DEF_BASS_TREBLE_VOL; - mCustomAudioSoundMode = CC_SOUND_MODE_END; - mCustomAudioWallEffect = CC_SWITCH_OFF; - mCustomAudioEQMode = CC_EQ_MODE_START; - mCustomAudioSoundEnhancementSwitch = CC_SWITCH_OFF; - mVolumeCompensationVal = 0; - - mMainVolumeBalanceVal = 0; - for (int i = 0; i < CC_BAND_ITEM_CNT; i++) { - mCustomEQGainBuf[i] = 0; - mCurEQGainBuf[i] = 0; - mCurEQGainChBuf[i] = 0; - } mTvAction &= TV_ACTION_NULL; mTvStatus = TV_INIT_ED; @@ -384,7 +340,6 @@ void CTv::onEvent(const CAv::AVEvent &ev) } else { mAv.DisableVideoWithBlueColor(); } - SetAudioMuteForTv ( CC_AUDIO_MUTE ); TvEvent::SignalInfoEvent ev; ev.mStatus = TVIN_SIG_STATUS_NOSIG; @@ -400,11 +355,6 @@ void CTv::onEvent(const CAv::AVEvent &ev) AvPlayBackEvt.mMsgType = TvEvent::AVPlaybackEvent::EVENT_AV_PLAYBACK_RESUME; AvPlayBackEvt.mProgramId = (int)ev.param; sendTvEvent(AvPlayBackEvt); - if (m_source_input == SOURCE_DTV && (mTvAction & TV_ACTION_PLAYING)) { //atv and other tvin source not to use it, and if not playing, not use have sig - LOGD("[EVENT_AV_RESUEM]"); - SetAudioMuteForTv(CC_AUDIO_UNMUTE); - Tv_SetAudioInSource(SOURCE_DTV); - } break; } @@ -435,8 +385,6 @@ void CTv::onEvent(const CAv::AVEvent &ev) //usleep(50 * 1000); mAv.EnableVideoNow(true); LOGD("[source_switch_time]: %fs, EVENT_AV_VIDEO_AVAILABLE, video available ok", getUptimeSeconds()); - SetAudioMuteForTv(CC_AUDIO_UNMUTE); - Tv_SetAudioInSource(SOURCE_DTV); } TvEvent::AVPlaybackEvent AvPlayBackEvt; @@ -517,13 +465,6 @@ void CTv::CTvMsgQueue::handleMessage ( CMessage &msg ) break; } - case TV_MSG_HDMI_SR_CHANGED: { - int sr = ((int *)(msg.mpPara))[0]; - mpTv->onHdmiSrChanged(sr, (((int *)(msg.mpPara))[1] == 0) ? true : false); - mpTv->setAudioPreGain(mpTv->m_source_input); - break; - } - case TV_MSG_ENABLE_VIDEO_LATER: { int fc = msg.mpPara[0]; mpTv->onEnableVideoLater(fc); @@ -620,29 +561,6 @@ void CTv::CTvMsgQueue::onEvent ( const CTvEas::EasEvent &ev ) this->sendMsg ( msg ); } -void CTv::onHdmiSrChanged(int sr, bool bInit) -{ - if (bInit) { - LOGD ( "%s, Init HDMI audio, sampling rate:%d", __FUNCTION__, sr ); - sr = HanldeAudioInputSr(sr); - InitTvAudio (sr, CC_IN_USE_SPDIF_DEVICE); - } else { - LOGD ( "%s, Reset HDMI sampling rate to %d", __FUNCTION__, sr ); - AudioChangeSampleRate ( sr ); - } -} - -void CTv::onHMDIAudioStatusChanged(int status) -{ - if (status == 0) {//change to no audio data - SetAudioMuteForTv ( CC_AUDIO_MUTE ); - } else if (status == 1) {//change to audio data come - Tv_SetAudioInSource(m_source_input); - usleep(200 * 1000); - SetAudioMuteForTv ( CC_AUDIO_UNMUTE ); - } -} - int CTv::setTvObserver ( TvIObserver *ob ) { mpObserver = ob; @@ -684,12 +602,10 @@ int CTv::clearFrontEnd(int para) int CTv::Scan(const char *feparas, const char *scanparas) { AutoMutex _l(mLock); m_source_input = SOURCE_INVALID; - SetAudioMuteForTv ( CC_AUDIO_MUTE ); mTvAction = mTvAction | TV_ACTION_SCANNING; LOGD("mTvAction = %#x, %s", mTvAction, __FUNCTION__); LOGD("fe[%s], scan[%s] %s", feparas, scanparas, __FUNCTION__); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mAv.StopTS(); mpTvin->Tvin_StopDecoder(); if ( iSBlackPattern ) { @@ -801,7 +717,6 @@ int CTv::atvAutoScan(int videoStd __unused, int audioStd __unused, int searchTyp mTvAction |= TV_ACTION_SCANNING; stopPlaying(false); mTvScanner->setObserver ( &mTvMsgQueue ); - SetAudioMuteForTv ( CC_AUDIO_MUTE ); getATVMinMaxFreq (&minScanFreq, &maxScanFreq ); if ( minScanFreq == 0 || maxScanFreq == 0 || minScanFreq > maxScanFreq ) { LOGE ( "%s, auto scan freq set is error min=%d, max=%d", __FUNCTION__, minScanFreq, maxScanFreq ); @@ -874,9 +789,7 @@ int CTv::atvMunualScan ( int startFreq, int endFreq, int videoStd, int audioStd, mAv.DisableVideoWithBlueColor(); mTvAction |= TV_ACTION_SCANNING; mTvScanner->setObserver ( &mTvMsgQueue ); - SetAudioMuteForTv ( CC_AUDIO_MUTE ); unsigned long stdAndColor = mFrontDev->enumToStdAndColor(vStd, aStd); - tvin_port_t source_port = mpTvin->Tvin_GetSourcePortBySourceInput(SOURCE_TV); mpTvin->VDIN_OpenPort ( source_port ); @@ -951,8 +864,6 @@ int CTv::stopScan() mAv.DisableVideoWithBlueColor(); } } - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); - mHDMIAudioCheckThread.setObserver(this); //mTvEpg.leaveChannel(); mTvScanner->stopScan(); mFrontDev->Close(); @@ -1216,7 +1127,6 @@ int CTv::playDtvProgramUnlocked (const char *feparas, int mode, int freq, int pa msg.mType = CTvMsgQueue::TV_MSG_CHECK_FE_DELAY; mTvMsgQueue.sendMsg ( msg ); - SetCurProgramAudioVolumeCompensationVal ( audioCompetation ); return 0; } @@ -1269,8 +1179,6 @@ int CTv::playDtvTimeShiftUnlocked (const char *feparas, void *para, int audioCom tvWriteSysfs ( DEVICE_CLASS_TSYNC_AV_THRESHOLD_MIN, AV_THRESHOLD_MIN_MS ); ret = mAv.startTimeShift(para); - SetCurProgramAudioVolumeCompensationVal ( audioCompetation ); - return ret; } @@ -1289,12 +1197,10 @@ int CTv::playDtmbProgram ( int progId ) CTvProgram::Audio *pA; CTvProgram::Video *pV; int ret = CTvProgram::selectByID ( progId, prog ); - SetAudioMuteForTv ( CC_AUDIO_MUTE ); saveDTVProgramID ( progId ); prog.getChannel ( channel ); int chanVolCompValue = 0; chanVolCompValue = GetAudioVolumeCompensationVal(progId); - SetCurProgramAudioVolumeCompensationVal ( chanVolCompValue ); mFrontDev->setPara ( channel.getMode(), channel.getFrequency(), channel.getBandwidth(), 0 ); @@ -1337,9 +1243,7 @@ int CTv::playAtvProgram (int freq, int videoStd, int audioStd, int fineTune __u } else { mAv.DisableVideoBlackout(); } - SetAudioMuteForTv ( CC_AUDIO_MUTE ); //image selecting channel - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mpTvin->Tvin_StopDecoder(); mFrontDev->Open(TV_FE_ANALOG); //set CVBS @@ -1350,11 +1254,6 @@ int CTv::playAtvProgram (int freq, int videoStd, int audioStd, int fineTune __u //set TUNER mFrontDev->setPara (TV_FE_ANALOG, freq, stdAndColor, 1); - mHDMIAudioCheckThread.setObserver(this); - mHDMIAudioCheckThread.initCheckState(); - mHDMIAudioCheckThread.resumeCheck(1000); - - SetCurProgramAudioVolumeCompensationVal ( audioCompetation ); return 0; } @@ -1378,7 +1277,6 @@ int CTv::resetFrontEndPara ( frontend_para_set_t feParms ) LOGD("%s, resetFrontEndPara- vstd=%d astd=%d stdandcolor=%lld", __FUNCTION__, feParms.videoStd, feParms.audioStd, stdAndColor); //set frontend parameters to tuner dev - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mpTvin->Tvin_StopDecoder(); //set CVBS @@ -1393,9 +1291,6 @@ int CTv::resetFrontEndPara ( frontend_para_set_t feParms ) if ( tmpfineFreq != 0 ) { mFrontDev->fineTune ( tmpfineFreq / 1000 ); } - - mHDMIAudioCheckThread.initCheckState(); - mHDMIAudioCheckThread.resumeCheck(); } else { mFrontDev->Open(feParms.mode); mFrontDev->setPara ( feParms.mode, feParms.freq, feParms.para1, feParms.para2 ); @@ -1434,9 +1329,7 @@ int CTv::setFrontEnd ( const char *paras, bool force ) unsigned long stdAndColor = mFrontDev->enumToStdAndColor (fp.getVideoStd(), fp.getAudioStd()); LOGD("%s: vstd=%d astd=%d stdandcolor=%lld", __FUNCTION__, fp.getVideoStd(), fp.getAudioStd(), stdAndColor); - SetAudioMuteForTv ( CC_AUDIO_MUTE); //set frontend parameters to tuner dev - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mpTvin->Tvin_StopDecoder(); //set CVBS @@ -1451,14 +1344,10 @@ int CTv::setFrontEnd ( const char *paras, bool force ) if ( tmpfineFreq != 0 ) { mFrontDev->fineTune ( tmpfineFreq / 1000, force ); } - - mHDMIAudioCheckThread.initCheckState(); - mHDMIAudioCheckThread.resumeCheck(); } else { if (SOURCE_ADTV == m_source_input_virtual) { if (SOURCE_TV == m_source_input) { //mAv.DisableVideoBlackout(); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mpTvin->Tvin_StopDecoder(); if ( (SOURCE_TV == m_source_input) && mATVDisplaySnow ) { mpTvin->SwitchSnow( false ); @@ -1497,25 +1386,6 @@ int CTv::resetDmxAndAvSource() return 0; } -int CTv::SetCurProgramAudioVolumeCompensationVal ( int tmpVal ) -{ - SetAudioVolumeCompensationVal ( tmpVal ); - SetAudioMasterVolume (GetAudioMasterVolume() ); - - LOGD ( "%s, VolumeCompensationVal = %d, id = -1\n", __FUNCTION__, tmpVal ); - CTvProgram prog; - if ( CTvProgram::selectByID ( -1, prog ) != 0 ) { - LOGE ( "[ctv]%s, atv progID is not matching the db's ret = 0\n", __FUNCTION__ ); - return -1; - } - - if (prog.updateVolComp ( -1, tmpVal ) != 0 ) { - LOGE ( "[ctv]%s, atv progID is not matching the db's\n", __FUNCTION__); - return -1; - } - return 0; -} - int CTv::GetAudioVolumeCompensationVal(int progxxId __unused) { int tmpVolValue = 0; @@ -1564,11 +1434,9 @@ int CTv::stopPlaying(bool isShowTestScreen, bool resetFE) if (m_source_input == SOURCE_TV) { //first mute - SetAudioMuteForTv(CC_AUDIO_MUTE); if (resetFE) ClearAnalogFrontEnd(); } else if (m_source_input == SOURCE_DTV) { - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); if (mBlackoutEnable == true) { mAv.EnableVideoBlackout(); } @@ -1916,8 +1784,6 @@ int CTv::OpenTv ( void ) mpTvin->Tv_init_afe(); CVpp::getInstance()->Vpp_Init(mHdmiOutFbc); - TvAudioOpen(); - SetAudioVolDigitLUTTable(SOURCE_MPEG); SSMSetHDCPKey(); system ( "/vendor/bin/dec" ); @@ -1937,7 +1803,6 @@ int CTv::OpenTv ( void ) Tvin_GetTvinConfig(); m_last_source_input = SOURCE_INVALID; m_source_input = SOURCE_INVALID; - m_hdmi_sampling_rate = 0; int8_t enable; SSMReadBlackoutEnable(&enable); @@ -1950,6 +1815,9 @@ int CTv::OpenTv ( void ) //mDevicesPollStatusDetectThread.startDetect(); //ClearAnalogFrontEnd(); InitCurrenSignalInfo(); + if (!isBootvideoStopped()) { + mBootvideoStatusDetectThread->startDetect(); + } mTvStatus = TV_OPEN_ED; return 0; @@ -1957,7 +1825,6 @@ int CTv::OpenTv ( void ) int CTv::CloseTv ( void ) { - mHDMIAudioCheckThread.stopCheck(); mpTvin->Tv_uninit_afe(); mpTvin->uninit_vdin(); TvMisc_DisableWDT ( gTvinConfig.userpet ); @@ -1977,10 +1844,6 @@ int CTv::StartTvLock () setDvbLogLevel(); //mAv.ClearVideoBuffer(); mAv.SetVideoLayerDisable(1); - SwitchAVOutBypass(0); - InitSetTvAudioCard(); - SetAudioMuteForTv(CC_AUDIO_MUTE); - mHDMIAudioCheckThread.startCheck(); mTvMsgQueue.startMsgQueue(); SetDisplayMode ( CVpp::getInstance()->GetDisplayMode ( m_source_input ), m_source_input, m_cur_sig_info.fmt); TvMisc_EnableWDT ( gTvinConfig.kernelpet_disable, gTvinConfig.userpet, gTvinConfig.kernelpet_timeout, gTvinConfig.userpet_timeout, gTvinConfig.userpet_reset ); @@ -2013,7 +1876,6 @@ int CTv::DoResume(int type) int CTv::StopTvLock ( void ) { LOGD("%s, call Tv_Stop status = %d \n", __FUNCTION__, mTvStatus); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); AutoMutex _l( mLock ); mTvAction |= TV_ACTION_STOPING; mAv.DisableVideoWithBlackColor(); @@ -2032,14 +1894,7 @@ int CTv::StopTvLock ( void ) setAudioChannel(TV_AOUT_OUTPUT_STEREO); mpTvin->setMpeg2Vdin(0); mAv.setLookupPtsForDtmb(0); - SwitchAVOutBypass(0); - tv_audio_channel_e audio_channel = mpTvin->Tvin_GetInputSourceAudioChannelIndex (SOURCE_MPEG); - AudioLineInSelectChannel( audio_channel ); - AudioCtlUninit(); - SetAudioVolDigitLUTTable(SOURCE_MPEG); - Tv_SetAudioInSource(SOURCE_MPEG); SetDisplayMode ( CVpp::getInstance()->GetDisplayMode ( SOURCE_MPEG ), SOURCE_MPEG, m_cur_sig_info.fmt); - RefreshAudioMasterVolume ( SOURCE_MPEG ); m_last_source_input = SOURCE_INVALID; m_source_input = SOURCE_INVALID; m_source_input_virtual = SOURCE_INVALID; @@ -2055,15 +1910,11 @@ int CTv::StopTvLock ( void ) mTvAction &= ~TV_ACTION_STOPING; mTvStatus = TV_STOP_ED; MnoNeedAutoSwitchToMonitorMode = false; - if ( Get2d4gHeadsetEnable() == 1 ) { - property_set("audio.tv_open.flg", "0"); - } if (mBlackoutEnable) { mAv.DisableVideoWithBlackColor(); mAv.EnableVideoBlackout(); } mAv.ClearVideoBuffer(); - SetAudioMuteForTv ( CC_AUDIO_UNMUTE ); return 0; } @@ -2190,8 +2041,6 @@ int CTv::SetSourceSwitchInputLocked(tv_source_input_t virtual_input, tv_source_i } mTvAction |= TV_ACTION_SOURCE_SWITCHING; - SetAudioMuteForTv(CC_AUDIO_MUTE); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); //if BlackoutEnable is false, no need to disable video and enable blackout if (mBlackoutEnable == true) { @@ -2216,27 +2065,16 @@ int CTv::SetSourceSwitchInputLocked(tv_source_input_t virtual_input, tv_source_i m_source_input = source_input; SSMSaveSourceInput ( source_input ); - SetAudioVolumeCompensationVal ( 0 ); - if ( source_input == SOURCE_DTV ) { resetDmxAndAvSource(); //we should stop audio first for audio mute. - SwitchAVOutBypass(0); - tv_audio_channel_e audio_channel = mpTvin->Tvin_GetInputSourceAudioChannelIndex (SOURCE_MPEG); - AudioLineInSelectChannel( audio_channel ); - AudioCtlUninit(); - SetAudioVolDigitLUTTable(SOURCE_MPEG); // mpTvin->Tvin_StopDecoder(); mpTvin->VDIN_ClosePort(); mpTvin->Tvin_WaitPathInactive ( TV_PATH_TYPE_DEFAULT ); //double confirm we set the main volume lut buffer to mpeg - RefreshAudioMasterVolume ( SOURCE_MPEG ); - RefreshSrsEffectAndDacGain(); - SetCustomEQGain(); - LoadAudioVirtualizer(); mpTvin->setMpeg2Vdin(1); mAv.setLookupPtsForDtmb(1); tv_source_input_type_t source_type = mpTvin->Tvin_SourceInputToSourceInputType(m_source_input); @@ -2249,7 +2087,6 @@ int CTv::SetSourceSwitchInputLocked(tv_source_input_t virtual_input, tv_source_i CVpp::getInstance()->LoadVppSettings(SOURCE_DTV, TVIN_SIG_FMT_HDMI_1920X1080P_60HZ, INDEX_2D, TVIN_TFMT_2D); - Tv_SetAudioInSource ( source_input ); } else { mpTvin->setMpeg2Vdin(0); mAv.setLookupPtsForDtmb(0); @@ -2259,29 +2096,8 @@ int CTv::SetSourceSwitchInputLocked(tv_source_input_t virtual_input, tv_source_i Tv_MiscSetBySource ( source_input ); if (source_input != SOURCE_DTV) { - // Uninit data - UnInitTvAudio(); - if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3 || - source_input == SOURCE_HDMI4 || source_input == SOURCE_MPEG || source_input == SOURCE_DTV) { - SwitchAVOutBypass(0); - } else { - SwitchAVOutBypass(1); - } - - tv_audio_channel_e audio_channel = mpTvin->Tvin_GetInputSourceAudioChannelIndex (source_input); - AudioLineInSelectChannel( audio_channel ); - - Tv_SetAudioInSource ( source_input ); - if ( source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3 - || source_input == SOURCE_HDMI4) { - m_hdmi_sampling_rate = 0; - m_hdmi_audio_data = 0; - } else if (source_input == SOURCE_SPDIF) { - InitTvAudio(48000, CC_IN_USE_SPDIF_DEVICE); - HanldeAudioInputSr(48000); - } - if (mpTvin->SwitchPort ( cur_port ) == 0) { //ok + mTvAction |= TV_ACTION_IN_VDIN; if (source_input != SOURCE_SPDIF) { unsigned char std; @@ -2294,25 +2110,10 @@ int CTv::SetSourceSwitchInputLocked(tv_source_input_t virtual_input, tv_source_i CVpp::getInstance()->Vpp_ResetLastVppSettingsSourceType(); } m_sig_spdif_nums = 0; - mHDMIAudioCheckThread.setObserver(this); - mHDMIAudioCheckThread.initCheckState(); - - if (source_input != SOURCE_SPDIF) { - mHDMIAudioCheckThread.setHDMIAudioCheckEnable(true); - } else { - mHDMIAudioCheckThread.setHDMIAudioCheckEnable(false); - } - mHDMIAudioCheckThread.resumeCheck(0); } } - Tv_SetAudioSourceType(source_input); - RefreshAudioMasterVolume(source_input); - Tv_SetAudioOutputSwap_Type(source_input); - Tv_SetAVOutPut_Input_gain(source_input); - mTvAction &= ~ TV_ACTION_SOURCE_SWITCHING; - mTvAction |= TV_ACTION_IN_VDIN; return 0; } @@ -2328,11 +2129,6 @@ void CTv::onSigToStable() LOGE("%s Set CurrentSourceInfo error!\n"); } - if (SOURCE_TV <= m_source_input && m_source_input <= SOURCE_AV2) { - InitTvAudio(48000, CC_IN_USE_I2S_DEVICE); - HanldeAudioInputSr(-1); - } - CVpp::getInstance()->LoadVppSettings(m_source_input, m_cur_sig_info.fmt, INDEX_2D, m_cur_sig_info.trans_fmt); @@ -2394,13 +2190,11 @@ void CTv::onSigStillStable() } if ( 1 ) { LOGD("still stable , to unmute audio/video"); - setAudioPreGain(m_source_input); CMessage msg; msg.mDelayMs = 0; msg.mType = CTvMsgQueue::TV_MSG_ENABLE_VIDEO_LATER; msg.mpPara[0] = 2; mTvMsgQueue.sendMsg ( msg ); - m_hdmi_audio_data = 0; } if ( 1 ) { //tvin_info_t info = m_cur_sig_info; @@ -2426,14 +2220,6 @@ void CTv::onEnableVideoLater(int framecount) { LOGD ( "[source_switch_time]: %fs, onEnableVideoLater start, wait %d video frame come out", getUptimeSeconds(), framecount); mAv.EnableVideoWhenVideoPlaying(framecount); - if (CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI ) { - if (isTvViewBlocked()) { - SetAudioMuteForTv ( CC_AUDIO_MUTE ); - } else { - SetAudioMuteForTv ( CC_AUDIO_UNMUTE ); - } - Tv_SetAudioInSource(m_source_input); - } LOGD ( "[source_switch_time]: %fs, onEnableVideoLater end, show source on screen", getUptimeSeconds()); } @@ -2451,62 +2237,9 @@ void CTv::onVideoAvailableLater(int framecount) } } -void CTv::Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input) -{ - int nPgaValueIndex = 0; - int nAdcValueIndex = 0; - int nDdcValueIndex = 0; - int tmpAvoutBufPtr[9]; - - if (GetAvOutGainBuf_Cfg(tmpAvoutBufPtr) != 0) { - GetDefaultAvOutGainBuf(tmpAvoutBufPtr); - } - - switch (source_input) { - case SOURCE_AV1: - case SOURCE_AV2: - nPgaValueIndex = 0; - nAdcValueIndex = 1; - nDdcValueIndex = 2; - break; - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - case SOURCE_HDMI4: - case SOURCE_DTV: - case SOURCE_MPEG: - nPgaValueIndex = 3; - nAdcValueIndex = 4; - nDdcValueIndex = 5; - break; - case SOURCE_TV: - nPgaValueIndex = 6; - nAdcValueIndex = 7; - nDdcValueIndex = 8; - break; - default: - break; - } - - SetPGA_IN_Value(tmpAvoutBufPtr[nPgaValueIndex]); - SetADC_Digital_Capture_Volume(tmpAvoutBufPtr[nAdcValueIndex]); - SetDAC_Digital_PlayBack_Volume(tmpAvoutBufPtr[nDdcValueIndex]); -} - void CTv::onSigToUnstable() { LOGD ( "%s, signal to Unstable\n", __FUNCTION__); - SetAudioMuteForTv(CC_AUDIO_MUTE); -/* - if ( (SOURCE_TV == m_source_input) && mATVDisplaySnow ) { - mpTvin->SwitchSnow( true ); - mpTvin->Tvin_StartDecoder ( m_cur_sig_info ); - mAv.EnableVideoNow( false ); - } else { - mAv.DisableVideoWithBlackColor(); - mpTvin->Tvin_StopDecoder(); - } -*/ if (SOURCE_TV != m_source_input) { mAv.DisableVideoWithBlackColor(); mpTvin->Tvin_StopDecoder(); @@ -2516,7 +2249,6 @@ void CTv::onSigToUnstable() void CTv::onSigToUnSupport() { LOGD ( "%s, signal to UnSupport\n", __FUNCTION__); - SetAudioMuteForTv(CC_AUDIO_MUTE); if ( (SOURCE_TV == m_source_input) && mATVDisplaySnow ) { mpTvin->SwitchSnow( true ); mpTvin->Tvin_StartDecoder ( m_cur_sig_info ); @@ -2544,7 +2276,6 @@ void CTv::onSigToUnSupport() void CTv::onSigToNoSig() { LOGD ( "%s, signal to NoSignal\n", __FUNCTION__); - SetAudioMuteForTv(CC_AUDIO_MUTE); if ( (SOURCE_TV == m_source_input) && mATVDisplaySnow ) { mpTvin->SwitchSnow( true ); mpTvin->Tvin_StartDecoder ( m_cur_sig_info ); @@ -2569,45 +2300,12 @@ void CTv::onSigToNoSig() } } -void CTv::onHDMIAudioCheckLoop() -{ - if (( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_HDMI ) ) { - int sr = mpTvin->get_hdmi_sampling_rate(); - if ( ( sr > 0 ) && ( sr != m_hdmi_sampling_rate ) ) { - LOGD("HDMI SR CHANGED"); - CMessage msg; - msg.mDelayMs = 0; - msg.mType = CTvMsgQueue::TV_MSG_HDMI_SR_CHANGED; - ((int *)(msg.mpPara))[0] = sr; - ((int *)(msg.mpPara))[1] = m_hdmi_sampling_rate; - mTvMsgQueue.sendMsg ( msg ); - m_hdmi_sampling_rate = sr; - } - - //m_hdmi_audio_data init is 0, not audio data , when switch to HDMI - int hdmi_audio_data = mpTvin->TvinApi_GetHDMIAudioStatus(); - if (hdmi_audio_data != m_hdmi_audio_data && sr > 0) { - LOGD("HDMI auds_rcv_sts CHANGED = %d", hdmi_audio_data); - m_hdmi_audio_data = hdmi_audio_data; - onHMDIAudioStatusChanged(hdmi_audio_data); - } - }else if (( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_SPDIF ) ) { - if ( ( mAudioMuteStatusForTv == CC_AUDIO_MUTE ) && ( m_sig_spdif_nums ++ > 3 ) ) - { - SetAudioMuteForSystem(CC_AUDIO_UNMUTE); - SetAudioMuteForTv(CC_AUDIO_UNMUTE); - LOGD("SPDIF UNMUTE"); - } - } -} - void CTv::onBootvideoRunning() { //LOGD("%s,boot video is running", __FUNCTION__); } void CTv::onBootvideoStopped() { LOGD("%s,boot video has stopped", __FUNCTION__); - SetAudioMasterVolume( GetAudioMasterVolume()); mBootvideoStatusDetectThread->stopDetect(); if (mpTvin->Tvin_RemovePath (TV_PATH_TYPE_TVIN) > 0) { mpTvin->VDIN_AddVideoPath(TV_PATH_VDIN_AMLVIDEO2_PPMGR_DEINTERLACE_AMVIDEO); @@ -2713,129 +2411,6 @@ int CTv::SetPreviewWindow ( tvin_window_pos_t pos ) return mAv.setVideoAxis(m_win_pos.x1, m_win_pos.y1, m_win_pos.x2, m_win_pos.y2); } -/*********************** Audio start **********************/ -int CTv::SetAudioVolDigitLUTTable ( tv_source_input_t source_input ) -{ - int tmpDefDigitLutBuf[CC_LUT_BUF_SIZE] = { 0 }; - int lut_table_index = 0; - if (source_input == SOURCE_TV) { - lut_table_index = CC_GET_LUT_TV; - } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { - lut_table_index = CC_GET_LUT_AV; - } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2) { - lut_table_index = CC_GET_LUT_COMP; - } else if (source_input == SOURCE_VGA) { - lut_table_index = CC_GET_LUT_VGA; - } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3 - || source_input == SOURCE_HDMI4) { - lut_table_index = CC_GET_LUT_HDMI; - } else if ( source_input == SOURCE_MPEG ) { - lut_table_index = CC_GET_LUT_MPEG; - } else if ( source_input == SOURCE_DTV ) { - lut_table_index = CC_GET_LUT_MPEG; - } else if ( source_input == SOURCE_MAX) { - return 0; - } - char MainVolLutTableName[128]; - const char *baseName = GetAudioAmpMainvolTableBaseName(lut_table_index); - strcpy(MainVolLutTableName, baseName); - const char *dName = "."; - strcat(MainVolLutTableName, dName); - strcat(MainVolLutTableName, mMainVolLutTableExtraName); - if ( GetAudioAmpMainvolBuf(MainVolLutTableName, tmpDefDigitLutBuf) == 0) { - AudioSetVolumeDigitLUTBuf ( lut_table_index, tmpDefDigitLutBuf); - } - return 0; -} - -void CTv::RefreshAudioMasterVolume ( tv_source_input_t source_input ) -{ - if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3 - || source_input == SOURCE_HDMI4) { - if ( GetAudioDVISupportEnable() == 1 ) { - if ( IsDVISignal() ) { - SetAudioVolDigitLUTTable ( SOURCE_MPEG ); - SetAudioMasterVolume ( GetAudioMasterVolume() ); - return; - } - } - } - - SetAudioVolDigitLUTTable ( source_input ); - SetAudioMasterVolume ( GetAudioMasterVolume() ); -} - -int CTv::Tv_SetAudioInSource (tv_source_input_t source_input) -{ - int vol = 255; - switch (source_input) { - case SOURCE_TV: - if (mpTvin->Tvin_GetAudioInSourceType(source_input) == TV_AUDIO_IN_SOURCE_TYPE_ATV) { - AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_ATV); - vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_ATV); - } else { - AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_LINEIN); - vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_LINEIN); - } - break; - case SOURCE_SPDIF: - AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_SPDIFIN); - vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_SPDIFIN); - break; - case SOURCE_AV1: - case SOURCE_AV2: - case SOURCE_YPBPR1: - case SOURCE_YPBPR2: - case SOURCE_VGA: - AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_LINEIN); - vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_LINEIN); - break; - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - case SOURCE_HDMI4: - case SOURCE_MPEG: - case SOURCE_DTV: - AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_HDMI); - vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_HDMI); - break; - default: - break; - } - LOGD("%s, we have read SetDAC_Digital_PlayBack_Volume = %d of source [%d].\n", __FUNCTION__, vol, source_input); - return 0; -} - -int CTv::Tv_SetAudioSourceType (tv_source_input_t source_input) -{ - int audio_source = -1; - - if (source_input == SOURCE_TV) { - audio_source = AUDIO_ATV_SOURCE; - } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { - audio_source = AUDIO_AV_SOURCE; - } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || - source_input == SOURCE_HDMI3 || source_input == SOURCE_HDMI4) { - audio_source = AUDIO_HDMI_SOURCE; - } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2 || - source_input == SOURCE_VGA) { - audio_source = AUDIO_AV_SOURCE; - } else if (source_input == SOURCE_DTV) { - audio_source = AUDIO_MPEG_SOURCE; - } else { - audio_source = AUDIO_MPEG_SOURCE; - } - - return AudioSetAudioSourceType(audio_source); -} - -void CTv::Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input) -{ - int sw_status = GetAudioOutputSwapStatus(source_input); - SetOutput_Swap(sw_status); -} -/*********************** Audio end **********************/ - unsigned int CTv::Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos) { int display_resolution = mAv.getVideoDisplayResolution(); @@ -2969,7 +2544,6 @@ int CTv::setLcdEnable(bool enable) int CTv::Tv_SSMRestoreDefaultSetting() { SSMRestoreDeviceMarkValues(); - AudioSSMRestoreDefaultSetting(); CVpp::getInstance()->VPPSSMFacRestoreDefault(); MiscSSMRestoreDefault(); ReservedSSMRestoreDefault(); @@ -2992,7 +2566,6 @@ int CTv::clearDbAllProgramInfoTable() int CTv::Tv_SSMFacRestoreDefaultSetting() { CVpp::getInstance()->VPPSSMFacRestoreDefault(); - AudioSSMRestoreDefaultSetting(); MiscSSMFacRestoreDefault(); return 0; } @@ -3440,45 +3013,6 @@ int CTv::Tv_SaveDisplayMode ( vpp_display_mode_t mode, tv_source_input_t tv_sour return SSMSaveDisplayMode ( tv_source_input, (int)mode ); } -int CTv::setAudioPreGain(tv_source_input_t source_input) -{ - float pre_gain = getAudioPreGain(source_input); - if (pre_gain > -100.000001 && pre_gain < -99.999999) { - return -1; - } - - return setAmAudioPreGain(pre_gain); -} - -float CTv::getAudioPreGain(tv_source_input_t source_input) -{ - float pre_gain = -100;//default value is -100, if value of gain is -100, don't set it to AMAUDIO. - switch (source_input) { - case SOURCE_AV1: - case SOURCE_AV2: - pre_gain = config_get_float(CFG_SECTION_TV, CFG_AUDIO_PRE_GAIN_FOR_AV, -100); - break; - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - case SOURCE_HDMI4: - pre_gain = config_get_float(CFG_SECTION_TV, CFG_AUDIO_PRE_GAIN_FOR_HDMI, -100); - break; - case SOURCE_DTV: - pre_gain = config_get_float(CFG_SECTION_TV, CFG_AUDIO_PRE_GAIN_FOR_DTV, -100); - break; - case SOURCE_MPEG: - pre_gain = 0; - break; - case SOURCE_TV: - pre_gain = config_get_float(CFG_SECTION_TV, CFG_AUDIO_PRE_GAIN_FOR_ATV, -100); - break; - default: - break; - } - return pre_gain; -} - int CTv::setEyeProtectionMode(int enable) { int ret = -1; @@ -3537,84 +3071,6 @@ int CTv::Tv_Easupdate() } //audio -void CTv::TvAudioOpen() -{ - SetAudioAVOutMute(CC_AUDIO_UNMUTE); - SetAudioSPDIFMute(CC_AUDIO_UNMUTE); - project_info_t tmp_info; - if (GetProjectInfo(&tmp_info) == 0) { - strncpy(mMainVolLutTableExtraName, tmp_info.amp_curve_name, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } - openTvAudio(); -} - -void CTv::AudioCtlUninit() -{ - int oldMuteStatus = mAudioMuteStatusForTv; - SetAudioMuteForTv(CC_AUDIO_MUTE); - - AudioSetAudioInSource (CC_AUDIO_IN_SOURCE_HDMI); - SetDAC_Digital_PlayBack_Volume(255); - AudioSetAudioSourceType (AUDIO_MPEG_SOURCE); - UnInitTvAudio(); - SetAudioVolumeCompensationVal(0); - SetAudioMasterVolume(GetAudioMasterVolume()); - UnInitSetTvAudioCard(); - - SetAudioMuteForTv(oldMuteStatus); -} - -//audio -int CTv::SetAudioMuteForSystem(int muteOrUnmute) -{ - int ret = 0; - LOGD("SetAudioMuteForSystem sysMuteStats=%d, tvMuteStatus=%d, toMute=%d", - mAudioMuteStatusForSystem, mAudioMuteStatusForTv, muteOrUnmute); - mAudioMuteStatusForSystem = muteOrUnmute; - ret |= SetDacMute(mAudioMuteStatusForSystem, CC_DAC_MUTE_TYPE_EXTERNAL); - ret |= SetAudioI2sMute(mAudioMuteStatusForSystem | mAudioMuteStatusForTv); - return ret; -} - -int CTv::GetAudioMuteForSystem() -{ - return mAudioMuteStatusForSystem; -} - -int CTv::SetAudioMuteForTv(int muteOrUnmute) -{ - int ret = 0; - mAudioMuteStatusForTv = muteOrUnmute; - LOGD("SetAudioMuteForTv sysMuteStats=%d, tvMuteStatus=%d, toMute=%d", - mAudioMuteStatusForSystem, mAudioMuteStatusForTv, muteOrUnmute); - ret |= SetDacMute(mAudioMuteStatusForSystem | mAudioMuteStatusForTv, CC_DAC_MUTE_TYPE_EXTERNAL | CC_DAC_MUTE_TYPE_INTERNAL); - ret |= SetAudioI2sMute(mAudioMuteStatusForTv); - ret |= SetAudioSPDIFMute(mAudioMuteStatusForTv); - ret |= mAudioAlsa.SetAudioARCSwitch(!mAudioMuteStatusForTv); - //AudioSystem::setStreamMute(AUDIO_STREAM_MUSIC, mAudioMuteStatusForTv); - return ret; -} - -int CTv::GetAudioMuteForTv() -{ - return mAudioMuteStatusForTv; -} - -int CTv::SetAudioSPDIFSwitch(int tmp_val) -{ - int muteStatus = CC_AUDIO_UNMUTE; - - SaveCurAudioSPDIFSwitch(tmp_val); - - if (tmp_val == CC_SWITCH_OFF /*|| mAudioMuteStatusForSystem == CC_AUDIO_MUTE || mAudioMuteStatusForTv == CC_AUDIO_MUTE*/) { - muteStatus = CC_AUDIO_MUTE; - } else { - muteStatus = CC_AUDIO_UNMUTE; - } - - SetAudioSPDIFMute(muteStatus); - return 0; -} void CTv::updateSubtitle(int pic_width, int pic_height) { @@ -3623,1750 +3079,12 @@ void CTv::updateSubtitle(int pic_width, int pic_height) ev.pic_height = pic_height; sendTvEvent(ev); } -//-------------------------------------------------- - - -//Audio Mute -int CTv::SetAudioI2sMute(int muteStatus) -{ - int aud_arch_type = GetAudioArchitectureTypeCFG(); - - if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) - return 0; - - int vol = 256; - if (muteStatus == CC_AUDIO_MUTE) { - vol = 0; - } else { - vol = 256; - } - CFile::setFileAttrValue(SYS_AUIDO_DIRECT_RIGHT_GAIN, vol); - CFile::setFileAttrValue(SYS_AUIDO_DIRECT_LEFT_GAIN, vol); - return 0; -} - -int CTv::SetDacMute(int muteStatus, int mute_type) -{ - int tmp_ret = 0; - if (mute_type & CC_DAC_MUTE_TYPE_INTERNAL) { - tmp_ret |= mAudioAlsa.SetInternalDacMute(muteStatus); - } - - if (mute_type & CC_DAC_MUTE_TYPE_EXTERNAL) { - int set_val = 0; - int aud_arch_type = GetAudioArchitectureTypeCFG(); - - if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { - if (muteStatus == CC_AUDIO_MUTE) { - set_val = CC_MUTE_ON; - } else if (muteStatus == CC_AUDIO_UNMUTE) { - set_val = CC_MUTE_OFF; - } else { - return -1; - } - - mAudioAlsa.SetExternalDacChannelSwitch(1, set_val); - mAudioAlsa.SetExternalDacChannelSwitch(2, set_val); - //showboz: can disable it - mAudioAlsa.SetExternalDacChannelSwitch(3, set_val); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_MUTE, muteStatus); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB) { - mCustomerCtrl.SetMute((muteStatus == CC_AUDIO_MUTE) ? CAudioCustomerCtrl::MUTE : CAudioCustomerCtrl::UNMUTE); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL) { - mAudioAlsa.SetDigitalMute(muteStatus); - } - mAudioAlsa.setAudioPcmPlaybackMute(muteStatus); - } - return tmp_ret; -} - -int CTv::SetAudioAVOutMute(int muteStatus) -{ - SSMSaveAudioAVOutMuteVal(muteStatus); - return mAudioAlsa.SetInternalDacMute(muteStatus); -} - -int CTv::GetAudioAVOutMute() -{ - int8_t tmp_ch = 0; - SSMReadAudioAVOutMuteVal(&tmp_ch); - return tmp_ch; -} - -int CTv::SetAudioSPDIFMute(int muteStatus) -{ - if (GetCurAudioSPDIFSwitch() == CC_SWITCH_OFF) { - muteStatus = CC_AUDIO_MUTE; - } - - SSMSaveAudioSPIDFMuteVal(muteStatus); - return mAudioAlsa.SetSPDIFMute(muteStatus); -} - -int CTv::GetAudioSPDIFMute() -{ - int8_t tmp_ch = 0; - SSMReadAudioSPIDFMuteVal(&tmp_ch); - return tmp_ch; -} - -int CTv::GetCurAudioSPDIFSwitch() -{ - return mCurAudioSPDIFSwitch; -} - -int CTv::SaveCurAudioSPDIFSwitch(int tmp_val) -{ - mCurAudioSPDIFSwitch = tmp_val; - SSMSaveAudioSPDIFSwitchVal(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSPDIFSwitch() -{ - int8_t tmp_ch = 0; - SSMReadAudioSPDIFSwitchVal(&tmp_ch); - mCurAudioSPDIFSwitch = tmp_ch; - if (mCurAudioSPDIFSwitch != CC_SWITCH_ON - && mCurAudioSPDIFSwitch != CC_SWITCH_OFF) { - SaveCurAudioSPDIFSwitch (CC_SWITCH_ON); - } - return mCurAudioSPDIFSwitch; -} - -//Audio SPDIF Mode -int CTv::SetAudioSPDIFMode(int tmp_val) -{ - LOGD("%s : val = %d\n", __FUNCTION__, tmp_val); - mCurAudioSPDIFMode = tmp_val; - SetSPDIFMode(tmp_val); - return 0; -} - -int CTv::GetCurAudioSPDIFMode() -{ - return mCurAudioSPDIFMode; -} - -int CTv::SaveCurAudioSPDIFMode(int tmp_val) -{ - mCurAudioSPDIFMode = tmp_val; - SSMSaveAudioSPDIFModeVal(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSPDIFMode() -{ - int8_t tmp_ch = 0; - SSMReadAudioSPDIFModeVal(&tmp_ch); - mCurAudioSPDIFMode = tmp_ch; - if (mCurAudioSPDIFMode != CC_SPDIF_MODE_PCM - && mCurAudioSPDIFMode != CC_SPDIF_MODE_RAW) { - SaveCurAudioSPDIFMode (CC_SPDIF_MODE_PCM); - } - return mCurAudioSPDIFMode; -} - -int CTv::SetAudioMasterVolume(int tmp_vol) -{ - LOGD("%s, tmp_vol = %d", __FUNCTION__, tmp_vol); - mCustomAudioMasterVolume = tmp_vol; - if (!isBootvideoStopped()) { - mBootvideoStatusDetectThread->startDetect(); - return 0; - } - if (GetUseAndroidVolEnable()) { - int master_vol; - master_vol = config_get_int(CFG_SECTION_TV, CFG_AUDIO_MASTER_VOL, 150); - mAudioAlsa.SetExternalDacChannelVolume(0, master_vol); - return 0; - } - - //Volume Compensation - tmp_vol += mVolumeCompensationVal; - - if (tmp_vol > CC_MAX_SOUND_VOL) { - tmp_vol = CC_MAX_SOUND_VOL; - } - - if (tmp_vol < CC_MIN_SOUND_VOL) { - tmp_vol = CC_MIN_SOUND_VOL; - } - - int tmp_ret = 0; - int aud_arch_type = GetAudioArchitectureTypeCFG(); - - if (aud_arch_type == CC_DAC_G9TV_INTERNAL_DAC) { - tmp_ret = mAudioAlsa.SetInternalDacMainVolume(tmp_vol); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { - int digit_vol = 0; - int vol_gain_val = 0; - int vol_buf[2] = {0, 0}; - - //handle l&r channel volume for balance - mAudioAlsa.CalculateBalanceVol(255, mMainVolumeBalanceVal, vol_buf); - - tmp_ret |= mAudioAlsa.SetExternalDacChannelVolume(1, vol_buf[0]); - tmp_ret |= mAudioAlsa.SetExternalDacChannelVolume(2, vol_buf[1]); - - //handle master channel volume - digit_vol = mAudioAlsa.TransVolumeBarVolToDigitalVol(mAudioAlsa.GetMainVolDigitLutBuf(), tmp_vol); - - vol_gain_val = mAudioAlsa.GetMainVolumeGain(); - digit_vol += vol_gain_val; - tmp_ret |= mAudioAlsa.SetExternalDacChannelVolume(0, digit_vol); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - tmp_ret = SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_VOLUME_BAR, tmp_vol); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB) { - tmp_ret = mCustomerCtrl.SetVolumeBar(tmp_vol); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL) { - int vol_buf[2] = {0, 0}; - mAudioAlsa.CalculateBalanceVol(tmp_vol, mMainVolumeBalanceVal, vol_buf); - tmp_ret = mAudioAlsa.SetDigitalMainVolume(vol_buf[0], vol_buf[1]); - } - if ( Get2d4gHeadsetEnable() == 1 ) { - setAudioPcmPlaybackVolume(tmp_vol); - } - return 0; -} - -int CTv::GetAudioMasterVolume() -{ - return mCustomAudioMasterVolume; -} - -int CTv::GetCurAudioMasterVolume() -{ - return mCurAudioMasterVolume; -} - -int CTv::SaveCurAudioMasterVolume(int tmp_vol) -{ - mCurAudioMasterVolume = tmp_vol; - SSMSaveAudioMasterVolume(tmp_vol); - return tmp_vol; -} - -int CTv::LoadCurAudioMasterVolume() -{ - int8_t tmp_ch = 0; - SSMReadAudioMasterVolume(&tmp_ch); - mCurAudioMasterVolume = tmp_ch; - if (mCurAudioMasterVolume < CC_MIN_SOUND_VOL - || mCurAudioMasterVolume > CC_MAX_SOUND_VOL) { - SaveCurAudioMasterVolume (CC_DEF_SOUND_VOL); - } - mCustomAudioMasterVolume = mCurAudioMasterVolume; - - return mCurAudioMasterVolume; -} - -int CTv::SetAudioBalance(int tmp_val) -{ - mCustomAudioBalance = tmp_val; - - int aud_arch_type = GetAudioArchitectureTypeCFG(); - int max_vol = config_get_int(CFG_SECTION_TV, CFG_AUDIO_BALANCE_MAX_VOL, 255); - - mMainVolumeBalanceVal = tmp_val; - - if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_BALANCE, mMainVolumeBalanceVal); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB) { - mCustomerCtrl.SetBlance(mMainVolumeBalanceVal); - } else { - int tmp_ret = 0; - int vol_buf[2] = {0, 0}; - mAudioAlsa.CalculateBalanceVol(max_vol, mMainVolumeBalanceVal, vol_buf); - - tmp_ret |= mAudioAlsa.SetExternalDacChannelVolume(1, vol_buf[0]); - tmp_ret |= mAudioAlsa.SetExternalDacChannelVolume(2, vol_buf[1]); - } - return 0; -} - -int CTv::GetAudioBalance() -{ - return mCustomAudioBalance; -} - -int CTv::GetCurAudioBalance() -{ - return mCurAudioBalance; -} - -int CTv::SaveCurAudioBalance(int tmp_val) -{ - mCurAudioBalance = tmp_val; - SSMSaveAudioBalanceVal(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioBalance() -{ - int8_t tmp_ch = 0; - SSMReadAudioBalanceVal(&tmp_ch); - mCurAudioBalance = tmp_ch; - if (mCurAudioBalance < CC_MIN_SOUND_BALANCE_VAL - || mCurAudioBalance > CC_MAX_SOUND_BALANCE_VAL) { - SaveCurAudioBalance (CC_DEF_SOUND_BALANCE_VAL); - } - - mCustomAudioBalance = mCurAudioBalance; - - return mCurAudioBalance; -} - -int CTv::SetAudioVolumeCompensationVal(int tmp_vol_comp_val) -{ - mVolumeCompensationVal = tmp_vol_comp_val; - LOGD("%s, new vol comp value = %d.\n", __FUNCTION__, tmp_vol_comp_val); - return mVolumeCompensationVal; -} - -int CTv::SetAudioSupperBassVolume(int tmp_vol) -{ - mCustomAudioSupperBassVolume = tmp_vol; - - int aud_arch_type = GetAudioArchitectureTypeCFG(); - int tmp_ret = 0; - - if (aud_arch_type == CC_DAC_G9TV_INTERNAL_DAC) { - return 0; - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { - int digit_vol = 0; - int vol_gain_val = 0; - - digit_vol = mAudioAlsa.TransVolumeBarVolToDigitalVol(mAudioAlsa.GetMainVolDigitLutBuf(), tmp_vol); - - vol_gain_val = mAudioAlsa.GetSupperBassVolumeGain(); - digit_vol += vol_gain_val; - if (digit_vol < CC_MIN_DAC_SUB_WOOFER_VOLUME) { - digit_vol = CC_MIN_DAC_SUB_WOOFER_VOLUME; - } else if (digit_vol > CC_MAX_DAC_SUB_WOOFER_VOLUME) { - digit_vol = CC_MAX_DAC_SUB_WOOFER_VOLUME; - } - - tmp_ret = mAudioAlsa.SetExternalDacChannelVolume(3, digit_vol); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - tmp_ret = SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_SUBCHANNEL_VOLUME, tmp_vol); - } - - return tmp_ret; -} - -int CTv::GetAudioSupperBassVolume() -{ - return mCustomAudioSupperBassVolume; -} - -int CTv::GetCurAudioSupperBassVolume() -{ - return mCurAudioSupperBassVolume; -} - -int CTv::SaveCurAudioSupperBassVolume(int tmp_vol) -{ - mCurAudioSupperBassVolume = tmp_vol; - SSMSaveAudioSupperBassVolume(tmp_vol); - - return tmp_vol; -} - -int CTv::LoadCurAudioSupperBassVolume() -{ - int8_t tmp_ch = 0; - SSMReadAudioSupperBassVolume(&tmp_ch); - mCurAudioSupperBassVolume = tmp_ch; - if (mCurAudioSupperBassVolume < CC_MIN_SUPPERBASS_VOL - || mCurAudioSupperBassVolume > CC_MAX_SUPPERBASS_VOL) { - SaveCurAudioSupperBassVolume (CC_DEF_SUPPERBASS_VOL); - } - mCustomAudioSupperBassVolume = mCurAudioSupperBassVolume; - - return mCurAudioSupperBassVolume; -} - -int CTv::SetAudioSupperBassSwitch(int tmp_val) -{ - mCustomAudioSupperBassSwitch = tmp_val; - - if (GetAudioSupperBassSwitch() == CC_SWITCH_OFF) { - return SetAudioSupperBassVolume(CC_MIN_SUPPERBASS_VOL); - } - - return SetAudioSupperBassVolume(GetAudioSupperBassVolume()); -} - -int CTv::GetAudioSupperBassSwitch() -{ - if (GetAudioSupperBassSwitchDisableCFG() != 0) { - return CC_SWITCH_ON; - } - - return mCustomAudioSupperBassSwitch; -} - -int CTv::GetCurAudioSupperBassSwitch() -{ - if (GetAudioSupperBassSwitchDisableCFG() != 0) { - return CC_SWITCH_ON; - } - - return mCurAudioSupperBassSwitch; -} - -int CTv::SaveCurAudioSupperBassSwitch(int tmp_val) -{ - mCurAudioSupperBassSwitch = tmp_val; - SSMSaveAudioSupperBassSwitch(tmp_val); - SetSupperBassSRSSpeakerSize(); - return tmp_val; -} - -int CTv::LoadCurAudioSupperBassSwitch() -{ - int8_t tmp_ch = 0; - SSMReadAudioSupperBassSwitch(&tmp_ch); - mCurAudioSupperBassSwitch = tmp_ch; - if (mCurAudioSupperBassSwitch != CC_SWITCH_ON - && mCurAudioSupperBassSwitch != CC_SWITCH_OFF) { - SaveCurAudioSupperBassSwitch (CC_SWITCH_OFF); - } - mCustomAudioSupperBassSwitch = mCurAudioSupperBassSwitch; - - return mCurAudioSupperBassSwitch; -} - -void CTv::SetSupperBassSRSSpeakerSize() -{ - int tmp_speakersize = -1; - - if (GetAudioSrsTruBass() == CC_SWITCH_ON) { - tmp_speakersize = GetAudioSRSSupperBassTrubassSpeakerSizeCfg(); - if (tmp_speakersize >= 0) { - mAudioEffect.SetSrsTrubassSpeakerSize(tmp_speakersize); - } - } -} - -int CTv::SetAudioSRSSurround(int tmp_val) -{ - mCustomAudioSRSSurround = tmp_val; - RefreshSrsEffectAndDacGain(); - return 0; -} - -int CTv::GetAudioSRSSurround() -{ - return mCustomAudioSRSSurround; -} - -int CTv::GetCurAudioSRSSurround() -{ - return mCurAudioSRSSurround; -} - -int CTv::SaveCurAudioSrsSurround(int tmp_val) -{ - mCurAudioSRSSurround = tmp_val; - SSMSaveAudioSRSSurroundSwitch(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSrsSurround() -{ - int8_t tmp_ch = 0; - - SSMReadAudioSRSSurroundSwitch(&tmp_ch); - mCurAudioSRSSurround = tmp_ch; - if (mCurAudioSRSSurround != CC_SWITCH_ON - && mCurAudioSRSSurround != CC_SWITCH_OFF) { - SaveCurAudioSrsSurround (CC_SWITCH_OFF); - } - mCustomAudioSRSSurround = mCurAudioSRSSurround; - - return mCurAudioSRSSurround; -} - -int CTv::SetAudioSrsDialogClarity(int tmp_val) -{ - mCustomAudioSrsDialogClarity = tmp_val; - RefreshSrsEffectAndDacGain(); - return 0; -} - -int CTv::GetAudioSrsDialogClarity() -{ - return mCustomAudioSrsDialogClarity; -} - -int CTv::GetCurAudioSrsDialogClarity() -{ - return mCurAudioSrsDialogClarity; -} - -int CTv::SaveCurAudioSrsDialogClarity(int tmp_val) -{ - mCurAudioSrsDialogClarity = tmp_val; - SSMSaveAudioSRSDialogClaritySwitch(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSrsDialogClarity() -{ - int8_t tmp_ch = 0; - - SSMReadAudioSRSDialogClaritySwitch(&tmp_ch); - mCurAudioSrsDialogClarity = tmp_ch; - if (mCurAudioSrsDialogClarity != CC_SWITCH_ON - && mCurAudioSrsDialogClarity != CC_SWITCH_OFF) { - SaveCurAudioSrsDialogClarity (CC_SWITCH_OFF); - } - mCustomAudioSrsDialogClarity = mCurAudioSrsDialogClarity; - - return mCurAudioSrsDialogClarity; -} - -int CTv::SetAudioSrsTruBass(int tmp_val) -{ - mCustomAudioSrsTruBass = tmp_val; - RefreshSrsEffectAndDacGain(); - return 0; -} - -int CTv::GetAudioSrsTruBass() -{ - return mCustomAudioSrsTruBass; -} - -int CTv::GetCurAudioSrsTruBass() -{ - return mCurAudioSrsTruBass; -} - -int CTv::SaveCurAudioSrsTruBass(int tmp_val) -{ - mCurAudioSrsTruBass = tmp_val; - SSMSaveAudioSRSTruBassSwitch(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSrsTruBass() -{ - int8_t tmp_ch = 0; - - SSMReadAudioSRSTruBassSwitch(&tmp_ch); - mCurAudioSrsTruBass = tmp_ch; - if (mCurAudioSrsTruBass != CC_SWITCH_ON - && mCurAudioSrsTruBass != CC_SWITCH_OFF) { - SaveCurAudioSrsTruBass (CC_SWITCH_OFF); - } - mCustomAudioSrsTruBass = mCurAudioSrsTruBass; - - return mCurAudioSrsTruBass; -} - -void CTv::RefreshSrsEffectAndDacGain() -{ - int tmp_gain_val = 0; - int surround_switch = CC_SWITCH_OFF; - int trubass_switch = CC_SWITCH_OFF; - int dialogclarity_switch = CC_SWITCH_OFF; - trubass_switch = GetAudioSrsTruBass(); - dialogclarity_switch = GetAudioSrsDialogClarity(); - surround_switch = GetAudioSRSSurround(); - - if (GetAudioSRSSourroundEnableCFG() == 0) { - return; - } - - if (surround_switch == CC_SWITCH_ON) { - mAudioEffect.SetSrsSurroundSwitch(CC_SWITCH_ON); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_SOURROUND_GAIN, 50); - mAudioEffect.SetSrsSurroundGain(tmp_gain_val); - - int input_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_INPUT_GAIN, 50); - int out_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_OUTPUT_GAIN, 50); - mAudioEffect.SetSrsInputOutputGain(input_gain_val, out_gain_val); - - if (trubass_switch == CC_SWITCH_ON - && dialogclarity_switch == CC_SWITCH_OFF) { - - mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_ON); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_TRUBASS_GAIN, 50); - mAudioEffect.SetSrsTruBassGain(tmp_gain_val); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_TRUBASS_SPEAKERSIZE, 2); - mAudioEffect.SetSrsTrubassSpeakerSize(tmp_gain_val); - - mAudioEffect.SetSrsDialogClaritySwitch (CC_SWITCH_OFF); - - } else if (trubass_switch == CC_SWITCH_OFF - && dialogclarity_switch == CC_SWITCH_ON) { - - mAudioEffect.SetSrsDialogClaritySwitch (CC_SWITCH_ON); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_CLARITY_GAIN, 30); - mAudioEffect.SetSrsDialogClarityGain(tmp_gain_val); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_DEFINITION_GAIN, 20); - mAudioEffect.SetSrsDefinitionGain(tmp_gain_val); - - mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_OFF); - - } else if (trubass_switch == CC_SWITCH_ON - && dialogclarity_switch == CC_SWITCH_ON) { - - mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_ON); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_TRUBASS_GAIN, 50); - mAudioEffect.SetSrsTruBassGain(tmp_gain_val); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_TRUBASS_SPEAKERSIZE, 2); - mAudioEffect.SetSrsTrubassSpeakerSize(tmp_gain_val); - - mAudioEffect.SetSrsDialogClaritySwitch(CC_SWITCH_ON); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_CLARITY_GAIN, 30); - mAudioEffect.SetSrsDialogClarityGain(tmp_gain_val); - tmp_gain_val = GetAudioSRSGainCfg(CFG_AUDIO_SRS_DEFINITION_GAIN, 20); - mAudioEffect.SetSrsDefinitionGain(tmp_gain_val); - - } else if (trubass_switch == CC_SWITCH_OFF - && dialogclarity_switch == CC_SWITCH_OFF) { - mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_OFF); - mAudioEffect.SetSrsDialogClaritySwitch(CC_SWITCH_OFF); - } - SetSupperBassSRSSpeakerSize(); - } else { - mAudioEffect.SetSrsSurroundSwitch (CC_SWITCH_OFF); - mAudioEffect.SetSrsTruBassSwitch(CC_SWITCH_OFF); - mAudioEffect.SetSrsDialogClaritySwitch(CC_SWITCH_OFF); - } - //Refesh DAC gain - int main_gain_val = 0; - if (surround_switch == CC_SWITCH_ON) { - main_gain_val = GetAudioEffectAmplifierGainCfg(CFG_AUDIO_SRS_SOURROUND_MASTER_GAIN, 6, 24); - if (dialogclarity_switch == CC_SWITCH_ON - && trubass_switch == CC_SWITCH_OFF) { - main_gain_val = GetAudioEffectAmplifierGainCfg(CFG_AUDIO_SRS_CLARITY_MASTER_GAIN, 6, 24); - } else if (dialogclarity_switch == CC_SWITCH_OFF - && trubass_switch == CC_SWITCH_ON) { - main_gain_val = GetAudioEffectAmplifierGainCfg(CFG_AUDIO_SRS_TRUBASS_MASTER_GAIN, 6, 24); - } else if (dialogclarity_switch == CC_SWITCH_ON - && trubass_switch == CC_SWITCH_ON) { - main_gain_val = GetAudioEffectAmplifierGainCfg(CFG_AUDIO_SRS_TRUBASS_CLARITY_MASTER_GAIN, 6, 24); - } - } - mAudioAlsa.SetMainVolumeGain(main_gain_val); -} - -int CTv::SetAudioVirtualizer(int enable, int EffectLevel) -{ - config_set_int(CFG_SECTION_TV, CFG_AUDIO_VIRTUAL_ENABLE, enable); - config_set_int(CFG_SECTION_TV, CFG_AUDIO_VIRTUAL_LEVEL, EffectLevel); - return mAudioEffect.SetAudioVirtualizer(enable, EffectLevel); -} - -int CTv::GetAudioVirtualizerEnable() -{ - return config_get_int(CFG_SECTION_TV, CFG_AUDIO_VIRTUAL_ENABLE, 0); -} - -int CTv::GetAudioVirtualizerLevel() -{ - return config_get_int(CFG_SECTION_TV, CFG_AUDIO_VIRTUAL_LEVEL, 100); -} - -int CTv::LoadAudioVirtualizer() -{ - return SetAudioVirtualizer(GetAudioVirtualizerEnable(), GetAudioVirtualizerLevel()); -} - -int CTv::SetAudioBassVolume(int tmp_vol) { - int nMinBassVol = 0, nMaxBassVol = 0; - - nMinBassVol = GetBassUIMinGainVal(); - nMaxBassVol = GetBassUIMaxGainVal(); - - if (tmp_vol < nMinBassVol || tmp_vol > nMaxBassVol) { - tmp_vol = (nMaxBassVol + nMinBassVol) / 2; - } - - mCustomAudioBassVolume = tmp_vol; - tmp_vol = MappingTrebleBassAndEqualizer(GetAudioBassVolume(), 0, - nMinBassVol, nMaxBassVol); - return SetSpecialIndexEQGain(CC_EQ_BASS_IND, tmp_vol); -} - -int CTv::GetAudioBassVolume() -{ - return mCustomAudioBassVolume; -} - -int CTv::GetCurAudioBassVolume() -{ - return mCurAudioBassVolume; -} - -int CTv::SaveCurAudioBassVolume(int tmp_vol) -{ - int nMinBassVol = 0, nMaxBassVol = 0; - - nMinBassVol = GetBassUIMinGainVal(); - nMaxBassVol = GetBassUIMaxGainVal(); - - if (tmp_vol < nMinBassVol || tmp_vol > nMaxBassVol) { - tmp_vol = (nMaxBassVol + nMinBassVol) / 2; - } - - RealSaveCurAudioBassVolume(tmp_vol, 1); - - tmp_vol = MappingTrebleBassAndEqualizer(GetCurAudioBassVolume(), 0, - nMinBassVol, nMaxBassVol); - return SaveSpecialIndexEQGain(CC_EQ_BASS_IND, tmp_vol); -} - -int CTv::RealSaveCurAudioBassVolume(int tmp_vol, int sound_mode_judge) -{ - mCurAudioBassVolume = tmp_vol; - SSMSaveAudioBassVolume(tmp_vol); - - if (sound_mode_judge == 1) { - if (GetAudioSoundMode() != CC_SOUND_MODE_USER) { - SaveCurAudioSoundMode (CC_SOUND_MODE_USER); - mCustomAudioSoundMode = mCurAudioSoundMode; - } - } - return mCurAudioBassVolume; -} - -int CTv::LoadCurAudioBassVolume() -{ - int nMinBassVol = 0, nMaxBassVol = 0; - int8_t tmp_ch = 0; - - nMinBassVol = GetBassUIMinGainVal(); - nMaxBassVol = GetBassUIMaxGainVal(); - - SSMReadAudioBassVolume(&tmp_ch); - mCurAudioBassVolume = tmp_ch; - if (mCurAudioBassVolume < nMinBassVol - || mCurAudioBassVolume > nMaxBassVol) { - RealSaveCurAudioBassVolume((nMaxBassVol + nMinBassVol) / 2, 0); - } - - mCustomAudioBassVolume = mCurAudioBassVolume; - return mCurAudioBassVolume; -} - -int CTv::SetAudioTrebleVolume(int tmp_vol) -{ - int nMinTrebleVol = 0, nMaxTrebleVol = 0; - - nMinTrebleVol = GetTrebleUIMinGainVal(); - nMaxTrebleVol = GetTrebleUIMaxGainVal(); - - if (tmp_vol < nMinTrebleVol || tmp_vol > nMaxTrebleVol) { - tmp_vol = (nMaxTrebleVol + nMinTrebleVol) / 2; - } - - mCustomAudioTrebleVolume = tmp_vol; - - tmp_vol = MappingTrebleBassAndEqualizer(GetAudioTrebleVolume(), 0, - nMinTrebleVol, nMaxTrebleVol); - return SetSpecialIndexEQGain(CC_EQ_TREBLE_IND, tmp_vol); -} - -int CTv::GetAudioTrebleVolume() -{ - return mCustomAudioTrebleVolume; -} - -int CTv::GetCurAudioTrebleVolume() -{ - return mCurAudioTrebleVolume; -} - -int CTv::SaveCurAudioTrebleVolume(int tmp_vol) -{ - int nMinTrebleVol = 0, nMaxTrebleVol = 0; - - nMinTrebleVol = GetTrebleUIMinGainVal(); - nMaxTrebleVol = GetTrebleUIMaxGainVal(); - - if (tmp_vol < nMinTrebleVol || tmp_vol > nMaxTrebleVol) { - tmp_vol = (nMaxTrebleVol + nMinTrebleVol) / 2; - } - - RealSaveCurAudioTrebleVolume(tmp_vol, 1); - - tmp_vol = MappingTrebleBassAndEqualizer(GetCurAudioTrebleVolume(), 0, - nMinTrebleVol, nMaxTrebleVol); - return SaveSpecialIndexEQGain(CC_EQ_TREBLE_IND, tmp_vol); -} - -int CTv::RealSaveCurAudioTrebleVolume(int tmp_vol, int sound_mode_judge) -{ - mCurAudioTrebleVolume = tmp_vol; - SSMSaveAudioTrebleVolume(tmp_vol); - - if (sound_mode_judge == 1) { - if (GetAudioSoundMode() != CC_SOUND_MODE_USER) { - SaveCurAudioSoundMode (CC_SOUND_MODE_USER); - mCustomAudioSoundMode = mCurAudioSoundMode; - } - } - - return mCurAudioTrebleVolume; -} - -int CTv::LoadCurAudioTrebleVolume() -{ - int nMinTrebleVol = 0, nMaxTrebleVol = 0; - int8_t tmp_ch = 0; - - nMinTrebleVol = GetTrebleUIMinGainVal(); - nMaxTrebleVol = GetTrebleUIMaxGainVal(); - - SSMReadAudioTrebleVolume(&tmp_ch); - mCurAudioTrebleVolume = tmp_ch; - if (mCurAudioTrebleVolume < nMinTrebleVol - || mCurAudioTrebleVolume > nMaxTrebleVol) { - RealSaveCurAudioTrebleVolume((nMaxTrebleVol + nMinTrebleVol) / 2, 0); - } - - mCustomAudioTrebleVolume = mCurAudioTrebleVolume; - return mCurAudioTrebleVolume; -} - -int CTv::SetAudioSoundMode(int tmp_val) -{ - mCustomAudioSoundMode = tmp_val; - SetSpecialModeEQGain(mCustomAudioSoundMode); - - HandleTrebleBassVolume(); - return 0; -} - -int CTv::GetAudioSoundMode() -{ - return mCustomAudioSoundMode; -} - -int CTv::GetCurAudioSoundMode() -{ - return mCurAudioSoundMode; -} - -int CTv::SaveCurAudioSoundMode(int tmp_val) -{ - mCurAudioSoundMode = tmp_val; - SSMSaveAudioSoundModeVal(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioSoundMode() -{ - int8_t tmp_ch = 0; - SSMReadAudioSoundModeVal(&tmp_ch); - mCurAudioSoundMode = tmp_ch; - if (mCurAudioSoundMode < CC_SOUND_MODE_START - || mCurAudioSoundMode > CC_SOUND_MODE_END) { - SaveCurAudioSoundMode (CC_SOUND_MODE_STD); - } - mCustomAudioSoundMode = mCurAudioSoundMode; - return mCurAudioSoundMode; -} - -int CTv::HandleTrebleBassVolume() -{ - int tmp_vol = 0; - int tmpEQGainBuf[128] = { 0 }; - int8_t tmp_ch = 0; - - GetCustomEQGain(tmpEQGainBuf); - - tmp_vol = MappingTrebleBassAndEqualizer(tmpEQGainBuf[CC_EQ_TREBLE_IND], 1, - GetTrebleUIMinGainVal(), GetTrebleUIMaxGainVal()); - mCustomAudioTrebleVolume = tmp_vol; - mCurAudioTrebleVolume = mCustomAudioTrebleVolume; - tmp_ch = mCustomAudioTrebleVolume; - SSMSaveAudioTrebleVolume(tmp_ch); - - tmp_vol = MappingTrebleBassAndEqualizer(tmpEQGainBuf[CC_EQ_BASS_IND], 1, - GetBassUIMinGainVal(), GetBassUIMaxGainVal()); - mCustomAudioBassVolume = tmp_vol; - mCurAudioBassVolume = mCustomAudioBassVolume; - tmp_ch = mCustomAudioBassVolume; - SSMSaveAudioBassVolume(tmp_ch); - return 0; -} - -int CTv::SetAudioWallEffect(int tmp_val) -{ - int tmp_treble_val; - int tmp_type = 0; - - mCustomAudioWallEffect = tmp_val; - - tmp_type = GetAudioWallEffectTypeCfg(); - if (tmp_type == 0) { - SetCustomEQGain(); - } else if (tmp_type == 1) { - int aud_arch_type = GetAudioArchitectureTypeCFG(); - if (aud_arch_type == CC_DAC_G9TV_INTERNAL_DAC) { - return 0; - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { - mAudioAlsa.SetExternalDacEQMode(tmp_val); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_EQ_MODE, tmp_val); - } - } - return 0; -} - -int CTv::GetAudioWallEffect() -{ - return mCustomAudioWallEffect; -} - -int CTv::GetCurAudioWallEffect() -{ - return mCurAudioWallEffect; -} - -int CTv::SaveCurAudioWallEffect(int tmp_val) -{ - mCurAudioWallEffect = tmp_val; - SSMSaveAudioWallEffectSwitch(tmp_val); - return tmp_val; -} - -int CTv::LoadCurAudioWallEffect() -{ - int8_t tmp_ch = 0; - SSMReadAudioWallEffectSwitch(&tmp_ch); - mCurAudioWallEffect = tmp_ch; - if (mCurAudioWallEffect != CC_SWITCH_ON - && mCurAudioWallEffect != CC_SWITCH_OFF) { - SaveCurAudioWallEffect (CC_SWITCH_OFF); - } - - mCustomAudioWallEffect = mCurAudioWallEffect; - return mCurAudioWallEffect; -} - -int CTv::SetAudioEQMode(int tmp_val) -{ - mCustomAudioEQMode = tmp_val; - return 0; -} - -int CTv::GetAudioEQMode() -{ - return mCustomAudioEQMode; -} - -int CTv::GetCurAudioEQMode() -{ - return mCurAudioEQMode; -} - -int CTv::SaveCurAudioEQMode(int tmp_val) -{ - mCurAudioEQMode = tmp_val; - SSMSaveAudioEQModeVal(tmp_val); - - return tmp_val; -} - -int CTv::LoadCurAudioEQMode() -{ - int8_t tmp_ch = 0; - SSMReadAudioEQModeVal(&tmp_ch); - mCurAudioEQMode = tmp_ch; - if (mCurAudioEQMode < CC_EQ_MODE_START - || mCurAudioEQMode > CC_EQ_MODE_END) { - SaveCurAudioEQMode (CC_EQ_MODE_START); - } - mCustomAudioEQMode = mCurAudioEQMode; - - return mCurAudioEQMode; -} - -int CTv::GetAudioEQRange(int range_buf[]) -{ - range_buf[0] = CC_MIN_EQ_GAIN_VAL; - range_buf[1] = CC_MAX_EQ_GAIN_VAL; - return 0; -} - -int CTv::GetAudioEQBandCount() -{ - return mAudioEffect.GetEQBandCount(); -} - -int CTv::SetAudioEQGain(int gain_buf[]) -{ - return AudioSetEQGain(gain_buf); -} - -int CTv::GetAudioEQGain(int gain_buf[]) -{ - return GetCustomEQGain(gain_buf); -} - -int CTv::GetCurAudioEQGain(int gain_buf[]) -{ - RealReadCurAudioEQGain(gain_buf); - return 0; -} - -int CTv::SaveCurAudioEQGain(int gain_buf[]) -{ - return RealSaveCurAudioEQGain(gain_buf, 1); -} - -int CTv::RealReadCurAudioEQGain(int gain_buf[]) -{ - ArrayCopy(gain_buf, mCurEQGainBuf, GetAudioEQBandCount()); - return 0; -} - -int CTv::RealSaveCurAudioEQGain(int gain_buf[], int sound_mode_judge) -{ - ArrayCopy(mCurEQGainBuf, gain_buf, GetAudioEQBandCount()); - ArrayCopy(mCurEQGainChBuf, gain_buf, GetAudioEQBandCount()); - SSMSaveAudioEQGain(0, GetAudioEQBandCount(), mCurEQGainChBuf); - - if (sound_mode_judge == 1) { - HandleTrebleBassVolume(); - SaveCurAudioSoundMode (CC_SOUND_MODE_USER); - mCustomAudioSoundMode = mCurAudioSoundMode; - } - - return 0; -} - -int CTv::LoadCurAudioEQGain() -{ - SSMReadAudioEQGain(0, GetAudioEQBandCount(), mCurEQGainChBuf); - ArrayCopy(mCurEQGainBuf, mCurEQGainChBuf, GetAudioEQBandCount()); - - for (int i = 0; i < GetAudioEQBandCount(); i++) { - if (mCurEQGainBuf[i] & 0x80) { - mCurEQGainBuf[i] = mCurEQGainBuf[i] - 256; - } - } - return 0; -} - -int CTv::SetAudioEQSwitch(int switch_val) -{ - return mAudioEffect.SetEQSwitch(switch_val); -} - -int CTv::GetBassUIMinGainVal() -{ - return 0; -} - -int CTv::GetBassUIMaxGainVal() -{ - return 100; -} - -int CTv::GetTrebleUIMinGainVal() -{ - return 0; -} - -int CTv::GetTrebleUIMaxGainVal() -{ - return 100; -} - -int CTv::MappingLine(int map_val, int src_min, int src_max, int dst_min, int dst_max) -{ - if (dst_min < 0) { - return (map_val - (src_max + src_min) / 2) * (dst_max - dst_min) - / (src_max - src_min); - } else { - return (map_val - src_min) * (dst_max - dst_min) / (src_max - src_min); - } -} - -int CTv::MappingTrebleBassAndEqualizer(int tmp_vol, int direct, int tb_min, int tb_max) -{ - int tmp_ret = 0; - - if (direct == 0) { - tmp_ret = MappingLine(tmp_vol, tb_min, tb_max, CC_EQ_DEF_UI_MIN_GAIN, CC_EQ_DEF_UI_MAX_GAIN); - } else { - tmp_ret = MappingLine(tmp_vol, CC_EQ_DEF_UI_MIN_GAIN, CC_EQ_DEF_UI_MAX_GAIN, tb_min, tb_max); - } - - LOGD("%s, tmp_vol = %d, direct = %d, tmp_ret = %d\n", __FUNCTION__, tmp_vol, - direct, tmp_ret); - - return tmp_ret; -} - -int CTv::MappingEQGain(int src_gain_buf[], int dst_gain_buf[], int direct) -{ - int i = 0; - int nMinUIVal = 0, nMaxUIVal = 0, nMinVal = 0, nMaxVal = 0; - - nMinUIVal = CC_EQ_DEF_UI_MIN_GAIN; - nMaxUIVal = CC_EQ_DEF_UI_MAX_GAIN; - nMinVal = CC_MIN_EQ_GAIN_VAL; - nMaxVal = CC_MAX_EQ_GAIN_VAL; - - if (nMinUIVal >= nMinVal && nMaxUIVal <= nMaxVal) { - for (i = 0; i < GetAudioEQBandCount(); i++) { - dst_gain_buf[i] = src_gain_buf[i]; - } - } else { - for (i = 0; i < GetAudioEQBandCount(); i++) { - if (direct == 0) { - dst_gain_buf[i] = MappingLine(src_gain_buf[i], nMinUIVal, - nMaxUIVal, nMinVal, nMaxVal); - } else { - dst_gain_buf[i] = MappingLine(src_gain_buf[i], nMinVal, nMaxVal, - nMinUIVal, nMaxUIVal); - } - } - } - return 0; -} - -int CTv::RestoreToAudioDefEQGain(int gain_buf[]) -{ - int i = 0; - - for (i = 0; i < GetAudioEQBandCount(); i++) { - gain_buf[i] = (CC_EQ_DEF_UI_MAX_GAIN + CC_EQ_DEF_UI_MIN_GAIN) / 2; - } - - ArrayCopy(mCurEQGainBuf, gain_buf, GetAudioEQBandCount()); - ArrayCopy(mCurEQGainChBuf, gain_buf, GetAudioEQBandCount()); - SSMSaveAudioEQGain(0, GetAudioEQBandCount(), mCurEQGainChBuf); - - HandleTrebleBassVolume(); - SaveCurAudioSoundMode (CC_SOUND_MODE_STD); - mCustomAudioSoundMode = mCurAudioSoundMode; - return 0; -} - -int CTv::GetCustomEQGain(int gain_buf[]) -{ - ArrayCopy(gain_buf, mCustomEQGainBuf, GetAudioEQBandCount()); - return 0; -} - -int CTv::SetCustomEQGain() -{ - int tmpEQGainBuf[128] = { 0 }; - - if (MappingEQGain(mCustomEQGainBuf, tmpEQGainBuf, 0) < 0) { - return -1; - } - - return RealSetEQGain(tmpEQGainBuf); -} - -int CTv::AudioSetEQGain(int gain_buf[]) -{ - int tmpEQGainBuf[128] = { 0 }; - - ArrayCopy(mCustomEQGainBuf, gain_buf, GetAudioEQBandCount()); - - if (MappingEQGain(mCustomEQGainBuf, tmpEQGainBuf, 0) < 0) { - return -1; - } - - return RealSetEQGain(tmpEQGainBuf); -} - -int CTv::handleEQGainBeforeSet(int src_buf[], int dst_buf[]) -{ - int i = 0, nMinGain, nMaxGain; - - nMinGain = CC_MIN_EQ_GAIN_VAL; - nMaxGain = CC_MAX_EQ_GAIN_VAL; - - if (GetAudioWallEffect() == CC_SWITCH_ON && GetAudioWallEffectTypeCfg() == 0) { - for (i = 0; i < GetAudioEQBandCount(); i++) { - dst_buf[i] = WALL_EFFECT_VALUE[i] + src_buf[i]; - - if (dst_buf[i] < nMinGain) { - dst_buf[i] = nMinGain; - } - - if (dst_buf[i] > nMaxGain) { - dst_buf[i] = nMaxGain; - } - } - } else { - for (i = 0; i < GetAudioEQBandCount(); i++) { - dst_buf[i] = src_buf[i]; - } - } - - return 0; -} - -int CTv::RealSetEQGain(int gain_buf[]) -{ - if (GetAudioWallEffect() == CC_SWITCH_ON && GetAudioWallEffectTypeCfg() == 0) { - for (int i = 0; i < GetAudioEQBandCount(); i++) { - gain_buf[i] = WALL_EFFECT_VALUE[i] + gain_buf[i]; - - if (gain_buf[i] < CC_MIN_EQ_GAIN_VAL) { - gain_buf[i] = CC_MIN_EQ_GAIN_VAL; - } - - if (gain_buf[i] > CC_MAX_EQ_GAIN_VAL) { - gain_buf[i] = CC_MAX_EQ_GAIN_VAL; - } - } - } - - mAudioEffect.SetEQValue(gain_buf); - return 0; -} - -int CTv::SetAtvInGain(int gain_val) -{ - char set_str[32] = {0}; - - sprintf ( set_str, "audio_gain_set %x", gain_val ); - return tvWriteSysfs ( SYS_ATV_DEMOD_DEBUG, set_str ); -} - -int CTv::SetSpecialModeEQGain(int tmp_val) -{ - int tmpEQPresetBufPtr[24]; - if (GetAudioEQPresetBufferPtr(tmpEQPresetBufPtr) != 0) { - GetDefault_EQGain_Table(tmpEQPresetBufPtr); - } - int tmpEQGainBuf[128] = { 0 }; - - if (tmp_val == CC_SOUND_MODE_USER) { - RealReadCurAudioEQGain(tmpEQGainBuf); - } else { - ArrayCopy(tmpEQGainBuf, - tmpEQPresetBufPtr + tmp_val * GetAudioEQBandCount(), - GetAudioEQBandCount()); - } - - AudioSetEQGain(tmpEQGainBuf); - return tmp_val; -} - -int CTv::SetSpecialIndexEQGain(int buf_index, int w_val) -{ - int tmpEQGainBuf[128] = { 0 }; - - if (buf_index >= 0 && buf_index < GetAudioEQBandCount()) { - RealReadCurAudioEQGain(tmpEQGainBuf); - tmpEQGainBuf[buf_index] = w_val; - - return AudioSetEQGain(tmpEQGainBuf); - } - return -1; -} - -int CTv::SaveSpecialIndexEQGain(int buf_index, int w_val) -{ - int tmpEQGainBuf[128] = { 0 }; - - if (buf_index >= 0 && buf_index < GetAudioEQBandCount()) { - RealReadCurAudioEQGain(tmpEQGainBuf); - tmpEQGainBuf[buf_index] = w_val; - - return RealSaveCurAudioEQGain(tmpEQGainBuf, 0); - } - - return 0; -} - -// amAudio -int CTv::OpenAmAudio(unsigned int sr, int input_device, int output_device) -{ - LOGD("OpenAmAudio input_device = %d", input_device); - return amAudioOpen(sr, input_device, output_device); -} - -int CTv::CloseAmAudio(void) -{ - return amAudioClose(); -} - -int CTv::setAmAudioPreMute(int mute) -{ - int ret = -1; - if (m_source_input == SOURCE_DTV) { - ret = mAv.AudioSetPreMute(mute); - } else { - ret = amAudioSetPreMute(mute); - } - return ret; -} - -int CTv::getAmAudioPreMute() -{ - unsigned int mute = -1; - if (m_source_input == SOURCE_DTV) { - mAv.AudioGetPreMute(&mute); - } else { - amAudioGetPreMute(&mute); - } - return mute; -} - -int CTv::setAmAudioVolume(float volume) -{ - float gain = 0; - gain = 20 * log10f(volume / 100); - - return setAmAudioPreGain(gain); -} - -float CTv::getAmAudioVolume() -{ - float volume = getAmAudioPreGain(); - volume = powf(10, volume / 20); - - return volume * 100; -} - -int CTv::saveAmAudioVolume(int volume, int source) -{ - return SSMSaveAmAudioVal(volume, source); -} - -int CTv::getSaveAmAudioVolume(int source) -{ - int volume = 0; - SSMReadAmAudioVal(&volume, source); - - return volume; -} - -int CTv::setAmAudioPreGain(float pre_gain) -{ - int ret = -1; - if (m_source_input == SOURCE_DTV) { - ret = mAv.AudioSetPreGain(pre_gain); - } else { - ret = amAudioSetPreGain(pre_gain); - } - return ret; -} - -float CTv::getAmAudioPreGain() -{ - float pre_gain = -1; - if (m_source_input == SOURCE_DTV) { - mAv.AudioGetPreGain(&pre_gain); - } else { - amAudioGetPreGain(&pre_gain); - } - return pre_gain; -} - -int CTv::SetAmAudioInputSr(unsigned int sr, int output_device) -{ - LOGD("SetAmAudioInputSr"); - return amAudioSetInputSr(sr, CC_IN_USE_SPDIF_DEVICE, output_device); -} - -int CTv::SetAmAudioOutputMode(int mode) -{ - if (mode != CC_AMAUDIO_OUT_MODE_DIRECT && mode != CC_AMAUDIO_OUT_MODE_INTER_MIX - && mode != CC_AMAUDIO_OUT_MODE_DIRECT_MIX) { - LOGE("[ctv]%s, mode error, it should be mix or direct!\n", __FUNCTION__); - return -1; - } - - return amAudioSetOutputMode(mode); -} - -int CTv::SetAmAudioMusicGain(int gain) -{ - return amAudioSetMusicGain(gain); -} - -int CTv::SetAmAudioLeftGain(int gain) -{ - return amAudioSetLeftGain(gain); -} - -int CTv::SetAmAudioRightGain(int gain) -{ - return amAudioSetRightGain(gain); -} - -int CTv::SetAudioDumpDataFlag(int tmp_flag) -{ - return amAudioSetDumpDataFlag(tmp_flag); -} - -int CTv::GetAudioDumpDataFlag() -{ - return amAudioGetDumpDataFlag(); -} - -void CTv::AudioSetVolumeDigitLUTBuf(int lut_table_index, int *MainVolLutBuf) -{ - int tmpDefDigitLutBuf[CC_LUT_BUF_SIZE] = { 0 }; - mAudioAlsa.SetMainVolDigitLutBuf(MainVolLutBuf); - - GetAudioAmpSupbassvolBuf(lut_table_index, tmpDefDigitLutBuf); - mAudioAlsa.SetSupperBassVolDigitLutBuf(tmpDefDigitLutBuf); -} - -int CTv::InitTvAudio(int sr, int input_device) -{ - OpenAmAudio(sr, input_device, CC_OUT_USE_AMAUDIO); - - RefreshSrsEffectAndDacGain(); - SetCustomEQGain(); - LoadAudioVirtualizer(); - return 0; -} - -int CTv::UnInitTvAudio() -{ - return CloseAmAudio(); -} - -int CTv::AudioChangeSampleRate(int sr) -{ - sr = HanldeAudioInputSr(sr); - - if (SetAmAudioInputSr(sr, CC_OUT_USE_AMAUDIO) != 0) { - return -1; - } - - RefreshSrsEffectAndDacGain(); - SetCustomEQGain(); - return 0; -} - -int CTv::AudioSetAudioInSource(int audio_src_in_type) -{ - return mAudioAlsa.SetAudioInSource(audio_src_in_type); -} - -int CTv::AudioSetAudioSourceType(int source_type) -{ - int aud_arch_type = GetAudioArchitectureTypeCFG(); - - if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC) { - SendCmdToOffBoardFBCExternalDac(AUDIO_CMD_SET_SOURCE, source_type); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB) { - mCustomerCtrl.SetSource(source_type); - } else if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL) { - } - return 0; -} - -int CTv::AudioLineInSelectChannel(int audio_channel) -{ - LOGD ("%s, audio_channel = %d", __FUNCTION__, audio_channel); - mAudioAlsa.SetInternalDacLineInSelectChannel(audio_channel); - return 0; -} - -int CTv::AudioSetLineInCaptureVolume(int l_vol, int r_vol) -{ - mAudioAlsa.SetInternalDacLineInCaptureVolume(l_vol, r_vol); - return 0; -} - -int CTv::openTvAudio() -{ - int tmp_val = 0; - - LOGD("%s, entering...\n", __FUNCTION__); - UnInitSetTvAudioCard(); - - tmp_val = GetAudioDumpDataEnableFlagCfg(); - SetAudioDumpDataFlag(tmp_val); - - tmp_val = GetAudioInternalDacPGAInGain_Cfg(); - mAudioAlsa.SetAudioInternalDacPGAInGain(tmp_val, tmp_val); - - mAudioAlsa.SetMixerBypassSwitch (CC_SWITCH_OFF); - mAudioAlsa.SetMixerDacSwitch (CC_SWITCH_ON); - - LoadAudioCtl(); - - RefreshSrsEffectAndDacGain(); - InitSetAudioCtl(); - return 0; -} - -void CTv::LoadAudioCtl() -{ - // Get Current Audio Volume - LoadCurAudioMasterVolume(); - - // Get Current Audio Balance - LoadCurAudioBalance(); - - // Get Current Supper Bass Switch - LoadCurAudioSupperBassSwitch(); - - // Get Current Supper Bass Volume - LoadCurAudioSupperBassVolume(); - - // Get Current SRSSurround - LoadCurAudioSrsSurround(); - - // Get Current SRS DialogClarity - LoadCurAudioSrsDialogClarity(); - - // Get Current SRS TruBass - LoadCurAudioSrsTruBass(); - - // Get Current Audio Sound Mode - LoadCurAudioSoundMode(); - - // Get Current Audio Bass and Treble - LoadCurAudioBassVolume(); - LoadCurAudioTrebleVolume(); - - // Get Current Wall Effect - LoadCurAudioWallEffect(); - - // Get Current spdif switch - LoadCurAudioSPDIFSwitch(); - - // Get Current spdif mode - LoadCurAudioSPDIFMode(); - - // Get Current EQ mode - LoadCurAudioEQMode(); - - // Get Current EQ Gain - LoadCurAudioEQGain(); - - //Get Current Virtual Effect status - LoadAudioVirtualizer(); -} bool CTv::isBootvideoStopped() { return mBootvideoStatusDetectThread == NULL || mBootvideoStatusDetectThread->isBootvideoStopped(); } -void CTv::InitSetAudioCtl() -{ - // Set Current Audio balance value - SetAudioBalance(GetAudioBalance()); - - // Set Current Audio Volume - SetAudioMasterVolume(GetAudioMasterVolume()); - - // Set Current Supper Bass Volume - SetAudioSupperBassVolume(GetAudioSupperBassVolume()); - - // Set Current Audio Sound Mode - SetAudioSoundMode(GetAudioSoundMode()); - - // Set Current Audio SPDIF Switch - SetAudioSPDIFSwitch(GetCurAudioSPDIFSwitch()); - - // Set Current Audio SPDIF mode - SetAudioSPDIFMode(GetCurAudioSPDIFMode()); -} - -int CTv::SetADC_Digital_Capture_Volume(int value) -{ - return mAudioAlsa.SetAudioInternalDacADCDigitalCaptureVolume( value, value); -} - -int CTv::SetPGA_IN_Value(int value) -{ - return mAudioAlsa.SetAudioInternalDacPGAInGain( value, value); -} - -int CTv::SetDAC_Digital_PlayBack_Volume(int value) -{ - return mAudioAlsa.SetAudioInternalDacDACDigitalPlayBackVolume( value, value); -} - -int CTv::setAudioPcmPlaybackVolume(int val) -{ - int pcm_volume = 0; - pcm_volume = val / 2; - if (pcm_volume > 24) pcm_volume = 24; - //return SetAudioPcmPlaybackVolume(pcm_volume); - return 0; -} - -int CTv::HanldeAudioInputSr(unsigned int sr) -{ - int tmp_cfg = 0; - - tmp_cfg = GetAudioResampleTypeCFG(); - if (tmp_cfg & CC_AUD_RESAMPLE_TYPE_HW) { - mAudioAlsa.SetHardwareResample(sr); - } else { - mAudioAlsa.SetHardwareResample(-1); - } - - if (!(tmp_cfg & CC_AUD_RESAMPLE_TYPE_SW)) { - sr = 48000; - } - - return sr; -} - -int CTv::AudioSSMRestoreDefaultSetting() -{ - int i = 0, tmp_val = 0; - int nMinUIVol = 0, nMaxUIVol = 0; - int *tmp_ptr = NULL; - int tmpEQGainBuf[128] = { 0 }; - unsigned char tmp_buf[CC_NO_LINE_POINTS_MAX_CNT] = { 0 }; - - // Save Current Audio Volume - SaveCurAudioMasterVolume (CC_DEF_SOUND_VOL); - - // Save Current Audio Balance - SaveCurAudioBalance (CC_DEF_SOUND_BALANCE_VAL); - - // Save Current Supper Bass Switch - SaveCurAudioSupperBassSwitch (CC_SWITCH_OFF); - - // Save Current Supper Bass Volume - SaveCurAudioSupperBassVolume (CC_DEF_SUPPERBASS_VOL); - - // Save Current SRSSurround - SaveCurAudioSrsSurround(CC_SWITCH_OFF); - - // Save Current SRS DialogClarity - SaveCurAudioSrsDialogClarity(CC_SWITCH_OFF); - - // Save Current SRS TruBass - SaveCurAudioSrsTruBass(CC_SWITCH_OFF); - - // Save Current Audio Sound Mode - SaveCurAudioSoundMode (CC_SOUND_MODE_STD); - - // Save Current Wall Effect - SaveCurAudioWallEffect(CC_SWITCH_OFF); - - // Save Current spdif switch - SaveCurAudioSPDIFSwitch (CC_SWITCH_ON); - - // Save Current spdif mode - SaveCurAudioSPDIFMode (CC_SPDIF_MODE_PCM); - - // Save Current avout and spidif mute state - SSMSaveAudioSPIDFMuteVal(CC_AUDIO_MUTE); - SSMSaveAudioAVOutMuteVal(CC_AUDIO_MUTE); - - // Save Current EQ mode - SaveCurAudioEQMode (CC_EQ_MODE_NOMAL); - - // Save Current EQ Gain - RestoreToAudioDefEQGain(tmpEQGainBuf); - - // Save Current Audio Bass and Treble - nMinUIVol = GetBassUIMinGainVal(); - nMaxUIVol = GetBassUIMaxGainVal(); - RealSaveCurAudioBassVolume((nMinUIVol + nMaxUIVol) / 2, 0); - - nMinUIVol = GetTrebleUIMinGainVal(); - nMaxUIVol = GetTrebleUIMaxGainVal(); - RealSaveCurAudioTrebleVolume((nMinUIVol + nMaxUIVol) / 2, 0); - return 0; -} - -int CTv::InitSetTvAudioCard() -{ - int captureIdx = -1; - char buf[32] = { 0 }; - char propValue[PROPERTY_VALUE_MAX]; - -#ifndef BOARD_ALSA_AUDIO_TINY - snd_card_refresh_info(); -#endif - - if (GetTvAudioCardNeedSet()) { - int totleNum = 0; - char cardName[64] = { 0 }; - - GetTvAudioCardName(cardName); - /* - memset(propValue, '\0', PROPERTY_VALUE_MAX); - property_get(PROP_AUDIO_CARD_NUM, propValue, "0"); - - totleNum = strtoul(propValue, NULL, 10); - LOGD("%s, totle number = %d\n", __FUNCTION__, totleNum); - */ - totleNum = 8; - - for (int i = 0; i < totleNum; i++) { - sprintf(buf, "snd.card.%d.name", i); - memset(propValue, '\0', PROPERTY_VALUE_MAX); - property_get(buf, propValue, "null"); - - LOGD("%s, key string \"%s\", value string \"%s\".\n", __FUNCTION__, buf, propValue); - if (strcmp(propValue, cardName) == 0) { - captureIdx = i; - break; - } - } - } - - sprintf(buf, "%d", captureIdx); - property_set(PROP_DEF_CAPTURE_NAME, buf); - LOGD("%s, set \"%s\" as \"%s\".\n", __FUNCTION__, PROP_DEF_CAPTURE_NAME, buf); - return 0; -} - -int CTv::UnInitSetTvAudioCard() -{ -#ifndef BOARD_ALSA_AUDIO_TINY - snd_card_refresh_info(); -#endif - property_set(PROP_DEF_CAPTURE_NAME, "-1"); - LOGD("%s, set [%s]:[-1]\n", __FUNCTION__, PROP_DEF_CAPTURE_NAME); - return 0; -} - -int CTv::SetSPDIFMode(int mode_val) -{ - tvWriteSysfs(SYS_SPDIF_MODE_DEV_PATH, mode_val); - return 0; -} - -int CTv::SwitchAVOutBypass(int sw) -{ - if (sw == 0 ) { - mAudioAlsa.SetMixerBypassSwitch ( CC_SWITCH_OFF ); - mAudioAlsa.SetMixerDacSwitch ( CC_SWITCH_ON ); - } else { - mAudioAlsa.SetMixerBypassSwitch ( CC_SWITCH_ON ); - mAudioAlsa.SetMixerDacSwitch ( CC_SWITCH_OFF ); - } - return 0; -} - -int CTv::SetAudioSwitchIO(int value) -{ - return mAudioAlsa.SetAudioSwitchIO( value); -} - -int CTv::SetOutput_Swap(int value) -{ - return mAudioAlsa.SetOutput_Swap( value); -} - int CTv::SendCmdToOffBoardFBCExternalDac(int cmd, int para) { int set_val = 0; @@ -5408,15 +3126,11 @@ int CTv::GetHdmiAvHotplugDetectOnoff() int CTv::SetHdmiEdidVersion(tv_hdmi_port_id_t port, tv_hdmi_edid_version_t version) { - SetAudioMuteForTv ( CC_AUDIO_MUTE ); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mAv.DisableVideoWithBlackColor(); mpTvin->Tvin_StopDecoder(); Tv_HDMIEDIDFileSelect(port, version); SSMSetHDMIEdid(port); mHDMIRxManager.HdmiRxEdidUpdate(); - mHDMIAudioCheckThread.initCheckState(); - mHDMIAudioCheckThread.resumeCheck(); return 0; } @@ -5528,7 +3242,6 @@ void CTv::onSetPQPCMode(int source, int status) LOGD("source = %d, m_source_input = %d, status = %d\n",source, m_source_input, status); if (( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_HDMI ) ) { if ((source == -1 ) || (source == (int)m_source_input)) { - SetAudioMuteForTv(CC_AUDIO_MUTE); if (status == 0) { CVpp::getInstance()->enableMonitorMode(false); @@ -5537,11 +3250,8 @@ void CTv::onSetPQPCMode(int source, int status) } tvin_port_t cur_port = mpTvin->Tvin_GetSourcePortBySourceInput(m_source_input); - mHDMIAudioCheckThread.requestAndWaitPauseCheck(); mpTvin->SwitchPort(cur_port); CVpp::getInstance()->Vpp_ResetLastVppSettingsSourceType(); - mHDMIAudioCheckThread.initCheckState(); - mHDMIAudioCheckThread.resumeCheck(1000); } } } diff --git a/tv/tvserver/libtv/tv/CTv.h b/tv/tvserver/libtv/tv/CTv.h index a8c2aa4..0cc8eec 100644 --- a/tv/tvserver/libtv/tv/CTv.h +++ b/tv/tvserver/libtv/tv/CTv.h @@ -31,7 +31,6 @@ #include "CTvSubtitle.h" #include "CAv.h" #include "CTvDmx.h" -#include "../audio/CTvAudio.h" #include "AutoBackLight.h" #include "CAutoPQparam.h" #include "CBootvideoStatusDetect.h" @@ -102,12 +101,21 @@ typedef enum TvRunStatus_s { TV_CLOSE_ED, } TvRunStatus_t; +enum CC_AUDIO_MUTE_STATUS { + CC_MUTE_ON, + CC_MUTE_OFF, +}; + +enum CC_AUDIO_MUTE_PARAM { + CC_AUDIO_UNMUTE, + CC_AUDIO_MUTE, +}; + class CTvPlayer; class CDTVTvPlayer; class CATVTvPlayer; -class CTv : public CTvin::CHDMIAudioCheck::IHDMIAudioCheckObserver, - public CDevicesPollStatusDetect::ISourceConnectObserver, +class CTv : public CDevicesPollStatusDetect::ISourceConnectObserver, public IUpgradeFBCObserver, public CTvSubtitle::IObserver, public CBootvideoStatusDetect::IBootvideoStatusObserver, @@ -204,9 +212,6 @@ public: virtual int stopPlayingLock(); virtual int resetFrontEndPara ( frontend_para_set_t feParms ); virtual int SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_t tv_source_input, tvin_sig_fmt_t sig_fmt ); - virtual void onHdmiSrChanged(int sr, bool bInit); - virtual void onHMDIAudioStatusChanged(int status); - int SetCurProgramAudioVolumeCompensationVal ( int tmpVal ); int GetAudioVolumeCompensationVal(int progDbId); //dtv audio track info int getAudioTrackNum ( int progId ); @@ -260,7 +265,6 @@ public: int isVgaFmtInHdmi(); int getHDMIFrameRate ( void ); - void RefreshAudioMasterVolume ( tv_source_input_t source_input ); int Tvin_SetPLLValues (); int SetCVD2Values (); @@ -271,7 +275,6 @@ public: virtual void onHeadSetDetect(int state, int para); CTvFactory mFactoryMode; - CTvin::CHDMIAudioCheck mHDMIAudioCheckThread; CDevicesPollStatusDetect mDevicesPollStatusDetectThread; CBootvideoStatusDetect *mBootvideoStatusDetectThread; CHDMIRxManager mHDMIRxManager; @@ -295,7 +298,6 @@ public: int Tv_HDMIEDIDFileSelect(tv_hdmi_port_id_t port, tv_hdmi_edid_version_t version); int Tv_HandeHDMIEDIDFilePathConfig(); int Tv_SetDDDRCMode(tv_source_input_t source_input); - int Tv_SetAudioSourceType (tv_source_input_t source_input); //PQ virtual int Tv_SetBrightness ( int brightness, tv_source_input_t tv_source_input, int is_save ); @@ -335,135 +337,7 @@ public: int SetHdmiColorRangeMode(tv_hdmi_color_range_t range_mode); tv_hdmi_color_range_t GetHdmiColorRangeMode(); int setGamma(vpp_gamma_curve_t gamma_curve, int is_save); - - //audio virtual void updateSubtitle(int, int); - - //audio - virtual void TvAudioOpen(); - virtual void AudioCtlUninit(); - virtual int SetAudioMuteForSystem(int muteOrUnmute); - virtual int GetAudioMuteForSystem(); - virtual int SetAudioMuteForTv(int muteOrUnmute); - virtual int GetAudioMuteForTv(); - int SetAudioAVOutMute(int muteStatus); - int GetAudioAVOutMute(); - int SetAudioSPDIFMute(int muteStatus); - int GetAudioSPDIFMute(); - int SetDacMute(int muteStatus, int mute_type); - int SetAudioI2sMute(int); - int SetAudioMasterVolume(int tmp_vol); - int GetAudioMasterVolume(); - int SaveCurAudioMasterVolume(int tmp_vol); - int GetCurAudioMasterVolume(); - int SetAudioBalance(int tmp_val); - int GetAudioBalance(); - int SaveCurAudioBalance(int tmp_val); - int GetCurAudioBalance(); - int SetAudioSupperBassVolume(int tmp_vol); - int GetAudioSupperBassVolume(); - int SaveCurAudioSupperBassVolume(int tmp_vol); - int GetCurAudioSupperBassVolume(); - int SetAudioSupperBassSwitch(int tmp_val); - int GetAudioSupperBassSwitch(); - int SaveCurAudioSupperBassSwitch(int tmp_val); - int GetCurAudioSupperBassSwitch(); - int SetAudioSRSSurround(int tmp_val); - int GetAudioSRSSurround(); - int SaveCurAudioSrsSurround(int tmp_val); - int GetCurAudioSRSSurround(); - int SetAudioSrsDialogClarity(int tmp_val); - int GetAudioSrsDialogClarity(); - int SaveCurAudioSrsDialogClarity(int tmp_val); - int GetCurAudioSrsDialogClarity(); - int SetAudioSrsTruBass(int tmp_val); - int GetAudioSrsTruBass(); - int SaveCurAudioSrsTruBass(int tmp_val); - int GetCurAudioSrsTruBass(); - int SetAudioSPDIFSwitch(int tmp_val); - int GetCurAudioSPDIFSwitch(); - int SaveCurAudioSPDIFSwitch(int tmp_val); - int SetAudioVirtualizer(int enable, int EffectLevel); - int GetAudioVirtualizerEnable(); - int GetAudioVirtualizerLevel(); - int LoadAudioVirtualizer(); - - //Audio SPDIF Mode - int SetAudioSPDIFMode(int tmp_val); - int GetCurAudioSPDIFMode(); - int SaveCurAudioSPDIFMode(int tmp_val); - int SetAudioBassVolume(int tmp_vol); - int GetAudioBassVolume(); - int SaveCurAudioBassVolume(int tmp_vol); - int GetCurAudioBassVolume(); - int SetAudioTrebleVolume(int tmp_vol); - int GetAudioTrebleVolume(); - int SaveCurAudioTrebleVolume(int tmp_vol); - int GetCurAudioTrebleVolume(); - int SetAudioSoundMode(int tmp_val); - int GetAudioSoundMode(); - int SaveCurAudioSoundMode(int tmp_val); - int GetCurAudioSoundMode(); - int SetAudioWallEffect(int tmp_val); - int GetAudioWallEffect(); - int SaveCurAudioWallEffect(int tmp_val); - int GetCurAudioWallEffect(); - int SetAudioEQMode(int tmp_val); - int GetAudioEQMode(); - int SaveCurAudioEQMode(int tmp_val); - int GetCurAudioEQMode(); - int GetAudioEQRange(int range_buf[]); - int GetAudioEQBandCount(); - int SetAudioEQGain(int gain_buf[]); - int GetAudioEQGain(int gain_buf[]); - int GetCurAudioEQGain(int gain_buf[]); - int SaveCurAudioEQGain(int gain_buf[]); - int SetAudioEQSwitch(int switch_val); - int OpenAmAudio(unsigned int sr, int input_device, int output_device); - int CloseAmAudio(void); - int SetAmAudioInputSr(unsigned int sr, int output_device); - int SetAmAudioOutputMode(int mode); - int SetAmAudioMusicGain(int gain); - int SetAmAudioLeftGain(int gain); - int SetAmAudioRightGain(int gain); - int SetAudioVolumeCompensationVal(int tmp_vol_comp_val); - int AudioLineInSelectChannel(int audio_channel); - int AudioSetLineInCaptureVolume(int l_vol, int r_vol); - int setAudioPcmPlaybackVolume(int val); - int setAmAudioVolume(float volume); - float getAmAudioVolume(); - int saveAmAudioVolume(int volume, int source); - int getSaveAmAudioVolume(int volume); - int setAmAudioPreGain(float pre_gain); - float getAmAudioPreGain(); - int setAmAudioPreMute(int mute); - int getAmAudioPreMute(); - - int openTvAudio(); - - int InitTvAudio(int sr, int input_device); - int UnInitTvAudio(); - int AudioChangeSampleRate(int sr); - int AudioSetAudioInSource(int audio_src_in_type); - int AudioSetAudioSourceType(int source_type); - int AudioSSMRestoreDefaultSetting(); - int SetAudioDumpDataFlag(int tmp_flag); - int GetAudioDumpDataFlag(); - int SetAudioLeftRightMode(unsigned int mode); - unsigned int GetAudioLeftRightMode(); - int SwitchAVOutBypass (int); - int SetAudioSwitchIO(int value); - int SetOutput_Swap(int value); - int HanldeAudioInputSr(unsigned int); - void AudioSetVolumeDigitLUTBuf(int lut_sel_flag, int *MainVolLutBuf); - int SetADC_Digital_Capture_Volume(int value); - int SetPGA_IN_Value(int value); - int SetDAC_Digital_PlayBack_Volume(int value); - int InitSetTvAudioCard(); - int UnInitSetTvAudioCard(); - void RefreshSrsEffectAndDacGain(); - int SetCustomEQGain(); - int SetAtvInGain(int gain_val); int GetHdmiAvHotplugDetectOnoff(); int SetHdmiEdidVersion(tv_hdmi_port_id_t port, tv_hdmi_edid_version_t version); int SetHdmiHDCPSwitcher(tv_hdmi_hdcpkey_enable_t enable); @@ -474,47 +348,6 @@ public: void dump(String8 &result); private: int SendCmdToOffBoardFBCExternalDac(int, int); - int LoadCurAudioSPDIFMode(); - int LoadCurAudioMasterVolume(); - int LoadCurAudioBalance(); - int LoadCurAudioSupperBassVolume(); - int LoadCurAudioSupperBassSwitch(); - int LoadCurAudioSrsSurround(); - int LoadCurAudioSrsDialogClarity(); - int LoadCurAudioSPDIFSwitch(); - void SetSupperBassSRSSpeakerSize(); - int LoadCurAudioSoundMode(); - int LoadCurAudioEQMode(); - int LoadCurAudioSrsTruBass(); - int RealSaveCurAudioBassVolume(int, int); - int LoadCurAudioBassVolume(); - int RealSaveCurAudioTrebleVolume(int, int); - int LoadCurAudioTrebleVolume(); - int HandleTrebleBassVolume(); - int LoadCurAudioWallEffect(); - int RealReadCurAudioEQGain(int *); - int RealSaveCurAudioEQGain(int *, int); - int LoadCurAudioEQGain(); - int MappingEQGain(int *, int *, int); - int RestoreToAudioDefEQGain(int *); - int GetCustomEQGain(int *); - int AudioSetEQGain(int *); - int handleEQGainBeforeSet(int *, int *); - int RealSetEQGain(int *); - int SetSpecialModeEQGain(int); - int SetSpecialIndexEQGain(int, int); - int SaveSpecialIndexEQGain(int, int); - void LoadAudioCtl(); - void InitSetAudioCtl(); - int GetBassUIMinGainVal(); - int GetBassUIMaxGainVal(); - int GetTrebleUIMinGainVal(); - int GetTrebleUIMaxGainVal(); - int MappingLine(int, int, int, int, int); - int MappingTrebleBassAndEqualizer(int, int, int, int); - int SetSPDIFMode(int mode_val); - int setAudioPreGain(tv_source_input_t source_input); - float getAudioPreGain(tv_source_input_t source_input); int KillMediaServerClient(); bool insertedFbcDevice(); @@ -541,42 +374,6 @@ private: void setDvbLogLevel(); - CAudioAlsa mAudioAlsa; - CAudioEffect mAudioEffect; - - CAudioCustomerCtrl mCustomerCtrl; - int mCurAudioMasterVolume; - int mCurAudioBalance; - int mCurAudioSupperBassVolume; - int mCurAudioSupperBassSwitch; - int mCurAudioSRSSurround; - int mCurAudioSrsDialogClarity; - int mCurAudioSrsTruBass; - int mCurAudioSPDIFSwitch; - int mCurAudioSPDIFMode; - int mCurAudioBassVolume; - int mCurAudioTrebleVolume; - int mCurAudioSoundMode; - int mCurAudioWallEffect; - int mCurAudioEQMode; - int mCustomAudioMasterVolume; - int mCustomAudioBalance; - int mCustomAudioSupperBassVolume; - int mCustomAudioSupperBassSwitch; - int mCustomAudioSRSSurround; - int mCustomAudioSrsDialogClarity; - int mCustomAudioSrsTruBass; - int mCustomAudioBassVolume; - int mCustomAudioTrebleVolume; - int mCustomAudioSoundMode; - int mCustomAudioWallEffect; - int mCustomAudioEQMode; - int mCustomAudioSoundEnhancementSwitch; - int mCustomEQGainBuf[CC_BAND_ITEM_CNT]; - int mCurEQGainBuf[CC_BAND_ITEM_CNT] ; - int8_t mCurEQGainChBuf[CC_BAND_ITEM_CNT]; - int mVolumeCompensationVal; - int mMainVolumeBalanceVal; //end audio bool mATVDisplaySnow; bool iSBlackPattern; @@ -658,19 +455,11 @@ protected: int Tv_MiscSetBySource ( tv_source_input_t ); void print_version_info ( void ); int dtvCleanProgramByFreq ( int freq ); - /*********************** Audio start **********************/ - int SetAudioVolDigitLUTTable ( tv_source_input_t source_input ); - virtual int Tv_SetAudioInSource (tv_source_input_t source_input); - void Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input); - void Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input); - /*********************** Audio end **********************/ - void onSigToStable(); void onSigToUnstable(); void onSigToUnSupport(); void onSigToNoSig(); void onSigStillStable(); - void onHDMIAudioCheckLoop(); virtual void onSourceConnect(int source_type, int connect_status); virtual void onVdinSignalChange(); @@ -722,15 +511,8 @@ protected: int m_sig_spdif_nums; bool mSetHdmiEdid; /** for HDMI-in sampling detection. **/ - int m_hdmi_sampling_rate; - int m_hdmi_audio_data; /** for display mode to bottom **/ - //audio mute - int mAudioMuteStatusForTv; - int mAudioMuteStatusForSystem; - char mMainVolLutTableExtraName[CC_PROJECT_INFO_ITEM_MAX_LEN]; - CTvin *mpTvin; CTvGpio *pGpio; diff --git a/tv/tvserver/libtv/tvin/CTvin.cpp b/tv/tvserver/libtv/tvin/CTvin.cpp index cb9088b..05fdef6 100644 --- a/tv/tvserver/libtv/tvin/CTvin.cpp +++ b/tv/tvserver/libtv/tvin/CTvin.cpp @@ -1617,42 +1617,6 @@ int CTvin::Tvin_GetSourcePortByCECPhysicalAddress(int physical_addr) return TVIN_PORT_MAX; } -tv_audio_channel_t CTvin::Tvin_GetInputSourceAudioChannelIndex ( tv_source_input_t source_input ) -{ - int aud_chan = TV_AUDIO_LINE_IN_0; - const char *config_value = NULL; - - if ( source_input == SOURCE_TV ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.atv", "2"); - } else if ( source_input == SOURCE_AV1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av1", "1"); - } else if ( source_input == SOURCE_AV2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av2", "3"); - } else if ( source_input == SOURCE_YPBPR1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp1", "0"); - } else if ( source_input == SOURCE_YPBPR2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp2", "0"); - } else if ( source_input == SOURCE_HDMI1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi1", "0"); - } else if ( source_input == SOURCE_HDMI2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi2", "0"); - } else if ( source_input == SOURCE_HDMI3 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi3", "0"); - } else if ( source_input == SOURCE_HDMI4 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi4", "0"); - } else if ( source_input == SOURCE_VGA ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.vga", "0"); - } else if ( source_input == SOURCE_MPEG ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.mpeg", "0"); - } - - if (config_value != NULL) { - aud_chan = strtol (config_value, NULL, 10); - } - - return ( tv_audio_channel_t ) aud_chan; -} - tv_audio_in_source_type_t CTvin::Tvin_GetAudioInSourceType ( tv_source_input_t source_input ) { const char *config_value = NULL; @@ -2019,143 +1983,6 @@ int CTvin::Tv_uninit_afe ( void ) return 0; } -int CTvin::get_hdmi_sampling_rate() -{ - char buf[32] = {0}; - - tvReadSysfs("/sys/module/tvin_hdmirx/parameters/audio_sample_rate", buf); - int val = atoi(buf); - return val; -} - -//************************************************************************** -CTvin::CHDMIAudioCheck::CHDMIAudioCheck () -{ - mCheckState = STATE_STOPED; - mpObserver = NULL; - initCheckState(); -} - -CTvin::CHDMIAudioCheck::~CHDMIAudioCheck() -{ -} - -int CTvin::CHDMIAudioCheck::initCheckState() -{ - mResumeLaterTime = 0; - mHDMIAudioCheckEnable = true; - return 0; -} - -int CTvin::CHDMIAudioCheck::startCheck(bool bPause) -{ - LOGD ("startCheck--Check state:%d", mCheckState); - - if ( mCheckState == STATE_RUNNING || mCheckState == STATE_PAUSE ) { - return mCheckState; - } - - m_request_pause_check = bPause; - initCheckState(); - this->run("startCheck"); - return mCheckState; -} - -int CTvin::CHDMIAudioCheck::stopCheck() -{ - AutoMutex _l( mLock ); - LOGD ( "stopCheck()" ); - requestExit(); - return 0; -} - -int CTvin::CHDMIAudioCheck::pauseCheck() -{ - AutoMutex _l( mLock ); - LOGD ( "pauseCheck()" ); - m_request_pause_check = true; - return 0; -} - -int CTvin::CHDMIAudioCheck::resumeCheck(int later)//ms -{ - AutoMutex _l( mLock ); - LOGD ( "resumeCheck()" ); - mResumeLaterTime = later; - m_request_pause_check = false; - mCheckPauseCondition.signal(); - return 0; -} - -int CTvin::CHDMIAudioCheck::requestAndWaitPauseCheck() -{ - AutoMutex _l( mLock ); - LOGD ( "requestAndWaitPauseCheck()" ); - - m_request_pause_check = true; - - if ( mCheckState == STATE_RUNNING ) { - mRequestPauseCondition.wait ( mLock ); - } - - return 0; -} - -void CTvin::CHDMIAudioCheck::setHDMIAudioCheckEnable(bool enable) -{ - if (enable) - LOGD("setHDMIAudioCheck enable"); - else - LOGD("setHDMIAudioCheck disable"); - - mHDMIAudioCheckEnable = enable; -} - -bool CTvin::CHDMIAudioCheck::threadLoop() -{ - //enter onStart() - if ( mpObserver == NULL ) { - return false; - } - - int sleeptime = 200;//ms - mCheckState = STATE_RUNNING; - - while ( !exitPending() ) { //requietexit() or requietexitWait() not call - while ( m_request_pause_check ) { - mLock.lock(); - mRequestPauseCondition.broadcast(); - mCheckState = STATE_PAUSE; - mCheckPauseCondition.wait ( mLock ); //first unlock,when return,lock again,so need,call unlock - mCheckState = STATE_RUNNING; - mLock.unlock(); - // - while (!m_request_pause_check && mResumeLaterTime > 0) { - usleep(10 * 1000); - mResumeLaterTime -= 10; - } - } - mResumeLaterTime = 0; - mpObserver->onHDMIAudioCheckLoop(); - if (mHDMIAudioCheckEnable) { - sleeptime = 20; - } - - if ( !m_request_pause_check ) { - usleep ( sleeptime * 1000 ); - } - } - - mCheckState = STATE_STOPED; - mRequestPauseCondition.broadcast(); - /*exit - true: run again; - false,not run. - */ - return false; -} - - unsigned long CTvin::CvbsFtmToV4l2ColorStd(tvin_sig_fmt_t fmt) { unsigned long v4l2_std = 0; diff --git a/tv/tvserver/libtv/tvin/CTvin.h b/tv/tvserver/libtv/tvin/CTvin.h index 148073d..29205c5 100644 --- a/tv/tvserver/libtv/tvin/CTvin.h +++ b/tv/tvserver/libtv/tvin/CTvin.h @@ -648,7 +648,6 @@ public: int TvinApi_GetHDMIAudioStatus ( void ); int Tvin_StartDecoder ( tvin_info_t &info ); int Tvin_StopDecoder(); - int get_hdmi_sampling_rate(); int SwitchPort (tvin_port_t source_port ); int SwitchSnow(bool enable); bool getSnowStatus(void); @@ -725,7 +724,6 @@ public: static unsigned int Tvin_TransPortStringToValue(const char *port_str); static void Tvin_LoadSourceInputToPortMap(); static int Tvin_GetSourcePortByCECPhysicalAddress(int physical_addr); - static tv_audio_channel_t Tvin_GetInputSourceAudioChannelIndex ( tv_source_input_t source_input ); static tv_audio_in_source_type_t Tvin_GetAudioInSourceType ( tv_source_input_t source_input ); static tv_source_input_t Tvin_PortToSourceInput ( tvin_port_t port ); static int isVgaFmtInHdmi ( tvin_sig_fmt_t fmt ); @@ -736,53 +734,6 @@ public: static CTvin *getInstance(); -public: - class CHDMIAudioCheck: public Thread { - public: - CHDMIAudioCheck (); - ~CHDMIAudioCheck(); - int startCheck(bool bPause = true); - int stopCheck(); - int pauseCheck(); - int resumeCheck(int later = 0); - int initCheckState(); - void setHDMIAudioCheckEnable(bool enable = true); - int requestAndWaitPauseCheck(); - //first pause detect? ok - - class IHDMIAudioCheckObserver { - public: - IHDMIAudioCheckObserver() - {}; - virtual ~IHDMIAudioCheckObserver() - {}; - virtual void onHDMIAudioCheckEnter() {}; - virtual void onHDMIAudioCheckLoop() {}; - }; - void setObserver ( IHDMIAudioCheckObserver *pOb ) - { - mpObserver = pOb; - }; - - private: - bool threadLoop(); - - //member - mutable Mutex mLock; - Condition mCheckPauseCondition; - Condition mRequestPauseCondition; - volatile bool m_request_pause_check; - enum CheckState { - STATE_STOPED = 0, - STATE_RUNNING, - STATE_PAUSE - }; - int mCheckState; - int mResumeLaterTime; - bool mHDMIAudioCheckEnable; - IHDMIAudioCheckObserver *mpObserver; - }; - private: static CTvin *mInstance; int mAfeDevFd; diff --git a/tv/tvserver/libtv/tvsetting/audio_cfg.cpp b/tv/tvserver/libtv/tvsetting/audio_cfg.cpp deleted file mode 100644 index 4347330..0000000 --- a/tv/tvserver/libtv/tvsetting/audio_cfg.cpp +++ b/dev/null @@ -1,747 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: c++ file - */ - -#define LOG_TAG "tvserver" -#define LOG_TV_TAG "audio_cfg" - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <android/log.h> -#include <cutils/properties.h> - -#include "../tvsetting/CTvSetting.h" -#include <tvconfig.h> -#include "audio_cfg.h" -#include "../audio/audio_alsa.h" -#include "CTvLog.h" - -static const char AudioAmpMainVolLutBaseNameTable[CC_GET_TYPE_CNT][128] = {"audio.amp.mainvol.tv.lutbuf",//0 - "audio.amp.mainvol.av.lutbuf",//1 - "audio.amp.mainvol.comp.lutbuf",//2 - "audio.amp.mainvol.hdmi.lutbuf",//3 - "audio.amp.mainvol.vga.lutbuf",//4 - "audio.amp.mainvol.mpeg.lutbuf",//5 - "audio.amp.mainvol.hdmi4k2k.lutbuf",//6 - "audio.amp.mainvol.usb4k2k.lutbuf"//7 - }; - -static const int Default_EQGain_Table[24] = { - // - 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 const int Default_AVoutGain_Table[9] = { - //PGA_IN ADC_Capture DAC_Playback - 11, 92, 255, // CC_AUDIO_IN_SOURCE_LINEIN - 11, 92, 255, //CC_AUDIO_IN_SOURCE_HDMI - 11, 92, 255, //CC_AUDIO_IN_SOURCE_ATV -}; - -int GetAudioAmpMasterNolinePointData(int get_type, const char *value_buf, int data_buf[]) -{ - const char *config_value; - if (value_buf != NULL) { - config_value = config_get_str(CFG_SECTION_TV, value_buf, "null"); - } else { - switch (get_type) { - case CC_GET_LUT_TV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.tv", "null"); - } - break; - case CC_GET_LUT_AV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.av", "null"); - } - break; - case CC_GET_LUT_COMP: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.comp", "null"); - } - break; - case CC_GET_LUT_HDMI: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi", "null"); - } - break; - case CC_GET_LUT_VGA: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.vga", "null"); - } - break; - case CC_GET_LUT_MPEG: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.mpeg", "null"); - } - break; - case CC_GET_LUT_HDMI_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi4k2k", "null"); - } - break; - case CC_GET_LUT_USB_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.usb4k2k", "null"); - } - break; - default: { - config_value = "null"; - } - break; - } - } - if (strcasecmp(config_value, "null") == 0) { - //LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } - - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int bufferDataIndex = 0; - while (token != NULL) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - token = strtok_r(NULL, ",", &pSave); - } - - return 0; -} - -int GetDefault_EQGain_Table(int *EqTable) -{ - memcpy(EqTable, Default_EQGain_Table, sizeof(Default_EQGain_Table)); - - return 0; -} - -int GetAudioEQPresetBufferPtr(int *EqTable) -{ - int bufs_count = 0, buf_item_count = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.eq.presetbuf", "null"); - if (strcasecmp(config_value, "null") == 0) { - return -1; - } - - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - EqTable[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; -} - -/** - * @param:get_type - * @return:data_buf - */ -const char *GetAudioAmpMainvolTableBaseName(int get_type) -{ - return AudioAmpMainVolLutBaseNameTable[get_type]; -} - -int GetAudioAmpMainvolBuf(const char *TableKeyName, int data_buf[]) -{ - int bufs_count = 0, buf_item_count = 0; - const char *config_value; - - config_value = config_get_str(CFG_SECTION_TV, TableKeyName, "null"); - if (strcasecmp(config_value, "null") == 0) { - return -1; - } - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; -} - -/** - * @param:get_type - * @return:data_buf - */ -int GetAudioAmpSupbassvolBuf(int get_type, int data_buf[]) -{ - int bufs_count = 0, buf_item_count = 0; - const char *config_value; - - switch (get_type) { - case CC_GET_LUT_TV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.tv.lutbuf", "null"); - } - - break; - case CC_GET_LUT_AV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.av.lutbuf", "null"); - } - break; - case CC_GET_LUT_COMP: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.comp.lutbuf", "null"); - } - break; - case CC_GET_LUT_HDMI: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi.lutbuf", "null"); - } - break; - case CC_GET_LUT_VGA: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.vga.lutbuf", "null"); - } - - break; - case CC_GET_LUT_MPEG: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.mpeg.lutbuf", "null"); - } - - break; - case CC_GET_LUT_HDMI_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi4k2k.lb.name", "null"); - } - - break; - case CC_GET_LUT_USB_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.usb4k2k.lb.name", "null"); - } - - break; - default: { - config_value = "null"; - } - break; - } - - if (strcasecmp(config_value, "null") == 0) { - return -1; - } - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; -} - -int GetAudioAmplifierMasterNoLineSwitchFlag() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.switch", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioAmplifierSupperBassNoLineSwitchFlag() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.switch", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioAmplifierMasterNoLinePointsCount() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.cnt", "null"); - - if (strcmp(config_value, "null") == 0) { - return 11; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioAmplifierSupperBassNoLinePointsCount() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.point.cnt", "null"); - - if (strcmp(config_value, "null") == 0) { - return 5; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioAmplifierBalanceExchangeCFG() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.balance.exchg", "null"); - - // if (data_buf[0] >= 0 && data_buf[0] <= 100) { - // LOGD("%s, we have get the index buffer.\n", CFG_SECTION_TV); - // return 0; - // } - - 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_get_str(CFG_SECTION_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); - getBootEnv(UBOOTENV_AMPINDEX, config_value, "null"); - - if (strcasecmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - - -int GetAudioMainVolLutBufNameModifyEnableCFG() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.mainvol.lutbufname.mod.en", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - - -int GetAudioSupperBassVolLutBufCFGIndexModifyEnable() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.cfgindex.mod.en", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - -int GetAudioSupperBassVolLutBufNameModifyEnableCFG() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.lutbufname.mod.en", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - - -int GetAudioDVISupportEnable() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dvi.support.enable", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - - -int GetTvAudioCardName(char tv_card_name_buf[]) -{ - const char *value = config_get_str(CFG_SECTION_TV, "audio.tv.card.name", "null"); - - strcpy(tv_card_name_buf, value); - if (strcmp(value, "null") == 0) { - strcpy(tv_card_name_buf, "AMLSYNO9629"); - } - - return 0; -} - -int GetTvAudioCardNeedSet() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.tv.card.needset", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } - - if (strtoul(config_value, NULL, 10) == 0) { - return 0; - } - - return 1; -} - -int GetAudioEffectAmplifierGainCfg(const char *cfg_name, int def_gain_val, int max_gain_val) -{ - int tmp_val; - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - if (strcmp(config_value, "null") == 0) { - tmp_val = def_gain_val; - } else { - tmp_val = strtoul(config_value, NULL, 10); - if (tmp_val < 0 || tmp_val > max_gain_val) { - tmp_val = def_gain_val; - } - } - LOGD("%s = %d\n", cfg_name, tmp_val); - return tmp_val; -} - - -int GetAudioSRSSourroundEnableCFG() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.srs.sourround.enable", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - -int GetAudioSRSGainCfg(const char *cfg_name, int def_gain_val) -{ - int tmp_val = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - - if (strcmp(config_value, "null") == 0) { - tmp_val = def_gain_val; - } else { - if (tmp_val < 0 || tmp_val > 100) { - tmp_val = def_gain_val; - LOGE("Error setting: %s = %d (0~100)\n", cfg_name, tmp_val); - } - tmp_val = strtoul(config_value, NULL, 10); - } - //LOGD(" %s = %d\n", cfg_name, tmp_val); - return tmp_val; -} - -int GetAudioSRSSupperBassTrubassSpeakerSizeCfg() -{ - char cfg_name[128] = { 0 }; - - strcpy(cfg_name, CFG_AUDIO_SRS_TRUBASS_SPEAKERSIZE); - - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - - if (strcmp(config_value, "null") == 0) { - return -1; - } - - int tmp_val = strtoul(config_value, NULL, 10); - if (tmp_val < 0 || tmp_val > 7) { - tmp_val = -1; - } - - return tmp_val; -} - -int GetAudioDumpDataEnableFlagCfg() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dump.data.en", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioSupperBassSwitchDisableCFG() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.supperbass.switch.disable", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtoul(config_value, NULL, 10); -} - -int GetAudioWallEffectTypeCfg() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.walleffect.type", "null"); - - if (strcmp(config_value, "null") == 0) { - return 0; - } - - return strtol(config_value, NULL, 10); -} - -int Get2d4gHeadsetEnable() -{ - const char *config_value = config_get_str ( CFG_SECTION_TV, "tvin.2d4G.headset.en", "null" ); - if (strcmp(config_value, "enable") == 1) { - return 1; - } - - - return 0; -} - -int GetUseAndroidVolEnable() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.android.vol.en", "null"); - if (!strcmp(config_value, "enable")) { - return 1; - } - return 0; -} - -const char *GetAudExtDacLibPath() -{ - return config_get_str(CFG_SECTION_TV, "audio.external.dac.libpath", "/vendor/lib/libdac.so"); -} - -int GetKaraokAvEnable() -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.switch.karaok.av.enable", "null"); - if (strtoul(config_value, NULL, 10) == 1) - return 1; - - return 0; -} - -int GetDefaultAvOutGainBuf(int *nAvoutTable) -{ - memcpy(nAvoutTable, Default_AVoutGain_Table, sizeof(Default_AVoutGain_Table)); - - return 0; -} - -int GetAvOutGainBuf_Cfg(int *nAvoutTable) -{ - int bufs_count = 0, buf_item_count = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.avoutgain.presetbuf", "null"); - if (strcasecmp(config_value, "null") == 0) { - // LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } - - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - nAvoutTable[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; -} - -int GetADCDigitalCaptureVol_Cfg(void) -{ - int capture_vol = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.adc.digital.capture.vol", "null"); - - if (strcmp(config_value, "null") == 0) { - return -1; - } - - return strtoul(config_value, NULL, 10); -} - -int GetAudioInternalDacPGAInGain_Cfg(void) -{ - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.pga_in.gain", "null"); - - if (strcmp(config_value, "null") == 0) { - return 16; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioInternalDACDigitalPlayBackVolume_Cfg(int audio_src_in_type) -{ - const char *config_value = NULL; - - if (audio_src_in_type == CC_AUDIO_IN_SOURCE_HDMI) { // CC_AUDIO_IN_SOURCE_HDMI - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_hdmi", "null"); - } else if (audio_src_in_type == CC_AUDIO_IN_SOURCE_LINEIN) { // CC_AUDIO_IN_SOURCE_LINEIN - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_linein", "null"); - } else if (audio_src_in_type == CC_AUDIO_IN_SOURCE_ATV) { // CC_AUDIO_IN_SOURCE_ATV - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_atv", "null"); - } else if (audio_src_in_type == CC_AUDIO_IN_SOURCE_SPDIFIN) { // CC_AUDIO_IN_SOURCE_SPDIFIN - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_hdmi", "null"); - } - - if (strcmp(config_value, "null") == 0) { - return 255; - } - - return strtol(config_value, NULL, 10); -} - -int GetAudioOutputSwapStatus(tv_source_input_t source_input) -{ - int sw_status = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.enable", "null"); - if ( strcmp ( config_value, "enable" ) == 0 ) { - switch (source_input) { - case SOURCE_AV1: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av1", "null"); - break; - case SOURCE_AV2: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av2", "null"); - break; - case SOURCE_HDMI1: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi1", "null"); - break; - case SOURCE_HDMI2: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi2", "null"); - break; - case SOURCE_HDMI3: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi3", "null"); - break; - case SOURCE_HDMI4: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi4", "null"); - break; - case SOURCE_TV: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.tv", "null"); - break; - case SOURCE_DTV: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.dtv", "null"); - break; - case SOURCE_MPEG: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.mpeg", "null"); - break; - default: - break; - } - - } - - sw_status = atoi ( config_value ); - return sw_status; -} - -int GetAudioArchitectureTypeCFG() -{ - static int architecture_type = -1; - const char *config_value = NULL; - - config_value = config_get_str ( CFG_SECTION_TV, "audio.architecture.type", "null" ); - if (strcasecmp(config_value, "null") == 0) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_fbc") == 0) || (strcasecmp(config_value, "g9tv_external_dac_offboard_fbc") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_customer_lib") == 0) || (strcasecmp(config_value, "g9tv_external_dac_customer_lib") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_digital") == 0) || (strcasecmp(config_value, "g9tv_external_dac_digital") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL; - } else if ((strcasecmp(config_value, "t866_external_dac_onboard") == 0) || (strcasecmp(config_value, "g9tv_external_dac_onboard") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD; - } else if ((strcasecmp(config_value, "t866_iternal_dac") == 0) || (strcasecmp(config_value, "g9tv_iternal_dac") == 0)) { - architecture_type = CC_DAC_G9TV_INTERNAL_DAC; - } - - 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; - - char *pSave; - config_value = config_get_str ( CFG_SECTION_TV, "audio.resample.type", "null" ); - strncpy(cfg_buf, config_value, sizeof(cfg_buf)); - if (strcmp(cfg_buf, "") != 0) { - token = strtok_r(cfg_buf, strDelimit, &pSave); - 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_r(NULL, strDelimit, &pSave); - } - } else { - gAudioResampleType = CC_AUD_RESAMPLE_TYPE_SW; //if can't find config string, allow sw resample - } - } - - return gAudioResampleType; -} - diff --git a/tv/tvserver/libtv/tvsetting/audio_cfg.h b/tv/tvserver/libtv/tvsetting/audio_cfg.h deleted file mode 100644 index 7630004..0000000 --- a/tv/tvserver/libtv/tvsetting/audio_cfg.h +++ b/dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2014 Amlogic, Inc. All rights reserved. - * - * This source code is subject to the terms and conditions defined in the - * file 'LICENSE' which is part of this source code package. - * - * Description: header file - */ - -#ifndef __TV_AUDIO_CFG_H__ -#define __TV_AUDIO_CFG_H__ - -#include <tvconfig.h> -#include <tvutils.h> - -#include "../tvin/CTvin.h" - -#define CC_GET_LUT_TV (0) -#define CC_GET_LUT_AV (1) -#define CC_GET_LUT_COMP (2) -#define CC_GET_LUT_HDMI (3) -#define CC_GET_LUT_VGA (4) -#define CC_GET_LUT_MPEG (5) -#define CC_GET_LUT_HDMI_4K2K (6) -#define CC_GET_LUT_USB_4K2K (7) -#define CC_GET_TYPE_CNT (8) - -#define CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD (1) -#define CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC (2) -#define CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB (3) -#define CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL (4) -#define CC_DAC_G9TV_INTERNAL_DAC (5) - -#define CC_AUD_RESAMPLE_TYPE_HW (1) -#define CC_AUD_RESAMPLE_TYPE_SW (2) - -int GetAudioAmpMasterNolinePointData(int get_type, const char *value_buf, int data_buf[]); -int GetAudioEQPresetBufferPtr(int * ); -int GetAudioAmpMainvolBuf(const char *TableKeyName, int data_buf[]); -int GetAudioAmpSupbassvolBuf(int get_type, int data_buf[]); -int GetAudioAmplifierMasterNoLineSwitchFlag(); -int GetAudioAmplifierMasterNoLinePointsCount(); -int GetAudioSupperBassSwitchDisableCFG(); -int GetAudioAmplifierSupperBassNoLineSwitchFlag(); -int GetAudioAmplifierSupperBassNoLinePointsCount(); -int GetAudioAmplifierBalanceExchangeCFG(); -int GetAudioMainVolLutBufNameModifyUbootenvCFG(); -int GetAudioMainVolLutBufNameModifyEnableCFG(); -int GetAudioSupperBassVolLutBufNameModifyEnableCFG(); - -int GetAudioDVISupportEnable(); -int GetTvAudioCardName(char tv_card_name_buf[]); -int GetTvAudioCardNeedSet(); -int GetAudioDumpDataEnableFlagCfg(); -int GetAudioWallEffectTypeCfg(); - -//srs user setting -int GetAudioSRSSourroundEnableCFG(); -int GetAudioSRSGainCfg(const char *cfg_name, int def_gain_val); -int GetAudioEffectAmplifierGainCfg(const char *cfg_name, int def_gain_val, int max_gain_val); -int GetAudioSRSSupperBassTrubassSpeakerSizeCfg(); -//tinymix control -int Get2d4gHeadsetEnable() ; -int GetUseAndroidVolEnable(); -int GetAudioOutputSwapStatus(tv_source_input_t source_input); -//hardware design -int GetAudioArchitectureTypeCFG(); -const char *GetAudExtDacLibPath(); -int GetAudioResampleTypeCFG(); -int GetKaraokAvEnable(); -//audio path gain setting by user -int GetADCDigitalCaptureVol_Cfg(void); -int GetAudioInternalDacPGAInGain_Cfg(void); -int GetAudioInternalDACDigitalPlayBackVolume_Cfg(int audio_src_in_type); -const char *GetAudioAmpMainvolTableBaseName(int get_type); -int GetDefault_EQGain_Table(int *EqTable); -int GetDefaultAvOutGainBuf(int *nAvoutTable); -int GetAvOutGainBuf_Cfg(int *nAvoutTable); - -#endif //__TV_AUDIO_CFG_H__ diff --git a/tv/tvserver/tvserver/DroidTvServiceIntf.cpp b/tv/tvserver/tvserver/DroidTvServiceIntf.cpp index 58a89c2..ab5b0de 100644 --- a/tv/tvserver/tvserver/DroidTvServiceIntf.cpp +++ b/tv/tvserver/tvserver/DroidTvServiceIntf.cpp @@ -40,7 +40,6 @@ #include <tvutils.h> #include <tvsetting/CTvSetting.h> #include <tv/CTvFactory.h> -#include <audio/CTvAudio.h> #include <version/version.h> #include "tvcmd.h" #include <tvdb/CTvRegion.h> @@ -634,407 +633,255 @@ int DroidTvServiceIntf::processCmd(const Parcel &p) { // AUDIO & AUDIO MUTE case SET_AUDIO_MUTE_FOR_TV: { int status = p.readInt32(); - if (status != mpTv->GetAudioMuteForTv()) { - ret = mpTv->SetAudioMuteForTv(status); - } break; } case SET_AUDIO_MUTEKEY_STATUS: { int status = p.readInt32(); - ret = mpTv->SetAudioMuteForSystem(status); break; } case GET_AUDIO_MUTEKEY_STATUS: - ret = mpTv->GetAudioMuteForSystem(); break; case SET_AUDIO_AVOUT_MUTE_STATUS: { - int status = p.readInt32(); - ret = mpTv->SetAudioAVOutMute(status); break; } case GET_AUDIO_AVOUT_MUTE_STATUS: - ret = mpTv->GetAudioAVOutMute(); break; case SET_AUDIO_SPDIF_MUTE_STATUS: { - int status = p.readInt32(); - ret = mpTv->SetAudioSPDIFMute(status); break; } case GET_AUDIO_SPDIF_MUTE_STATUS: - ret = mpTv->GetAudioSPDIFMute(); break; // AUDIO MASTER VOLUME case SET_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SetAudioMasterVolume(vol); break; } case GET_AUDIO_MASTER_VOLUME: - ret = mpTv->GetAudioMasterVolume(); break; case SAVE_CUR_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioMasterVolume(vol); break; } case GET_CUR_AUDIO_MASTER_VOLUME: - ret = mpTv->GetCurAudioMasterVolume(); break; //AUDIO BALANCE case SET_AUDIO_BALANCE: { - int vol = p.readInt32(); - ret = mpTv->SetAudioBalance(vol); break; } case GET_AUDIO_BALANCE: - ret = mpTv->GetAudioBalance(); break; case SAVE_CUR_AUDIO_BALANCE: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioBalance(vol); break; } case GET_CUR_AUDIO_BALANCE: - ret = mpTv->GetCurAudioBalance(); break; //AUDIO SUPPERBASS VOLUME case SET_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSupperBassVolume(vol); break; } case GET_AUDIO_SUPPER_BASS_VOLUME: - ret = mpTv->GetAudioSupperBassVolume(); break; case SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSupperBassVolume(vol); break; } case GET_CUR_AUDIO_SUPPER_BASS_VOLUME: - ret = mpTv->GetCurAudioSupperBassVolume(); break; //AUDIO SUPPERBASS SWITCH case SET_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSupperBassSwitch(vol); break; } case GET_AUDIO_SUPPER_BASS_SWITCH: - ret = mpTv->GetAudioSupperBassSwitch(); break; case SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSupperBassSwitch(vol); break; } case GET_CUR_AUDIO_SUPPER_BASS_SWITCH: - ret = mpTv->GetCurAudioSupperBassSwitch(); break; //AUDIO SRS SURROUND SWITCH case SET_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSRSSurround(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); break; } case GET_AUDIO_SRS_SURROUND: - ret = mpTv->GetAudioSRSSurround(); break; case SAVE_CUR_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSrsSurround(vol); break; } case GET_CUR_AUDIO_SRS_SURROUND: - ret = mpTv->GetCurAudioSRSSurround(); break; //AUDIO SRS DIALOG CLARITY case SET_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSrsDialogClarity(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); break; } case GET_AUDIO_SRS_DIALOG_CLARITY: { - ret = mpTv->GetAudioSrsDialogClarity(); break; } case SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSrsDialogClarity(vol); break; } case GET_CUR_AUDIO_SRS_DIALOG_CLARITY: - ret = mpTv->GetCurAudioSrsDialogClarity(); break; //AUDIO SRS TRUBASS case SET_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSrsTruBass(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); break; } case GET_AUDIO_SRS_TRU_BASS: - ret = mpTv->GetAudioSrsTruBass(); break; case SAVE_CUR_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSrsTruBass(vol); break; } case GET_CUR_AUDIO_SRS_TRU_BASS: - ret = mpTv->GetCurAudioSrsTruBass(); break; //AUDIO BASS case SET_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SetAudioBassVolume(vol); break; } case GET_AUDIO_BASS_VOLUME: - ret = mpTv->GetAudioBassVolume(); break; case SAVE_CUR_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioBassVolume(vol); break; } case GET_CUR_AUDIO_BASS_VOLUME: - ret = mpTv->GetCurAudioBassVolume(); break; //AUDIO TREBLE case SET_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SetAudioTrebleVolume(vol); break; } case GET_AUDIO_TREBLE_VOLUME: - ret = mpTv->GetAudioTrebleVolume(); break; case SAVE_CUR_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioTrebleVolume(vol); break; } case GET_CUR_AUDIO_TREBLE_VOLUME: - ret = mpTv->GetCurAudioTrebleVolume(); break; //AUDIO SOUND MODE case SET_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - ret = mpTv->SetAudioSoundMode(vol); break; } case GET_AUDIO_SOUND_MODE: - ret = mpTv->GetAudioSoundMode(); break; case SAVE_CUR_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSoundMode(vol); break; } case GET_CUR_AUDIO_SOUND_MODE: - ret = mpTv->GetCurAudioSoundMode(); break; //AUDIO WALL EFFECT case SET_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - ret = mpTv->SetAudioWallEffect(vol); break; } case GET_AUDIO_WALL_EFFECT: - ret = mpTv->GetAudioWallEffect(); break; case SAVE_CUR_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioWallEffect(vol); break; } case GET_CUR_AUDIO_WALL_EFFECT: - ret = mpTv->GetCurAudioWallEffect(); break; //AUDIO EQ MODE case SET_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - ret = mpTv->SetAudioEQMode(vol); break; } case GET_AUDIO_EQ_MODE: - ret = mpTv->GetAudioEQMode(); break; case SAVE_CUR_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioEQMode(vol); break; } case GET_CUR_AUDIO_EQ_MODE: - ret = mpTv->GetCurAudioEQMode(); break; //AUDIO EQ GAIN case GET_AUDIO_EQ_RANGE: { - int buf[2]; - ret = mpTv->GetAudioEQRange(buf); - //r->writeInt32(2); - //r->writeInt32(buf[0]); - //r->writeInt32(buf[1]); - //r->writeInt32(ret); break; } case GET_AUDIO_EQ_BAND_COUNT: - ret = mpTv->GetAudioEQBandCount(); break; case SET_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - int bufSize = p.readInt32(); - for (int i = 0; i < bufSize; i++) { - buf[i] = p.readInt32(); - } - ret = mpTv->SetAudioEQGain(buf); break; } case GET_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - ret = mpTv->GetAudioEQGain(buf); - int bufSize = mpTv->GetAudioEQBandCount(); - for (int i = 0; i < bufSize; i++) { - //r->writeInt32(buf[i]); - } - //r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - int bufSize = p.readInt32(); - for (int i = 0; i < bufSize; i++) { - buf[i] = p.readInt32(); - } - ret = mpTv->SaveCurAudioEQGain(buf); break; } case GET_CUR_EQ_GAIN: { - int buf[128] = {0}; - ret = mpTv->GetCurAudioEQGain(buf); - int bufSize = mpTv->GetAudioEQBandCount(); - //r->writeInt32(bufSize); - for (int i = 0; i < bufSize; i++) { - //r->writeInt32(buf[i]); - } break; } case SET_AUDIO_EQ_SWITCH: { - int tmpVal = p.readInt32(); - ret = mpTv->SetAudioEQSwitch(tmpVal); break; } // AUDIO SPDIF SWITCH case SET_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - ret = mpTv->SetAudioSPDIFSwitch(tmp_val); break; } case SAVE_CUR_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - ret = mpTv->SaveCurAudioSPDIFSwitch(tmp_val); break; } case GET_CUR_AUDIO_SPDIF_SWITCH: - ret = mpTv->GetCurAudioSPDIFSwitch(); break; //AUDIO SPDIF MODE case SET_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - int progId = p.readInt32(); - int audioTrackId = p.readInt32(); - ret = mpTv->SetAudioSPDIFMode(vol); - mpTv->ResetAudioDecoderForPCMOutput(); break; } case SAVE_CUR_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - ret = mpTv->SaveCurAudioSPDIFMode(vol); break; } case GET_CUR_AUDIO_SPDIF_MODE: - ret = mpTv->GetCurAudioSPDIFMode(); break; case SET_AMAUDIO_OUTPUT_MODE: { - int tmp_val = p.readInt32(); - ret = mpTv->SetAmAudioOutputMode(tmp_val); break; } case SET_AMAUDIO_MUSIC_GAIN: { - int tmp_val = p.readInt32(); - ret = mpTv->SetAmAudioMusicGain(tmp_val); break; } case SET_AMAUDIO_LEFT_GAIN: { - int tmp_val = p.readInt32(); - ret = mpTv->SetAmAudioLeftGain(tmp_val); break; } case SET_AMAUDIO_RIGHT_GAIN: { - int tmp_val = p.readInt32(); - ret = mpTv->SetAmAudioRightGain(tmp_val); break; } case SET_AMAUDIO_PRE_GAIN: { - float tmp_val = p.readFloat(); - ret = mpTv->setAmAudioPreGain(tmp_val); break; } case SET_AMAUDIO_PRE_MUTE: { - int tmp_val = p.readInt32(); - ret = mpTv->setAmAudioPreMute(tmp_val); break; } case GET_AMAUDIO_PRE_MUTE: - ret = mpTv->getAmAudioPreMute(); break; case SELECT_LINE_IN_CHANNEL: { - int channel = p.readInt32(); - ret = mpTv->AudioLineInSelectChannel(channel); - LOGD("SELECT_LINE_IN_CHANNEL: channel = %d; ret = %d.\n", channel, ret); + break; } case SET_LINE_IN_CAPTURE_VOL: { int l_vol = p.readInt32(); int r_vol = p.readInt32(); - ret = mpTv->AudioSetLineInCaptureVolume(l_vol, r_vol); break; } case SET_AUDIO_VOL_COMP: { - int tmpVal = p.readInt32(); - ret = mpTv->SetCurProgramAudioVolumeCompensationVal(tmpVal); break; } case GET_AUDIO_VOL_COMP: @@ -1042,17 +889,12 @@ int DroidTvServiceIntf::processCmd(const Parcel &p) { break; case SET_AUDIO_VIRTUAL: { - int enable = p.readInt32(); - int level = p.readInt32(); - ret = mpTv->SetAudioVirtualizer(enable, level); break; } case GET_AUDIO_VIRTUAL_ENABLE: - ret = mpTv->GetAudioVirtualizerEnable(); break; case GET_AUDIO_VIRTUAL_LEVEL: - ret = mpTv->GetAudioVirtualizerLevel(); break; // AUDIO END @@ -2053,23 +1895,15 @@ int DroidTvServiceIntf::processCmd(const Parcel &p) { break; case SET_AMAUDIO_VOLUME: { - int volume = p.readInt32(); - ret = mpTv->setAmAudioVolume(float (volume)); break; } case GET_AMAUDIO_VOLUME: - ret = (int)mpTv->getAmAudioVolume(); break; case SAVE_AMAUDIO_VOLUME: { - int volume = p.readInt32(); - int source = p.readInt32(); - ret = mpTv->saveAmAudioVolume(volume, source); break; } case GET_SAVE_AMAUDIO_VOLUME: { - int source = p.readInt32(); - ret = mpTv->getSaveAmAudioVolume(source); break; } case DTV_UPDATE_RRT: { diff --git a/tv/tvserver/tvserver/TvService.cpp b/tv/tvserver/tvserver/TvService.cpp index ff597c2..312d9f7 100644 --- a/tv/tvserver/tvserver/TvService.cpp +++ b/tv/tvserver/tvserver/TvService.cpp @@ -28,7 +28,6 @@ #include <tvutils.h> #include <tvsetting/CTvSetting.h> #include <tv/CTvFactory.h> -#include <audio/CTvAudio.h> #include <version/version.h> #include "tvcmd.h" #include <tvdb/CTvRegion.h> @@ -1408,485 +1407,252 @@ status_t TvService::Client::processCmd(const Parcel &p, Parcel *r) // AUDIO & AUDIO MUTE case SET_AUDIO_MUTE_FOR_TV: { int status = p.readInt32(); - if (status != mpTv->GetAudioMuteForTv()) { - int ret = mpTv->SetAudioMuteForTv(status); - r->writeInt32(ret); - } break; } case SET_AUDIO_MUTEKEY_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioMuteForSystem(status); - r->writeInt32(ret); break; } case GET_AUDIO_MUTEKEY_STATUS: { - int ret = mpTv->GetAudioMuteForSystem(); - r->writeInt32(ret); break; } case SET_AUDIO_AVOUT_MUTE_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioAVOutMute(status); - r->writeInt32(ret); break; } case GET_AUDIO_AVOUT_MUTE_STATUS: { - int ret = mpTv->GetAudioAVOutMute(); - r->writeInt32(ret); break; } case SET_AUDIO_SPDIF_MUTE_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioSPDIFMute(status); - r->writeInt32(ret); break; } case GET_AUDIO_SPDIF_MUTE_STATUS: { - int ret = mpTv->GetAudioSPDIFMute(); - r->writeInt32(ret); break; } // AUDIO MASTER VOLUME case SET_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioMasterVolume(vol); - r->writeInt32(ret); break; } case GET_AUDIO_MASTER_VOLUME: { - int ret = mpTv->GetAudioMasterVolume(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioMasterVolume(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_MASTER_VOLUME: { - int ret = mpTv->GetCurAudioMasterVolume(); - r->writeInt32(ret); break; } //AUDIO BALANCE case SET_AUDIO_BALANCE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioBalance(vol); - r->writeInt32(ret); break; } case GET_AUDIO_BALANCE: { - int ret = mpTv->GetAudioBalance(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_BALANCE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioBalance(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_BALANCE: { - int ret = mpTv->GetCurAudioBalance(); - r->writeInt32(ret); break; } //AUDIO SUPPERBASS VOLUME case SET_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSupperBassVolume(vol); - r->writeInt32(ret); break; } case GET_AUDIO_SUPPER_BASS_VOLUME: { - int ret = mpTv->GetAudioSupperBassVolume(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSupperBassVolume(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SUPPER_BASS_VOLUME: { - int ret = mpTv->GetCurAudioSupperBassVolume(); - r->writeInt32(ret); break; } //AUDIO SUPPERBASS SWITCH case SET_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSupperBassSwitch(vol); - r->writeInt32(ret); break; } case GET_AUDIO_SUPPER_BASS_SWITCH: { - int ret = mpTv->GetAudioSupperBassSwitch(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSupperBassSwitch(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SUPPER_BASS_SWITCH: { - int ret = mpTv->GetCurAudioSupperBassSwitch(); - r->writeInt32(ret); break; } //AUDIO SRS SURROUND SWITCH case SET_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSRSSurround(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); break; } case GET_AUDIO_SRS_SURROUND: { - int ret = mpTv->GetAudioSRSSurround(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsSurround(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SRS_SURROUND: { - int ret = mpTv->GetCurAudioSRSSurround(); - r->writeInt32(ret); break; } //AUDIO SRS DIALOG CLARITY case SET_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSrsDialogClarity(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); break; } case GET_AUDIO_SRS_DIALOG_CLARITY: { - int ret = mpTv->GetAudioSrsDialogClarity(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsDialogClarity(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SRS_DIALOG_CLARITY: { - int ret = mpTv->GetCurAudioSrsDialogClarity(); - r->writeInt32(ret); break; } //AUDIO SRS TRUBASS case SET_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSrsTruBass(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); break; } case GET_AUDIO_SRS_TRU_BASS: { - int ret = mpTv->GetAudioSrsTruBass(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsTruBass(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SRS_TRU_BASS: { - int ret = mpTv->GetCurAudioSrsTruBass(); - r->writeInt32(ret); break; } //AUDIO BASS case SET_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioBassVolume(vol); - r->writeInt32(ret); break; } case GET_AUDIO_BASS_VOLUME: { - int ret = mpTv->GetAudioBassVolume(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioBassVolume(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_BASS_VOLUME: { - int ret = mpTv->GetCurAudioBassVolume(); - r->writeInt32(ret); break; } //AUDIO TREBLE case SET_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioTrebleVolume(vol); - r->writeInt32(ret); break; } case GET_AUDIO_TREBLE_VOLUME: { - int ret = mpTv->GetAudioTrebleVolume(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioTrebleVolume(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_TREBLE_VOLUME: { - int ret = mpTv->GetCurAudioTrebleVolume(); - r->writeInt32(ret); break; } //AUDIO SOUND MODE case SET_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSoundMode(vol); - r->writeInt32(ret); break; } case GET_AUDIO_SOUND_MODE: { - int ret = mpTv->GetAudioSoundMode(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSoundMode(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SOUND_MODE: { - int ret = mpTv->GetCurAudioSoundMode(); - r->writeInt32(ret); break; } //AUDIO WALL EFFECT case SET_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioWallEffect(vol); - r->writeInt32(ret); break; } case GET_AUDIO_WALL_EFFECT: { - int ret = mpTv->GetAudioWallEffect(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioWallEffect(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_WALL_EFFECT: { - int ret = mpTv->GetCurAudioWallEffect(); - r->writeInt32(ret); break; } //AUDIO EQ MODE case SET_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioEQMode(vol); - r->writeInt32(ret); break; } case GET_AUDIO_EQ_MODE: { - int ret = mpTv->GetAudioEQMode(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioEQMode(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_EQ_MODE: { - int ret = mpTv->GetCurAudioEQMode(); - r->writeInt32(ret); break; } //AUDIO EQ GAIN case GET_AUDIO_EQ_RANGE: { - int buf[2]; - int ret = mpTv->GetAudioEQRange(buf); - r->writeInt32(2); - r->writeInt32(buf[0]); - r->writeInt32(buf[1]); - r->writeInt32(ret); break; } case GET_AUDIO_EQ_BAND_COUNT: { - int ret = mpTv->GetAudioEQBandCount(); - r->writeInt32(ret); break; } case SET_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - int bufSize = p.readInt32(); - for (int i = 0; i < bufSize; i++) { - buf[i] = p.readInt32(); - } - int ret = mpTv->SetAudioEQGain(buf); - r->writeInt32(ret); break; } case GET_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - int ret = mpTv->GetAudioEQGain(buf); - int bufSize = mpTv->GetAudioEQBandCount(); - r->writeInt32(bufSize); - for (int i = 0; i < bufSize; i++) { - r->writeInt32(buf[i]); - } - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_EQ_GAIN: { - int buf[128] = {0}; - int bufSize = p.readInt32(); - for (int i = 0; i < bufSize; i++) { - buf[i] = p.readInt32(); - } - int ret = mpTv->SaveCurAudioEQGain(buf); - r->writeInt32(ret); break; } case GET_CUR_EQ_GAIN: { - int buf[128] = {0}; - int ret = mpTv->GetCurAudioEQGain(buf); - int bufSize = mpTv->GetAudioEQBandCount(); - r->writeInt32(bufSize); - for (int i = 0; i < bufSize; i++) { - r->writeInt32(buf[i]); - } - r->writeInt32(ret); break; } case SET_AUDIO_EQ_SWITCH: { - int tmpVal = p.readInt32(); - int ret = mpTv->SetAudioEQSwitch(tmpVal); - r->writeInt32(ret); break; } // AUDIO SPDIF SWITCH case SET_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAudioSPDIFSwitch(tmp_val); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - int ret = mpTv->SaveCurAudioSPDIFSwitch(tmp_val); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SPDIF_SWITCH: { - int ret = mpTv->GetCurAudioSPDIFSwitch(); - r->writeInt32(ret); break; } //AUDIO SPDIF MODE case SET_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - int progId = p.readInt32(); - int audioTrackId = p.readInt32(); - int ret = mpTv->SetAudioSPDIFMode(vol); - mpTv->ResetAudioDecoderForPCMOutput(); - r->writeInt32(ret); break; } case SAVE_CUR_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSPDIFMode(vol); - r->writeInt32(ret); break; } case GET_CUR_AUDIO_SPDIF_MODE: { - int ret = mpTv->GetCurAudioSPDIFMode(); - r->writeInt32(ret); break; } case SET_AMAUDIO_OUTPUT_MODE: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioOutputMode(tmp_val); - r->writeInt32(ret); break; } case SET_AMAUDIO_MUSIC_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioMusicGain(tmp_val); - r->writeInt32(ret); break; } case SET_AMAUDIO_LEFT_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioLeftGain(tmp_val); - r->writeInt32(ret); break; } case SET_AMAUDIO_RIGHT_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioRightGain(tmp_val); - r->writeInt32(ret); break; } case SET_AMAUDIO_PRE_GAIN: { - float tmp_val = p.readFloat(); - int ret = mpTv->setAmAudioPreGain(tmp_val); - r->writeInt32(ret); break; } case SET_AMAUDIO_PRE_MUTE: { - int tmp_val = p.readInt32(); - int ret = mpTv->setAmAudioPreMute(tmp_val); - r->writeInt32(ret); break; } case GET_AMAUDIO_PRE_MUTE: { - int ret = mpTv->getAmAudioPreMute(); - r->writeInt32(ret); break; } case SELECT_LINE_IN_CHANNEL: { - int channel = p.readInt32(); - int ret = mpTv->AudioLineInSelectChannel(channel); - r->writeInt32(ret); - LOGD("SELECT_LINE_IN_CHANNEL: channel = %d; ret = %d.\n", channel, ret); break; } case SET_LINE_IN_CAPTURE_VOL: { - int l_vol = p.readInt32(); - int r_vol = p.readInt32(); - int ret = mpTv->AudioSetLineInCaptureVolume(l_vol, r_vol); - r->writeInt32(ret); break; } case SET_AUDIO_VOL_COMP: { - int tmpVal = p.readInt32(); - int ret = mpTv->SetCurProgramAudioVolumeCompensationVal(tmpVal); - r->writeInt32(ret); break; } case GET_AUDIO_VOL_COMP: { @@ -1895,20 +1661,12 @@ status_t TvService::Client::processCmd(const Parcel &p, Parcel *r) break; } case SET_AUDIO_VIRTUAL: { - int enable = p.readInt32(); - int level = p.readInt32(); - int ret = mpTv->SetAudioVirtualizer(enable, level); - r->writeInt32(ret); break; } case GET_AUDIO_VIRTUAL_ENABLE: { - int ret = mpTv->GetAudioVirtualizerEnable(); - r->writeInt32(ret); break; } case GET_AUDIO_VIRTUAL_LEVEL: { - int ret = mpTv->GetAudioVirtualizerLevel(); - r->writeInt32(ret); break; } // AUDIO END @@ -3565,27 +3323,15 @@ status_t TvService::Client::processCmd(const Parcel &p, Parcel *r) break; } case SET_AMAUDIO_VOLUME: { - int volume = p.readInt32(); - int ret = mpTv->setAmAudioVolume(float (volume)); - r->writeInt32(ret); break; } case GET_AMAUDIO_VOLUME: { - float volume = mpTv->getAmAudioVolume(); - r->writeInt32(int (volume)); break; } case SAVE_AMAUDIO_VOLUME: { - int volume = p.readInt32(); - int source = p.readInt32(); - int ret = mpTv->saveAmAudioVolume(volume, source); - r->writeInt32(ret); break; } case GET_SAVE_AMAUDIO_VOLUME: { - int source = p.readInt32(); - int volume = mpTv->getSaveAmAudioVolume(source); - r->writeInt32(volume); break; } case DTV_UPDATE_RRT: { |