All pastes #839371 Raw Edit

Anonymous

public text v1 · immutable
#839371 ·published 2007-12-31 00:09 UTC
rendered paste body
Index: 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())
             {