blob: c89d16963527f1bb52feed61f16c3e2c21d702f1
1 | #include "CTvSkyworthDtmbN310.h" |
2 | #include <cutils/properties.h> |
3 | |
4 | CTvSkyworthDtmbN310::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 | |
13 | CTvSkyworthDtmbN310::~CTvSkyworthDtmbN310() |
14 | { |
15 | } |
16 | |
17 | //searchType 0:not 256 1:is 256 Program |
18 | int 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 | |
74 | int CTvSkyworthDtmbN310::OpenTv ( void ) |
75 | { |
76 | CTv::OpenTv(); |
77 | StartTvLock(); |
78 | //fast start |
79 | setSourceSwitchAndPlay(); |
80 | return 0; |
81 | } |
82 | |
83 | int CTvSkyworthDtmbN310::StartTvLock () |
84 | { |
85 | CTv::StartTvLock(); |
86 | return 0; |
87 | } |
88 | |
89 |