summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--Android.mk14
-rw-r--r--screen_source/Android.mk31
-rw-r--r--screen_source/aml_screen.cpp296
-rw-r--r--screen_source/v4l2_vdin.cpp676
-rw-r--r--screen_source/v4l2_vdin.h144
-rw-r--r--tv_callback.h18
-rw-r--r--tv_input.cpp263
-rw-r--r--tvapi/android/Android.mk2
-rw-r--r--tvapi/android/include/ITv.h98
-rw-r--r--tvapi/android/include/ITvClient.h56
-rw-r--r--tvapi/android/include/ITvService.h66
-rw-r--r--tvapi/android/include/Tv.h158
-rw-r--r--tvapi/android/include/tvcmd.h1212
-rw-r--r--tvapi/android/jni/Android.mk135
-rw-r--r--tvapi/android/jni/cfbc_jni.cpp18
-rw-r--r--tvapi/android/jni/cfbc_test.cpp86
-rw-r--r--tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp (renamed from tvapi/android/jni/android_amlogic_tv.cpp)929
-rw-r--r--tvapi/android/libtvbinder/Android.mk48
-rw-r--r--tvapi/android/libtvbinder/ITv.cpp292
-rw-r--r--tvapi/android/libtvbinder/ITvClient.cpp116
-rw-r--r--tvapi/android/libtvbinder/ITvService.cpp100
-rw-r--r--tvapi/android/libtvbinder/Tv.cpp378
-rw-r--r--tvapi/android/tv/Android.mk23
-rw-r--r--tvapi/android/tv/CTv.cpp104
-rw-r--r--tvapi/android/tv/CTv.h54
-rw-r--r--tvapi/android/tvserver/Android.mk164
-rw-r--r--tvapi/android/tvserver/TvService.cpp8911
-rw-r--r--tvapi/android/tvserver/TvService.h170
-rw-r--r--tvapi/android/tvserver/main.cpp46
-rw-r--r--tvapi/android/tvserver/tv_callback.h18
-rw-r--r--[-rwxr-xr-x]tvapi/build/include/.gitignore0
-rw-r--r--tvapi/build/include/xxxconfig.h1
-rw-r--r--tvapi/docs/tv.uml12156
-rw-r--r--tvapi/libtv/Android.mk12
-rw-r--r--tvapi/libtv/audio/CAudioCustomerCtrl.cpp126
-rw-r--r--tvapi/libtv/audio/CAudioCustomerCtrl.h31
-rw-r--r--tvapi/libtv/audio/CTvAudio.cpp30
-rw-r--r--tvapi/libtv/audio/CTvAudio.h76
-rw-r--r--tvapi/libtv/audio/audio_alsa.cpp2073
-rw-r--r--tvapi/libtv/audio/audio_alsa.h257
-rw-r--r--tvapi/libtv/audio/audio_android.cpp1035
-rw-r--r--tvapi/libtv/audio/audio_android.h78
-rw-r--r--tvapi/libtv/audio/audio_android_effect.cpp591
-rw-r--r--tvapi/libtv/audio/audio_android_effect.h65
-rw-r--r--tvapi/libtv/audio/audio_api.cpp2470
-rw-r--r--tvapi/libtv/audio/audio_api.h323
-rw-r--r--tvapi/libtv/audio/audio_effect.cpp356
-rw-r--r--tvapi/libtv/audio/audio_effect.h58
-rw-r--r--tvapi/libtv/include/amstream.h526
-rw-r--r--tvapi/libtv/include/amvecm.h136
-rw-r--r--tvapi/libtv/include/cm.h308
-rw-r--r--tvapi/libtv/include/hdmirx_cec.h316
-rw-r--r--tvapi/libtv/include/ve.h461
-rw-r--r--tvapi/libtv/tv/AutoBackLight.cpp425
-rw-r--r--tvapi/libtv/tv/CAutoPQparam.cpp150
-rw-r--r--tvapi/libtv/tv/CAutoPQparam.h41
-rw-r--r--tvapi/libtv/tv/CAv.cpp116
-rw-r--r--tvapi/libtv/tv/CAv.h24
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.cpp443
-rw-r--r--tvapi/libtv/tv/CFbcCommunication.h25
-rw-r--r--tvapi/libtv/tv/CFrontEnd.cpp198
-rw-r--r--tvapi/libtv/tv/CFrontEnd.h19
-rw-r--r--tvapi/libtv/tv/CTv.cpp13003
-rw-r--r--tvapi/libtv/tv/CTv.h1453
-rw-r--r--tvapi/libtv/tv/CTvBooking.cpp324
-rw-r--r--tvapi/libtv/tv/CTvBooking.h166
-rw-r--r--tvapi/libtv/tv/CTvEpg.cpp24
-rw-r--r--tvapi/libtv/tv/CTvEv.h12
-rw-r--r--tvapi/libtv/tv/CTvLog.h8
-rw-r--r--tvapi/libtv/tv/CTvRecord.cpp552
-rw-r--r--tvapi/libtv/tv/CTvRecord.h92
-rw-r--r--tvapi/libtv/tv/CTvSatellite.h42
-rw-r--r--tvapi/libtv/tv/CTvScanner.cpp335
-rw-r--r--tvapi/libtv/tv/CTvScanner.h26
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.cpp1279
-rw-r--r--tvapi/libtv/tv/CTvScreenCapture.h351
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.cpp361
-rw-r--r--tvapi/libtv/tv/CTvSubtitle.h484
-rw-r--r--tvapi/libtv/tv/CTvVchipCheck.cpp6
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.cpp4
-rw-r--r--tvapi/libtv/tv/CUpgradeFBC.h282
-rw-r--r--tvapi/libtv/tv/ScreenCatch.cpp379
-rw-r--r--tvapi/libtv/tvconfig/CIniFile.cpp706
-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.h574
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.cpp25
-rw-r--r--tvapi/libtv/tvdb/CTvDatabase.h188
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.cpp86
-rw-r--r--tvapi/libtv/tvdb/CTvDimension.h194
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.cpp483
-rw-r--r--tvapi/libtv/tvdb/CTvEvent.h170
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.cpp88
-rw-r--r--tvapi/libtv/tvdb/CTvGroup.h60
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.cpp1806
-rw-r--r--tvapi/libtv/tvdb/CTvProgram.h1066
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.cpp366
-rw-r--r--tvapi/libtv/tvdb/CTvRegion.h84
-rw-r--r--tvapi/libtv/tvin/CHDMIRxCEC.cpp38
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.cpp478
-rw-r--r--tvapi/libtv/tvin/CSourceConnectDetect.h73
-rw-r--r--tvapi/libtv/tvin/CTvin.cpp203
-rw-r--r--tvapi/libtv/tvin/CTvin.h191
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.cpp54
-rw-r--r--tvapi/libtv/tvsetting/CBlobDevice.h100
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp403
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceE2prom.h152
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.cpp160
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceFile.h52
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.cpp258
-rw-r--r--tvapi/libtv/tvsetting/CBlobDeviceRam.h74
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.cpp4658
-rw-r--r--tvapi/libtv/tvsetting/CTvSetting.h30
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingCfg.h782
-rw-r--r--tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp10
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.cpp2726
-rw-r--r--tvapi/libtv/tvsetting/TvKeyData.h64
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.cpp2575
-rw-r--r--tvapi/libtv/tvsetting/audio_cfg.h239
-rw-r--r--tvapi/libtv/tvutils/CCondition.h2
-rw-r--r--tvapi/libtv/tvutils/CFile.cpp65
-rw-r--r--tvapi/libtv/tvutils/CFile.h3
-rw-r--r--tvapi/libtv/tvutils/CHdmiCecCmd.cpp2
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.cpp31
-rw-r--r--tvapi/libtv/tvutils/CMsgQueue.h3
-rw-r--r--tvapi/libtv/tvutils/CSerialCommunication.h96
-rw-r--r--tvapi/libtv/tvutils/CSerialPort.cpp18
-rw-r--r--tvapi/libtv/tvutils/CSqlite.cpp8
-rw-r--r--tvapi/libtv/tvutils/CSqlite.h12
-rw-r--r--tvapi/libtv/tvutils/CThread.cpp2
-rw-r--r--tvapi/libtv/tvutils/CTvInput.cpp25
-rw-r--r--tvapi/libtv/tvutils/CTvInput.h4
-rw-r--r--tvapi/libtv/tvutils/serial_base.h34
-rw-r--r--tvapi/libtv/tvutils/serial_operate.cpp66
-rw-r--r--tvapi/libtv/tvutils/serial_operate.h70
-rw-r--r--tvapi/libtv/tvutils/tvutils.cpp3931
-rw-r--r--tvapi/libtv/tvutils/tvutils.h222
-rw-r--r--tvapi/libtv/tvutils/zepoll.cpp2
-rw-r--r--tvapi/libtv/version/version.cpp188
-rw-r--r--tvapi/libtv/version/version.h22
-rw-r--r--tvapi/libtv/vpp/CPQdb.cpp3509
-rw-r--r--tvapi/libtv/vpp/CPQdb.h340
-rw-r--r--tvapi/libtv/vpp/CVpp.cpp5602
-rw-r--r--tvapi/libtv/vpp/CVpp.h230
-rw-r--r--tvapi/tvtests/Android.mk98
-rw-r--r--tvapi/tvtests/android_tvtest.cpp2
-rw-r--r--tvapi/tvtests/comm_test.cpp4
-rw-r--r--tvapi/tvtests/ssm_test.cpp420
-rw-r--r--tvapi/tvtests/tvconfig_test.cpp854
151 files changed, 45277 insertions, 47437 deletions
diff --git a/tvapi/libtv/tv/CFrontEnd.cpp b/tvapi/libtv/tv/CFrontEnd.cpp
index a11d979..86c4a0c 100644
--- a/tvapi/libtv/tv/CFrontEnd.cpp
+++ b/tvapi/libtv/tv/CFrontEnd.cpp
@@ -28,12 +28,16 @@ CFrontEnd::CFrontEnd()
mpObserver = NULL;
mCurFineFreq = 0;
mCurMode = FE_ANALOG;
+ mCurFreq = -1;
+ mCurPara1 = -1;
+ mCurPara2 = -1;
+ mbFEOpened = false;
}
CFrontEnd::~CFrontEnd()
{
AM_EVT_Unsubscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, NULL);
- if(mFrontDevID == FE_DEV_ID)
+ if (mFrontDevID == FE_DEV_ID)
AM_FEND_Close(mFrontDevID);
mFrontDevID = -1;
}
@@ -43,10 +47,15 @@ int CFrontEnd::Open(int mode)
AM_FEND_OpenPara_t para;
int rc = 0;
+ if (mbFEOpened) {
+ LOGD("FrontEnd have opened, return");
+ return 0;
+ }
+ mbFEOpened = true;
memset(&para, 0, sizeof(AM_FEND_OpenPara_t));
para.mode = mode;
rc = AM_FEND_Open(mFrontDevID, &para);
- if((rc == AM_FEND_ERR_BUSY) || (rc == 0)) {
+ if ((rc == AM_FEND_ERR_BUSY) || (rc == 0)) {
AM_EVT_Subscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, this);
LOGD("%s,frontend dev open success!\n", __FUNCTION__);
return 0;
@@ -54,14 +63,25 @@ int CFrontEnd::Open(int mode)
LOGD("%s,frontend dev open failed! dvb error id is %d\n", __FUNCTION__, rc);
return -1;
}
+ mCurMode = mode;
+ mCurFreq = -1;
+ mCurPara1 = -1;
+ mCurPara2 = -1;
}
int CFrontEnd::Close()
{
int rc = 0;
+ if (!mbFEOpened) {
+ LOGD("FrontEnd have close, but not return");
+ }
rc = AM_FEND_Close(mFrontDevID);
-
- if(rc != 0) {
+ mbFEOpened = false;
+ mCurMode = -1;
+ mCurFreq = -1;
+ mCurPara1 = -1;
+ mCurPara2 = -1;
+ if (rc != 0) {
LOGD("%s,frontend_close fail! dvb error id is %d\n", __FUNCTION__, rc);
return -1;
} else {
@@ -73,10 +93,10 @@ int CFrontEnd::Close()
int CFrontEnd::setMode(int mode)
{
int rc = 0;
- if(mCurMode == mode) return 0;
+ if (mCurMode == mode) return 0;
rc = AM_FEND_SetMode(mFrontDevID, mode);
- if(rc != 0) {
+ if (rc != 0) {
LOGD("%s,front dev set mode failed! dvb error id is %d\n", __FUNCTION__, rc);
return -1;
}
@@ -89,12 +109,20 @@ int CFrontEnd::setPara(int mode, int freq, int para1, int para2)
int buff_size = 32;
char VideoStdBuff[buff_size];
char audioStdBuff[buff_size];
+ if (mCurMode == mode && mCurFreq == freq && mCurPara1 == para1 && mCurPara2 == para2) {
+ LOGD("fe setpara is same return");
+ return 0;
+ }
+ mCurMode = mode;
+ mCurFreq = freq;
+ mCurPara1 = para1;
+ mCurPara2 = para2;
AM_FENDCTRL_DVBFrontendParameters_t dvbfepara;
memset(&dvbfepara, 0, sizeof(AM_FENDCTRL_DVBFrontendParameters_t));
LOGD("%s,set fe para mode = %d freq=%d p1=%d p2=%d", __FUNCTION__, mode, freq, para1, para2);
dvbfepara.m_type = mode;
- switch(mode) {
+ switch (mode) {
case FE_OFDM:
dvbfepara.terrestrial.para.frequency = freq;
dvbfepara.terrestrial.para.u.ofdm.bandwidth = (fe_bandwidth_t)para1;
@@ -120,10 +148,11 @@ int CFrontEnd::setPara(int mode, int freq, int para1, int para2)
dvbfepara.analog.para.frequency = freq;
dvbfepara.analog.para.u.analog.std = para1;
dvbfepara.analog.para.u.analog.afc_range = AFC_RANGE;
- if(para2 == 0) {
+ if (para2 == 0) {
dvbfepara.analog.para.u.analog.flag |= ANALOG_FLAG_ENABLE_AFC;
} else {
dvbfepara.analog.para.u.analog.flag &= ~ANALOG_FLAG_ENABLE_AFC;
+ dvbfepara.analog.para.u.analog.afc_range = 0;
}
printAudioStdStr(para1, audioStdBuff, buff_size);
@@ -146,12 +175,12 @@ int CFrontEnd::setPara(int mode, int freq, int para1, int para2)
int CFrontEnd::fineTune(int fineFreq)
{
int ret = 0;
- if(mCurFineFreq == fineFreq) return -1;
+ if (mCurFineFreq == fineFreq) return -1;
mCurFineFreq = fineFreq;
ret = AM_FEND_FineTune(FE_DEV_ID, fineFreq);
- if(ret != 0) {
+ if (ret != 0) {
LOGD("%s, fail! dvb error id is %d", __FUNCTION__, ret);
return -1;
}
@@ -167,11 +196,11 @@ int CFrontEnd::GetTSSource(AM_DMX_Source_t *src)
void CFrontEnd::dmd_fend_callback(long dev_no, int event_type, void *param, void *user_data)
{
CFrontEnd *pFront = (CFrontEnd *)user_data;
- if(NULL == pFront) {
+ if (NULL == pFront) {
LOGD("%s,warnning : dmd_fend_callback NULL == pFront\n", __FUNCTION__);
return ;
}
- if(pFront->mpObserver == NULL) {
+ if (pFront->mpObserver == NULL) {
LOGD("%s,warnning : mpObserver NULL == mpObserver\n", __FUNCTION__);
return;
}
@@ -193,19 +222,19 @@ void CFrontEnd::dmd_fend_callback(long dev_no, int event_type, void *param, void
int CFrontEnd::stdAndColorToAudioEnum(int data)
{
atv_audio_std_t std = CC_ATV_AUDIO_STD_DK;
- if(((data & V4L2_STD_PAL_DK) == V4L2_STD_PAL_DK) ||
+ if (((data & V4L2_STD_PAL_DK) == V4L2_STD_PAL_DK) ||
((data & V4L2_STD_SECAM_DK) == V4L2_STD_SECAM_DK)) {
std = CC_ATV_AUDIO_STD_DK;
- } else if((data & V4L2_STD_PAL_I) == V4L2_STD_PAL_I) {
+ } else if ((data & V4L2_STD_PAL_I) == V4L2_STD_PAL_I) {
std = CC_ATV_AUDIO_STD_I;
- } else if(((data & V4L2_STD_PAL_BG) == V4L2_STD_PAL_BG) ||
- ((data & V4L2_STD_SECAM_B) == V4L2_STD_SECAM_B) ||
- ((data & V4L2_STD_SECAM_G) == V4L2_STD_SECAM_G )) {
+ } else if (((data & V4L2_STD_PAL_BG) == V4L2_STD_PAL_BG) ||
+ ((data & V4L2_STD_SECAM_B) == V4L2_STD_SECAM_B) ||
+ ((data & V4L2_STD_SECAM_G) == V4L2_STD_SECAM_G )) {
std = CC_ATV_AUDIO_STD_BG;
- } else if(((data & V4L2_STD_PAL_M) == V4L2_STD_PAL_M) ||
- ((data & V4L2_STD_NTSC_M) == V4L2_STD_NTSC_M)) {
+ } else if (((data & V4L2_STD_PAL_M) == V4L2_STD_PAL_M) ||
+ ((data & V4L2_STD_NTSC_M) == V4L2_STD_NTSC_M)) {
std = CC_ATV_AUDIO_STD_M;
- } else if((data & V4L2_STD_SECAM_L) == V4L2_STD_SECAM_L) {
+ } else if ((data & V4L2_STD_SECAM_L) == V4L2_STD_SECAM_L) {
std = CC_ATV_AUDIO_STD_L;
}
return std ;
@@ -214,16 +243,25 @@ int CFrontEnd::stdAndColorToAudioEnum(int data)
int CFrontEnd::stdAndColorToVideoEnum(int std)
{
atv_video_std_t video_standard = CC_ATV_VIDEO_STD_PAL;
- if((std & V4L2_COLOR_STD_PAL) == V4L2_COLOR_STD_PAL) {
+ if ((std & V4L2_COLOR_STD_PAL) == V4L2_COLOR_STD_PAL) {
video_standard = CC_ATV_VIDEO_STD_PAL;
- } else if((std & V4L2_COLOR_STD_NTSC) == V4L2_COLOR_STD_NTSC) {
+ } else if ((std & V4L2_COLOR_STD_NTSC) == V4L2_COLOR_STD_NTSC) {
video_standard = CC_ATV_VIDEO_STD_NTSC;
- } else if((std & V4L2_COLOR_STD_SECAM) == V4L2_COLOR_STD_SECAM) {
+ } else if ((std & V4L2_COLOR_STD_SECAM) == V4L2_COLOR_STD_SECAM) {
video_standard = CC_ATV_VIDEO_STD_SECAM;
}
return video_standard;
}
+bool CFrontEnd::stdIsColorAuto(int std)
+{
+ return ((std & V4L2_COLOR_STD_AUTO) == V4L2_COLOR_STD_AUTO) ? true : false;
+}
+
+int CFrontEnd::addColorAutoFlag(int std)
+{
+ return std | V4L2_COLOR_STD_AUTO;
+}
v4l2_std_id CFrontEnd::enumToStdAndColor(int videoStd, int audioStd)
{
v4l2_std_id tmpTunerStd = 0;
@@ -238,7 +276,7 @@ v4l2_std_id CFrontEnd::enumToStdAndColor(int videoStd, int audioStd)
} else if (audioStd == CC_ATV_AUDIO_STD_M) {
tmpTunerStd |= V4L2_STD_PAL_M;
}
- } else if (videoStd == CC_ATV_VIDEO_STD_NTSC) {
+ } else if (videoStd == CC_ATV_VIDEO_STD_NTSC || videoStd == CC_ATV_VIDEO_STD_AUTO) {
tmpTunerStd |= V4L2_COLOR_STD_NTSC;
if (audioStd == CC_ATV_AUDIO_STD_DK) {
tmpTunerStd |= V4L2_STD_PAL_DK;
@@ -262,27 +300,27 @@ v4l2_std_id CFrontEnd::enumToStdAndColor(int videoStd, int audioStd)
} else if (audioStd == CC_ATV_AUDIO_STD_L) {
tmpTunerStd |= V4L2_STD_SECAM_L;
}
- } else if(videoStd == CC_ATV_VIDEO_STD_AUTO) {
- tmpTunerStd |= V4L2_COLOR_STD_AUTO;
- tmpTunerStd |= V4L2_STD_PAL_DK;
+
}
return tmpTunerStd;
}
-int CFrontEnd::getPara(frontend_para_set_t *fpara)
+int CFrontEnd::getPara(int *mode, int *freq, int *para1, int *para2)
{
- int mode;
- int ret1, ret2;
struct dvb_frontend_parameters para;
memset(&para, 0, sizeof(struct dvb_frontend_parameters));
- if((ret1 = AM_FEND_GetPara(mFrontDevID, &para)) < 0) {
- LOGD("%s,getPara faiture\n", __FUNCTION__ );
- return -1;
+ /*if((ret1=AM_FEND_GetPara(mFrontDevID, &para))<0) {
+ LOGD("%s,getPara faiture\n", __FUNCTION__ );
+ return -1;
- //fpara->mode = fend_mode ;
+ //fpara->mode = fend_mode ;
- }
+ }*/
+ *mode = mCurMode;
+ *freq = mCurFreq;
+ *para1 = mCurPara1;
+ *para2 = mCurPara2;
return 0;
}
@@ -309,20 +347,24 @@ int CFrontEnd::getStrength()
int CFrontEnd::formatATVFreq(int tmp_freq)
{
- int tmp_val = 25;
- int ATV_1MHZ = 1000000;
- int ATV_10KHZ = 10000;
-
- tmp_freq = (tmp_freq / ATV_1MHZ) * ATV_1MHZ + tmp_val * ATV_10KHZ;
-
- return tmp_freq;
+ const int ATV_1MHZ = 1000000;
+ const int ATV_50KHZ = 50 * 1000;
+ const int ATV_25KHZ = 25 * 1000;
+ int mastar = (tmp_freq / ATV_50KHZ) * ATV_50KHZ;
+ int follow = tmp_freq % ATV_50KHZ;
+ if (follow >= ATV_25KHZ) {
+ follow = ATV_50KHZ;
+ } else {
+ follow = 0;
+ }
+ return mastar + follow;
}
int CFrontEnd::printVideoStdStr(int compStd, char strBuffer[], int buff_size)
{
memset(strBuffer, 0, buff_size);
int videoStd = stdAndColorToVideoEnum(compStd);
- switch(videoStd) {
+ switch (videoStd) {
case CC_ATV_VIDEO_STD_AUTO:
strcpy(strBuffer, "AUTO");
break;
@@ -347,7 +389,7 @@ int CFrontEnd::printAudioStdStr(int compStd, char strBuffer[], int buff_size)
{
memset(strBuffer, 0, buff_size);
int audioStd = stdAndColorToAudioEnum(compStd);
- switch(audioStd) {
+ switch (audioStd) {
case CC_ATV_AUDIO_STD_DK:
strcpy(strBuffer, "DK");
break;
@@ -402,7 +444,7 @@ int CFrontEnd::setCvbsAmpOut(int tmp)
{
int rc = AM_SUCCESS;
rc = AM_FEND_SetCvbsAmpOut(mFrontDevID, tmp);
- if(rc == AM_SUCCESS) {
+ if (rc == AM_SUCCESS) {
LOGD("%s, sucessful!", __FUNCTION__);
rc = 0;
} else {
@@ -417,7 +459,7 @@ int CFrontEnd::setThreadDelay(int delay)
int rc = AM_SUCCESS;
rc = AM_FEND_SetThreadDelay(mFrontDevID, delay);
- if(rc == AM_SUCCESS) {
+ if (rc == AM_SUCCESS) {
LOGD("frontend_setThreadDelay sucessful!\n");
return 0;
} else {
@@ -441,7 +483,7 @@ int CFrontEnd::lock(int frequency, int symbol_rate, int modulation, int bandwidt
return -1;
fparam.frequency = frequency;
- switch(finfo.type) {
+ switch (finfo.type) {
case FE_QAM:
default:
@@ -476,7 +518,7 @@ int CFrontEnd::lock(int frequency, int symbol_rate, int modulation, int bandwidt
rt = AM_FEND_Lock(FE_DEV_ID, &fparam, &status);
- if((!rt) && (status & FE_HAS_LOCK)) {
+ if ((!rt) && (status & FE_HAS_LOCK)) {
LOGD("frontend_lock sucessful!\n");
return true;
} else {
@@ -495,6 +537,11 @@ int CFrontEnd::getInfo()
return 0;
}
+int CFrontEnd::setTunerAfc(int afc)
+{
+ AM_FEND_SetAfc(FE_DEV_ID, afc);
+ return 0;
+}
int CFrontEnd::getStatus()
{
@@ -525,6 +572,7 @@ int CFrontEnd::stdEnumToCvbsFmt (int videoStd, int audioStd)
tvin_sig_fmt_e cvbs_fmt = TVIN_SIG_FMT_NULL;
if ( videoStd == CC_ATV_VIDEO_STD_PAL ) {
+ cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I;
if ( audioStd == CC_ATV_AUDIO_STD_DK ) {
cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I;
} else if ( audioStd == CC_ATV_AUDIO_STD_I ) {
@@ -535,6 +583,7 @@ int CFrontEnd::stdEnumToCvbsFmt (int videoStd, int audioStd)
cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_M;
}
} else if ( videoStd == CC_ATV_VIDEO_STD_NTSC ) {
+ cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M;
if ( audioStd == CC_ATV_AUDIO_STD_DK ) {
cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M;
} else if ( audioStd == CC_ATV_AUDIO_STD_I ) {
@@ -556,8 +605,6 @@ int CFrontEnd::stdEnumToCvbsFmt (int videoStd, int audioStd)
} else if ( audioStd == CC_ATV_AUDIO_STD_L ) {
cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM;
}
- } else if(CC_ATV_VIDEO_STD_AUTO == videoStd) {
- cvbs_fmt = TVIN_SIG_FMT_NULL;
}
return cvbs_fmt;
}
@@ -566,3 +613,54 @@ int CFrontEnd::ClearAnalogFrontEnd()
{
return this->setPara ( FE_ANALOG, 44250000, V4L2_COLOR_STD_PAL | V4L2_STD_PAL_DK, 0 );
}
+
+/*to control afc function*/
+int CFrontEnd::SetAnalogFrontEndTimerSwitch(int onOff)
+{
+ FILE *fp = NULL;
+ int ret = -1;
+
+ fp = fopen ( "/sys/module/aml_fe/parameters/aml_timer_en", "w" );
+
+ if ( fp == NULL ) {
+ LOGW ( "Open /sys/module/aml_fe/parameters/aml_timer_en error(%s)!\n", strerror ( errno ) );
+ return -1;
+ }
+ if (onOff)
+ ret = fprintf(fp, "%s", "1");
+ else
+ ret = fprintf(fp, "%s", "0");
+ if ( ret < 0 ) {
+ LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) );
+ }
+ LOGD("SetAnalogFrontEndTimerSwitch %d", onOff);
+ fclose ( fp );
+ fp = NULL;
+
+ return ret;
+}
+
+int CFrontEnd::SetAnalogFrontEndSearhSlowMode(int onOff)
+{
+ FILE *fp = NULL;
+ int ret = -1;
+
+ fp = fopen ( "/sys/module/aml_fe/parameters/slow_mode", "w" );
+
+ if ( fp == NULL ) {
+ LOGW ( "Open /sys/module/aml_fe/parameters/slow_mode error(%s)!\n", strerror ( errno ) );
+ return -1;
+ }
+ if (onOff)
+ ret = fprintf(fp, "%s", "1");
+ else
+ ret = fprintf(fp, "%s", "0");
+ if ( ret < 0 ) {
+ LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) );
+ }
+ LOGD("SetAnalogFrontEndSearhSlowMode %d", onOff);
+ fclose ( fp );
+ fp = NULL;
+
+ return ret;
+}