rendered paste bodyIndex: libs/libmythtv/tv_rec.cpp
===================================================================
--- libs/libmythtv/tv_rec.cpp (revision 15263)
+++ libs/libmythtv/tv_rec.cpp (working copy)
@@ -1134,7 +1134,7 @@
return NULL;
}
-bool get_use_eit(uint cardid)
+static bool get_use_eit(uint cardid)
{
MSqlQuery query(MSqlQuery::InitCon());
query.prepare(
@@ -1174,6 +1174,25 @@
return false;
}
+static bool get_dvb_on_demand(uint cardid)
+{
+ MSqlQuery query(MSqlQuery::InitCon());
+ query.prepare(
+ "SELECT dvb_on_demand "
+ "FROM capturecard "
+ "WHERE cardid = :CARDID");
+ query.bindValue(":CARDID", cardid);
+
+ if (!query.exec() || !query.isActive())
+ {
+ MythContext::DBError("get_dvb_on_demand", query);
+ return false;
+ }
+ else if (query.next())
+ return query.value(0).toBool();
+ return false;
+}
+
/** \fn TVRec::RunTV(void)
* \brief Event handling method, contains event loop.
*/
@@ -1347,6 +1366,12 @@
"for all sources on this card.");
eitScanStartTime = eitScanStartTime.addYears(1);
}
+ else if (get_dvb_on_demand(GetCaptureCardNum()))
+ {
+ VERBOSE(VB_EIT, LOC + "EIT scanning disabled "
+ "since the card should be used only on demand.");
+ eitScanStartTime = eitScanStartTime.addYears(1);
+ }
else
{
scanner->StartActiveScan(
Index: libs/libmythtv/eitscanner.cpp
===================================================================
--- libs/libmythtv/eitscanner.cpp (revision 15263)
+++ libs/libmythtv/eitscanner.cpp (working copy)
@@ -127,7 +127,10 @@
}
if (activeScanNextChan == activeScanChannels.end())
- activeScanNextChan = activeScanChannels.begin();
+ {
+ exitThread = true;
+ break;
+ }
if (!(*activeScanNextChan).isEmpty())
{