summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--tv_input.cpp45
-rw-r--r--tvapi/android/Android.mk2
-rw-r--r--tvapi/android/include/ITv.h100
-rw-r--r--tvapi/android/include/ITvClient.h58
-rw-r--r--tvapi/android/include/ITvService.h68
-rw-r--r--tvapi/android/include/Tv.h161
-rw-r--r--tvapi/android/include/tvcmd.h1188
-rw-r--r--tvapi/android/jni/Android.mk132
-rw-r--r--tvapi/android/jni/android_amlogic_tv.cpp911
-rw-r--r--tvapi/android/jni/cfbc_jni.cpp214
-rw-r--r--tvapi/android/jni/cfbc_test.cpp86
-rw-r--r--tvapi/android/libtvbinder/Android.mk48
-rw-r--r--tvapi/android/libtvbinder/ITv.cpp289
-rw-r--r--tvapi/android/libtvbinder/ITvClient.cpp117
-rw-r--r--tvapi/android/libtvbinder/ITvService.cpp101
-rw-r--r--tvapi/android/libtvbinder/Tv.cpp378
-rw-r--r--tvapi/android/tvserver/Android.mk162
-rw-r--r--tvapi/android/tvserver/TvService.cpp8755
-rw-r--r--tvapi/android/tvserver/TvService.h164
-rw-r--r--tvapi/android/tvserver/main.cpp46
-rwxr-xr-x[-rw-r--r--]tvapi/build/include/.gitignore0
-rw-r--r--tvapi/docs/tv.uml12156
-rw-r--r--tvapi/libtv/Android.mk3
-rw-r--r--tvapi/libtv/audio/audio_alsa.cpp2426
-rw-r--r--tvapi/libtv/audio/audio_alsa.h261
-rw-r--r--tvapi/libtv/audio/audio_android.cpp2070
-rw-r--r--tvapi/libtv/audio/audio_android.h157
-rw-r--r--tvapi/libtv/audio/audio_android_effect.cpp1182
-rw-r--r--tvapi/libtv/audio/audio_android_effect.h131
-rw-r--r--tvapi/libtv/audio/audio_api.cpp4940
-rw-r--r--tvapi/libtv/audio/audio_api.h647
-rw-r--r--tvapi/libtv/audio/audio_effect.cpp456
-rw-r--r--tvapi/libtv/audio/audio_effect.h63
-rw-r--r--tvapi/libtv/include/amstream.h526
-rw-r--r--tvapi/libtv/include/amvecm.h136
-rw-r--r--tvapi/libtv/include/cm.h306
-rw-r--r--tvapi/libtv/include/hdmirx_cec.h508
-rw-r--r--tvapi/libtv/include/ve.h438
-rw-r--r--tvapi/libtv/tv/AutoBackLight.cpp426
-rw-r--r--tvapi/libtv/tv/AutoBackLight.h47
-rw-r--r--tvapi/libtv/tv/CAv.cpp484
-rw-r--r--tvapi/libtv/tv/CAv.h194
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.cpp2326
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.h680
-rw-r--r--tvapi/libtv/tv/CFrontEnd.cpp838
-rw-r--r--tvapi/libtv/tv/CFrontEnd.h227
-rw-r--r--tvapi/libtv/tv/CTv.cpp10755
-rw-r--r--tvapi/libtv/tv/CTv.h1269
-rw-r--r--tvapi/libtv/tv/CTvBooking.cpp324
-rw-r--r--tvapi/libtv/tv/CTvBooking.h167
-rw-r--r--tvapi/libtv/tv/CTvDmx.cpp8
-rw-r--r--tvapi/libtv/tv/CTvDmx.h15
-rw-r--r--tvapi/libtv/tv/CTvEpg.cpp260
-rw-r--r--tvapi/libtv/tv/CTvEpg.h280
-rw-r--r--tvapi/libtv/tv/CTvEv.cpp2
-rw-r--r--tvapi/libtv/tv/CTvEv.h314
-rw-r--r--tvapi/libtv/tv/CTvLog.h8
-rw-r--r--tvapi/libtv/tv/CTvRecord.cpp552
-rw-r--r--tvapi/libtv/tv/CTvRecord.h93
-rw-r--r--tvapi/libtv/tv/CTvSatellite.h43
-rw-r--r--tvapi/libtv/tv/CTvScanner.cpp1417
-rw-r--r--tvapi/libtv/tv/CTvScanner.h319
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.cpp1060
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.h351
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.cpp272
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.h469
-rw-r--r--tvapi/libtv/tv/CTvTime.h137
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.cpp250
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.h43
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.cpp974
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.h284
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.cpp706
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.h79
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.conf58
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.cpp106
-rw-r--r--tvapi/libtv/tvconfig/tvconfig.h40
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.cpp694
-rw-r--r--tvapi/libtv/tvdb/CTvChannel.h575
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.cpp300
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.h190
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.cpp714
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.h196
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.cpp482
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.h171
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.cpp88
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.h61
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.cpp1766
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.h1065
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.cpp366
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.h85
-rw-r--r--tvapi/libtv/tvin/CHDMIRxCEC.cpp830
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.cpp448
-rw-r--r--tvapi/libtv/tvin/CTvin.cpp4240
-rw-r--r--tvapi/libtv/tvin/CTvin.h2222
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.cpp54
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.h101
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp706
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.h153
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.cpp160
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.h53
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.cpp258
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.h75
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.cpp4424
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingCfg.h742
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp38
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h11
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.cpp2784
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.cpp3706
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.h338
-rw-r--r--tvapi/libtv/tvutils/CCondition.h87
-rw-r--r--tvapi/libtv/tvutils/CFile.cpp250
-rw-r--r--tvapi/libtv/tvutils/CFile.h53
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.cpp6
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.h9
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.cpp144
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.h44
-rw-r--r--tvapi/libtv/tvutils/CMutex.h116
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.cpp118
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.h98
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.cpp568
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.h45
-rw-r--r--tvapi/libtv/tvutils/CSqlite.cpp126
-rw-r--r--tvapi/libtv/tvutils/CSqlite.h292
-rw-r--r--tvapi/libtv/tvutils/CThread.cpp212
-rw-r--r--tvapi/libtv/tvutils/CThread.h79
-rw-r--r--tvapi/libtv/tvutils/CTvInput.cpp196
-rw-r--r--tvapi/libtv/tvutils/CTvInput.h49
-rw-r--r--tvapi/libtv/tvutils/serial_base.cpp560
-rw-r--r--tvapi/libtv/tvutils/serial_base.h34
-rw-r--r--tvapi/libtv/tvutils/serial_operate.cpp336
-rw-r--r--tvapi/libtv/tvutils/serial_operate.h72
-rw-r--r--tvapi/libtv/tvutils/tvutils.cpp3822
-rw-r--r--tvapi/libtv/tvutils/tvutils.h238
-rw-r--r--tvapi/libtv/tvutils/zepoll.cpp66
-rw-r--r--tvapi/libtv/tvutils/zepoll.h57
-rw-r--r--tvapi/libtv/version/version.cpp188
-rw-r--r--tvapi/libtv/version/version.h22
-rw-r--r--tvapi/libtv/vpp/CPQdb.cpp3183
-rw-r--r--tvapi/libtv/vpp/CPQdb.h321
-rw-r--r--tvapi/libtv/vpp/CVpp.cpp4772
-rw-r--r--tvapi/libtv/vpp/CVpp.h683
-rw-r--r--tvapi/libtv/vpp/pqdata.cpp216
-rw-r--r--tvapi/tvtests/Android.mk98
-rw-r--r--tvapi/tvtests/android_tvtest.cpp30
-rw-r--r--tvapi/tvtests/comm_test.cpp42
-rw-r--r--tvapi/tvtests/ssm_test.cpp420
-rw-r--r--tvapi/tvtests/tvconfig_test.cpp854
147 files changed, 55964 insertions, 55946 deletions
diff --git a/tvapi/libtv/tv/AutoBackLight.cpp b/tvapi/libtv/tv/AutoBackLight.cpp
index 8c659c6..d00f931 100644
--- a/tvapi/libtv/tv/AutoBackLight.cpp
+++ b/tvapi/libtv/tv/AutoBackLight.cpp
@@ -1,213 +1,213 @@
-#include "AutoBackLight.h"
-#include "../tvsetting/CTvSetting.h"
-#include "../tvconfig/tvconfig.h"
-#include "../tvutils/tvutils.h"
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#include <string.h>
-#include <errno.h>
-#include <dlfcn.h>
-#include <linux/fb.h>
-#include <stdlib.h>
-#include <cutils/properties.h>
-
-#ifdef LOG_TAG
-#undef LOG_TAG
-#define LOG_TAG "AutoBackLight"
-#endif
-
-AutoBackLight::AutoBackLight( CVpp *mVpp, CTvin *pTvin )
-{
- mAutoBacklightSource = SOURCE_TYPE_TV;
- myVpp = mVpp;
- myTvin = pTvin;
- mCur_source_default_backlight = 100;
- mCur_sig_state == SIG_STATE_NOSIG;
- mAutoBacklight_OnOff_Flag = false;
- mCurrent_backlight = 100;
- mCur_dest_backlight = 100;
-}
-
-AutoBackLight::~AutoBackLight()
-{
- mAutoBacklight_OnOff_Flag = false;
-}
-
-bool AutoBackLight::isAutoBacklightOn()
-{
- return mAutoBacklight_OnOff_Flag;
-}
-
-void AutoBackLight::updateSigState(int state)
-{
- mCur_sig_state = state;
- LOGD("updateSigState = %d", mCur_sig_state);
-}
-
-void AutoBackLight::startAutoBacklight( tv_source_input_type_t source_type )
-{
- mAutoBacklightSource = source_type;
- mCur_source_default_backlight = myVpp->Tv_GetBacklight(source_type);
- mCurrent_backlight = mCur_source_default_backlight;
- myVpp->Tv_SetBacklight(mCur_source_default_backlight, source_type, 1);
-
- /*
- mDefault_auto_bl_value = def_source_bl_value;
- dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100;
- // this if should not happen
- if (dynamicGamma > mCur_source_default_backlight) {
- dynamicGamma = mCur_source_default_backlight;
- }
- */
-
- if (!mAutoBacklight_OnOff_Flag) {
- mAutoBacklight_OnOff_Flag = true;
- this->run();
- }
-}
-
-void AutoBackLight::stopAutoBacklight()
-{
- if (mAutoBacklight_OnOff_Flag) {
- mAutoBacklight_OnOff_Flag = false;
- myVpp->Tv_SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1);
- }
-}
-
-/**
- * @ description: tpv project
- * @ return:value
- * value <= 20: mCur_dest_backlight is 14
- * 20 < value <= 160: mCur_dest_backlight is 57
- *160 < value: mCur_dest_backlight is 100
- */
-void AutoBackLight::adjustDstBacklight()
-{
- if (mCur_sig_state == SIG_STATE_STABLE) {
- //the node is used to adjust current ts is static or dynamtic frame
- char temp_str = 0;
- int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR);
- if (fd <= 0) {
- LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n");
- return;
- }
-
- if (read(fd, &temp_str, 1) > 0) {
-
- if (temp_str == 'N') {
- mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight;
- myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
- } else if (temp_str == 'Y') {
- int pwm = HistogramGet_AVE();
- if (pwm <= 20) {
- mCur_dest_backlight = 14;
- } else if (pwm > 20 && pwm <= 160) {
- mCur_dest_backlight = 57;
- } else {
- mCur_dest_backlight = 100;
- }
- //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight);
- }
- }
- close(fd);
- } else {
- mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight;
- myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
- }
-
- /*
- if (pwm > 0)
- pwm_max = pwm;
- else
- pwm_min = pwm;
- pwm = 255 - pwm;
- int average = (pwm_min + pwm_max) / 2;
- dynamicGammaOffset = (pwm - average) / 10;
- dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100;
-
- //the node is used to adjust current ts is static or dynamtic frame
- char temp_str = 0;
- int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR);
- if (fd <= 0) {
- LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n");
- return;
- }
-
- if (read(fd, &temp_str, 1) > 0) {
- if (temp_str== 'N') {
- mCur_dest_backlight = mCur_source_default_backlight;
- }
- else if (temp_str == 'Y') {
- mCur_dest_backlight = dynamicGamma + dynamicGammaOffset;
-
- if (mCur_dest_backlight > mCur_source_default_backlight) {
- mCur_dest_backlight = mCur_source_default_backlight;
- }
- else if (mCur_dest_backlight < 0) {
- mCur_dest_backlight = 0;
- }
- }
- }
- close(fd);
- */
-}
-
-void AutoBackLight::adjustBacklight()
-{
- if (mCurrent_backlight == mCur_dest_backlight) {
- return;
- } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) {
- mCurrent_backlight = mCur_dest_backlight;
- myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
- } else if (mCurrent_backlight < mCur_dest_backlight) {
- mCurrent_backlight = mCurrent_backlight + 2;
- myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
- } else if (mCurrent_backlight > mCur_dest_backlight) {
- mCurrent_backlight = mCurrent_backlight - 2;
- myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
- }
-
- //LOGD("mCurrent_backlight = %d", mCurrent_backlight);
-}
-
-/**
- * @ description: get current picture's average brightness
- * @ return: 0~255,0 is darkest,255 is brightest
- */
-int AutoBackLight::HistogramGet_AVE()
-{
- int hist_ave = 0;
- tvin_parm_t vdinParam;
- if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) {
- if (vdinParam.pixel_sum != 0) {
- hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum;
- LOGD("[hist_ave][%d].", hist_ave);
- return hist_ave;
- }
- LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n");
- return -1;
- }
- LOGE("VDIN_GetVdinParam get data error!!!\n");
- return -1;
-}
-
-bool AutoBackLight::threadLoop()
-{
- int sleeptime = 50;//ms
- int adjustBacklightCount = 0;
- while ( mAutoBacklight_OnOff_Flag ) {
- usleep ( sleeptime * 1000 );
- adjustBacklightCount++;
- if (adjustBacklightCount == 24) {
- adjustBacklightCount = 0;
- adjustDstBacklight();
- }
- adjustBacklight();
- }
-
- return false;//return true, run again, return false,not run.
-}
+#include "AutoBackLight.h"
+#include "../tvsetting/CTvSetting.h"
+#include "../tvconfig/tvconfig.h"
+#include "../tvutils/tvutils.h"
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <string.h>
+#include <errno.h>
+#include <dlfcn.h>
+#include <linux/fb.h>
+#include <stdlib.h>
+#include <cutils/properties.h>
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#define LOG_TAG "AutoBackLight"
+#endif
+
+AutoBackLight::AutoBackLight( CVpp *mVpp, CTvin *pTvin )
+{
+ mAutoBacklightSource = SOURCE_TYPE_TV;
+ myVpp = mVpp;
+ myTvin = pTvin;
+ mCur_source_default_backlight = 100;
+ mCur_sig_state == SIG_STATE_NOSIG;
+ mAutoBacklight_OnOff_Flag = false;
+ mCurrent_backlight = 100;
+ mCur_dest_backlight = 100;
+}
+
+AutoBackLight::~AutoBackLight()
+{
+ mAutoBacklight_OnOff_Flag = false;
+}
+
+bool AutoBackLight::isAutoBacklightOn()
+{
+ return mAutoBacklight_OnOff_Flag;
+}
+
+void AutoBackLight::updateSigState(int state)
+{
+ mCur_sig_state = state;
+ LOGD("updateSigState = %d", mCur_sig_state);
+}
+
+void AutoBackLight::startAutoBacklight( tv_source_input_type_t source_type )
+{
+ mAutoBacklightSource = source_type;
+ mCur_source_default_backlight = myVpp->Tv_GetBacklight(source_type);
+ mCurrent_backlight = mCur_source_default_backlight;
+ myVpp->Tv_SetBacklight(mCur_source_default_backlight, source_type, 1);
+
+ /*
+ mDefault_auto_bl_value = def_source_bl_value;
+ dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100;
+ // this if should not happen
+ if (dynamicGamma > mCur_source_default_backlight) {
+ dynamicGamma = mCur_source_default_backlight;
+ }
+ */
+
+ if (!mAutoBacklight_OnOff_Flag) {
+ mAutoBacklight_OnOff_Flag = true;
+ this->run();
+ }
+}
+
+void AutoBackLight::stopAutoBacklight()
+{
+ if (mAutoBacklight_OnOff_Flag) {
+ mAutoBacklight_OnOff_Flag = false;
+ myVpp->Tv_SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1);
+ }
+}
+
+/**
+ * @ description: tpv project
+ * @ return:value
+ * value <= 20: mCur_dest_backlight is 14
+ * 20 < value <= 160: mCur_dest_backlight is 57
+ *160 < value: mCur_dest_backlight is 100
+ */
+void AutoBackLight::adjustDstBacklight()
+{
+ if (mCur_sig_state == SIG_STATE_STABLE) {
+ //the node is used to adjust current ts is static or dynamtic frame
+ char temp_str = 0;
+ int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR);
+ if (fd <= 0) {
+ LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n");
+ return;
+ }
+
+ if (read(fd, &temp_str, 1) > 0) {
+
+ if (temp_str == 'N') {
+ mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight;
+ myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
+ } else if (temp_str == 'Y') {
+ int pwm = HistogramGet_AVE();
+ if (pwm <= 20) {
+ mCur_dest_backlight = 14;
+ } else if (pwm > 20 && pwm <= 160) {
+ mCur_dest_backlight = 57;
+ } else {
+ mCur_dest_backlight = 100;
+ }
+ //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight);
+ }
+ }
+ close(fd);
+ } else {
+ mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight;
+ myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
+ }
+
+ /*
+ if (pwm > 0)
+ pwm_max = pwm;
+ else
+ pwm_min = pwm;
+ pwm = 255 - pwm;
+ int average = (pwm_min + pwm_max) / 2;
+ dynamicGammaOffset = (pwm - average) / 10;
+ dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100;
+
+ //the node is used to adjust current ts is static or dynamtic frame
+ char temp_str = 0;
+ int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR);
+ if (fd <= 0) {
+ LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n");
+ return;
+ }
+
+ if (read(fd, &temp_str, 1) > 0) {
+ if (temp_str== 'N') {
+ mCur_dest_backlight = mCur_source_default_backlight;
+ }
+ else if (temp_str == 'Y') {
+ mCur_dest_backlight = dynamicGamma + dynamicGammaOffset;
+
+ if (mCur_dest_backlight > mCur_source_default_backlight) {
+ mCur_dest_backlight = mCur_source_default_backlight;
+ }
+ else if (mCur_dest_backlight < 0) {
+ mCur_dest_backlight = 0;
+ }
+ }
+ }
+ close(fd);
+ */
+}
+
+void AutoBackLight::adjustBacklight()
+{
+ if (mCurrent_backlight == mCur_dest_backlight) {
+ return;
+ } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) {
+ mCurrent_backlight = mCur_dest_backlight;
+ myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
+ } else if (mCurrent_backlight < mCur_dest_backlight) {
+ mCurrent_backlight = mCurrent_backlight + 2;
+ myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
+ } else if (mCurrent_backlight > mCur_dest_backlight) {
+ mCurrent_backlight = mCurrent_backlight - 2;
+ myVpp->Tv_SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0);
+ }
+
+ //LOGD("mCurrent_backlight = %d", mCurrent_backlight);
+}
+
+/**
+ * @ description: get current picture's average brightness
+ * @ return: 0~255,0 is darkest,255 is brightest
+ */
+int AutoBackLight::HistogramGet_AVE()
+{
+ int hist_ave = 0;
+ tvin_parm_t vdinParam;
+ if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) {
+ if(vdinParam.pixel_sum != 0) {
+ hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum;
+ LOGD("[hist_ave][%d].", hist_ave);
+ return hist_ave;
+ }
+ LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n");
+ return -1;
+ }
+ LOGE("VDIN_GetVdinParam get data error!!!\n");
+ return -1;
+}
+
+bool AutoBackLight::threadLoop()
+{
+ int sleeptime = 50;//ms
+ int adjustBacklightCount = 0;
+ while ( mAutoBacklight_OnOff_Flag ) {
+ usleep ( sleeptime * 1000 );
+ adjustBacklightCount++;
+ if (adjustBacklightCount == 24) {
+ adjustBacklightCount = 0;
+ adjustDstBacklight();
+ }
+ adjustBacklight();
+ }
+
+ return false;//return true, run again, return false,not run.
+}