summaryrefslogtreecommitdiff
path: root/tvapi/libtv/projects/skyworth_n310_v1/CTvSkyworthDtmbN310.cpp (plain)
blob: c89d16963527f1bb52feed61f16c3e2c21d702f1
1#include "CTvSkyworthDtmbN310.h"
2#include <cutils/properties.h>
3
4CTvSkyworthDtmbN310::CTvSkyworthDtmbN310()
5{
6 LOGD("CTvSkyworthDtmbN310");
7 if (CTvDatabase::GetTvDb()->isAtv256ProgInsertForSkyworth() == false) {
8 CTvDatabase::GetTvDb()->insert256AtvProgForSkyworth();
9 LOGD("Atv has not 256 program,insert 256 blank program to db\n");
10 }
11}
12
13CTvSkyworthDtmbN310::~CTvSkyworthDtmbN310()
14{
15}
16
17//searchType 0:not 256 1:is 256 Program
18int CTvSkyworthDtmbN310::atvAutoScan(int videoStd, int audioStd, int searchType)
19{
20 int minScanFreq, maxScanFreq, vStd, aStd;
21 AutoMutex lock ( mLock );
22 mAv.DisableVideoWithBlueColor();
23 mTvAction = mTvAction | TV_ACTION_SCANNING;
24 mTvScanner.setObserver ( &mTvMsgQueue );
25 mTvAudio.SetAudioMuteForTv ( CC_AUDIO_MUTE );
26 getATVMinMaxFreq (&minScanFreq, &maxScanFreq );
27 if ( minScanFreq == 0 || maxScanFreq == 0 || minScanFreq > maxScanFreq ) {
28 LOGE ( "%s, auto scan freq set is error min=%d, max=%d", __FUNCTION__, minScanFreq, maxScanFreq );
29 return -1;
30 }
31 //if set std null AUTO, use default PAL/DK
32 //if(videoStd == CC_ATV_VIDEO_STD_AUTO) {
33 // vStd = CC_ATV_VIDEO_STD_PAL;
34 // aStd = CC_ATV_AUDIO_STD_DK;
35 //} else {
36 vStd = videoStd;
37 aStd = audioStd;
38 //}
39 tvin_port_t source_port = mTvin.Tvin_GetSourcePortBySourceInput(SOURCE_TV);
40 mTvin.VDIN_OpenPort ( source_port );
41 LOGD("%s, atv auto scan vstd=%d, astd=%d ", __FUNCTION__, vStd, aStd);
42 v4l2_std_id stdAndColor = mFrontDev.enumToStdAndColor(vStd, aStd);
43
44 int fmt = CFrontEnd::stdEnumToCvbsFmt (vStd, aStd);
45 mTvin.AFE_SetCVBSStd ( ( tvin_sig_fmt_t ) fmt );
46 m_cur_set_info_fmt = ( tvin_sig_fmt_t )fmt;
47
48 if (searchType == 0) {
49 CTvProgram::CleanAllProgramBySrvType ( CTvProgram::TYPE_ATV );
50 } else if (searchType == 1) { //type for skyworth, and insert 256 prog, and just update ts table
51 Vector<sp <CTvChannel> > v_channel;
52 CTvChannel::getChannelListBySrc(CTvChannel::MODE_ANALOG, v_channel);
53 int size = v_channel.size();
54 LOGD("showbo --size = %d", size);
55 CTvChannel::CleanAllChannelBySrc (CTvChannel::MODE_ANALOG);
56 CTvDatabase::GetTvDb()->beginTransaction();
57 for (int i = 0; i < size; i++) {
58 CTvProgram::deleteChannelsProgram(*v_channel[i]);
59 }
60 CTvDatabase::GetTvDb()->commitTransaction();
61 if (CTvDatabase::GetTvDb()->isAtv256ProgInsertForSkyworth() == false) {
62 CTvDatabase::GetTvDb()->insert256AtvProgForSkyworth();
63 }
64 }
65 minScanFreq = mFrontDev.formatATVFreq ( minScanFreq );
66 maxScanFreq = mFrontDev.formatATVFreq ( maxScanFreq );
67 LOGD("%s, atv auto scan vstd=%d, astd=%d stdandcolor=%lld", __FUNCTION__, vStd, aStd, stdAndColor);
68 mSigDetectThread.setVdinNoSigCheckKeepTimes(1000, false);
69 mFrontDev.Open(FE_ANALOG);
70 mTvScanner.autoAtvScan ( minScanFreq, maxScanFreq, stdAndColor, searchType );
71 return 0;
72}
73
74int CTvSkyworthDtmbN310::OpenTv ( void )
75{
76 CTv::OpenTv();
77 StartTvLock();
78 //fast start
79 setSourceSwitchAndPlay();
80 return 0;
81}
82
83int CTvSkyworthDtmbN310::StartTvLock ()
84{
85 CTv::StartTvLock();
86 return 0;
87}
88
89