=== libs/libmythtv/eithelper.cpp
==================================================================
|
|
|
26 | 26 | #define LOC QString("EITHelper: ") |
27 | 27 | #define LOC_ERR QString("EITHelper, Error: ") |
28 | 28 | |
29 | | EITHelper::EITHelper() : |
30 | | eitfixup(new EITFixUp()), eitcache(new EITCache()), |
| 29 | EITHelper::EITHelper(EITCache *cache) : |
| 30 | eitfixup(new EITFixUp()), eitcache(cache), |
31 | 31 | gps_offset(-1 * GPS_LEAP_SECONDS), utc_offset(0), |
32 | 32 | sourceid(0) |
33 | 33 | { |
=== libs/libmythtv/eithelper.h
==================================================================
|
|
|
51 | 51 | class EITHelper |
52 | 52 | { |
53 | 53 | public: |
54 | | EITHelper(); |
| 54 | EITHelper(EITCache *cache); |
55 | 55 | virtual ~EITHelper(); |
56 | 56 | |
57 | 57 | uint GetListSize(void) const; |
=== libs/libmythtv/eitscanner.h
==================================================================
|
|
|
17 | 17 | class EITHelper; |
18 | 18 | class dvb_channel_t; |
19 | 19 | class ProgramMapTable; |
| 20 | class EITCache; |
20 | 21 | |
21 | 22 | class EITSource |
22 | 23 | { |
… |
… |
|
28 | 29 | class EITScanner |
29 | 30 | { |
30 | 31 | public: |
31 | | EITScanner(); |
| 32 | EITScanner(EITCache *cache); |
32 | 33 | ~EITScanner() { TeardownAll(); } |
33 | 34 | |
34 | 35 | void StartPassiveScan(ChannelBase*, EITSource*, bool ignore_source); |
=== libs/libmythtv/tv_rec.cpp
==================================================================
|
|
|
117 | 117 | // Various components TVRec coordinates |
118 | 118 | : recorder(NULL), channel(NULL), signalMonitor(NULL), |
119 | 119 | scanner(NULL), dvbsiparser(NULL), dummyRecorder(NULL), |
| 120 | eitcache(NULL), |
120 | 121 | // Configuration variables from database |
121 | 122 | transcodeFirst(false), earlyCommFlag(false), runJobOnHostOnly(false), |
122 | 123 | audioSampleRateDB(0), overRecordSecNrml(0), overRecordSecCat(0), |
… |
… |
|
151 | 152 | bool init_run = false; |
152 | 153 | if (genOpt.cardtype == "DVB") |
153 | 154 | { |
154 | | if (!scanner) |
155 | | scanner = new EITScanner(); |
| 155 | if (!scanner && eitcache) |
| 156 | scanner = new EITScanner(eitcache); |
156 | 157 | |
157 | 158 | #ifdef USING_DVB |
158 | 159 | channel = new DVBChannel(genOpt.videodev.toInt(), this); |
… |
… |
|
904 | 905 | #ifdef USING_HDHOMERUN |
905 | 906 | HDHRChannel *hdhr_channel = GetHDHRChannel(); |
906 | 907 | HDHRRecorder *hdhr_recorder = GetHDHRRecorder(); |
907 | | if (hdhr_channel && hdhr_recorder && !scanner) |
| 908 | if (hdhr_channel && hdhr_recorder && !scanner && eitcache) |
908 | 909 | { |
909 | 910 | uint ignore = gContext->GetNumSetting("EITIgnoresSource", 0); |
910 | | scanner = new EITScanner(); |
| 911 | scanner = new EITScanner(eitcache); |
911 | 912 | scanner->StartPassiveScan(hdhr_channel, hdhr_recorder, ignore); |
912 | 913 | } |
913 | 914 | #endif // USING_HDHOMERUN |
=== libs/libmythtv/eitscanner.cpp
==================================================================
|
|
|
25 | 25 | QDateTime EITScanner::resched_next_time = QDateTime::currentDateTime(); |
26 | 26 | const uint EITScanner::kMinRescheduleInterval = 150; |
27 | 27 | |
28 | | EITScanner::EITScanner() |
29 | | : channel(NULL), eitSource(NULL), eitHelper(new EITHelper()), |
| 28 | EITScanner::EITScanner(EITCache *cache) |
| 29 | : channel(NULL), eitSource(NULL), eitHelper(new EITHelper(cache)), |
30 | 30 | exitThread(false), rec(NULL), activeScan(false) |
31 | 31 | { |
32 | 32 | QStringList langPref = iso639_get_language_list(); |
=== libs/libmythtv/tv_rec.h
==================================================================
|
|
|
20 | 20 | class QSocket; |
21 | 21 | class NuppelVideoRecorder; |
22 | 22 | class RingBuffer; |
| 23 | class EITCache; |
23 | 24 | class EITScanner; |
24 | 25 | class DVBSIParser; |
25 | 26 | class DummyDTVRecorder; |
… |
… |
|
256 | 257 | void DVBGotPMT(void) |
257 | 258 | { QMutexLocker lock(&stateChangeLock); triggerEventLoop.wakeAll(); } |
258 | 259 | |
| 260 | void SetEITCache(EITCache *cache) { eitcache = cache; } |
| 261 | |
259 | 262 | public slots: |
260 | 263 | void SignalMonitorAllGood() { triggerEventLoop.wakeAll(); } |
261 | 264 | void deleteLater(void); |
… |
… |
|
342 | 345 | RecorderBase *recorder; |
343 | 346 | ChannelBase *channel; |
344 | 347 | SignalMonitor *signalMonitor; |
| 348 | EITCache *eitcache; |
345 | 349 | EITScanner *scanner; |
346 | 350 | DVBSIParser *dvbsiparser; |
347 | 351 | DummyDTVRecorder *dummyRecorder; |
=== programs/mythbackend/eitactivescanner.cpp
==================================================================
|
|
|
47 | 47 | { |
48 | 48 | exitThread = false; |
49 | 49 | |
50 | | // QMap<int, EncoderLink *>::iterator it = cardList->begin(); |
51 | | // for (; it != cardList->end(); ++it) |
52 | | // { |
53 | | // TVRec *rec = it.data()->GetTVRec(); |
54 | | // if (rec) |
55 | | // { |
56 | | // rec->SetEITCache(eitCache); |
57 | | // } |
58 | | // } |
| 50 | QMap<int, EncoderLink *>::iterator it = cardList->begin(); |
| 51 | for (; it != cardList->end(); ++it) |
| 52 | { |
| 53 | TVRec *rec = it.data()->GetTVRec(); |
| 54 | if (rec) |
| 55 | { |
| 56 | rec->SetEITCache(eitCache); |
| 57 | } |
| 58 | } |
59 | 59 | // if (ismaster) |
60 | 60 | StartActiveScan(); |
61 | 61 | |
… |
… |
|
66 | 66 | if (ismaster && (QDateTime::currentDateTime() > activeScanNextTrig) |
67 | 67 | && !cardList->isEmpty()) |
68 | 68 | { |
69 | | // cerr << eitCache->GetStatistics() << endl; |
| 69 | cerr << eitCache->GetStatistics() << endl; |
70 | 70 | if (activeScanNextCard == cardIDToSourceID.end()) |
71 | 71 | { |
72 | 72 | activeScanNextCard = cardIDToSourceID.begin(); |