Ticket #2741: 20070314_dvb_on_demand.diff

File 20070314_dvb_on_demand.diff, 4.0 KB (added by stuartm, 12 years ago)

Updated patch against 13045

  • libs/libmythtv/dbcheck.cpp

     
    1010#include "mythdbcon.h"
    1111
    1212/// This is the DB schema version expected by the running MythTV instance.
    13 const QString currentDatabaseVersion = "1184";
     13const QString currentDatabaseVersion = "1185";
    1414
    1515static bool UpdateDBVersionNumber(const QString &newnumber);
    1616static bool performActualUpdate(const QString updates[], QString version,
     
    29832983            return false;
    29842984    }
    29852985
     2986    if (dbver == "1184")
     2987    {
     2988        const QString updates[] = {
     2989"UPDATE capturecard,cardinput,videosource "
     2990"   SET dvb_on_demand = 0 "
     2991" WHERE capturecard.cardid = cardinput.cardid "
     2992"   AND cardinput.sourceid = videosource.sourceid "
     2993"   AND useeit = 1 "
     2994"   AND dvb_on_demand = 1;",
     2995""};
     2996
     2997        if (!performActualUpdate(updates, "1185", dbver))
     2998            return false;
     2999    }
     3000
    29863001//"ALTER TABLE cardinput DROP COLUMN preference;" in 0.22
    29873002//"ALTER TABLE channel DROP COLUMN atscsrcid;" in 0.22
    29883003//"ALTER TABLE recordedmarkup DROP COLUMN offset;" in 0.22
     
    30003015}
    30013016
    30023017
    3003 
    30043018bool InitializeDatabase(void)
    30053019{
    30063020    MSqlQuery query(MSqlQuery::InitCon());
  • libs/libmythtv/videosource.cpp

     
    926926        setHelpText(
    927927            QObject::tr("This option makes the backend dvb-recorder "
    928928                        "only open the card when it is actually in-use, leaving "
    929                         "it free for other programs at other times."));
     929                        "it free for other programs at other times "
     930                        "(only recording and live-tv qualify as in-use, "
     931                        "the EIT scan does not)."));
    930932    };
    931933};
    932934
  • libs/libmythtv/tv_rec.cpp

     
    11441144    return NULL;
    11451145}
    11461146
    1147 bool get_use_eit(uint cardid)
     1147static bool get_use_eit(uint cardid)
    11481148{
    11491149    MSqlQuery query(MSqlQuery::InitCon());
    11501150    query.prepare(
     
    11841184    return false;
    11851185}
    11861186
     1187static bool get_dvb_on_demand(uint cardid)
     1188{
     1189    MSqlQuery query(MSqlQuery::InitCon());
     1190    query.prepare(
     1191        "SELECT dvb_on_demand "
     1192        "FROM capturecard "
     1193        "WHERE cardid     = :CARDID");
     1194    query.bindValue(":CARDID", cardid);
     1195
     1196    if (!query.exec() || !query.isActive())
     1197    {
     1198        MythContext::DBError("get_dvb_on_demand", query);
     1199        return false;
     1200    }
     1201    else if (query.next())
     1202        return query.value(0).toBool();
     1203    return false;
     1204}
     1205
    11871206/** \fn TVRec::RunTV(void)
    11881207 *  \brief Event handling method, contains event loop.
    11891208 */
     
    13481367                        "for all sources on this card.");
    13491368                eitScanStartTime = eitScanStartTime.addYears(1);
    13501369            }
     1370            else if (get_dvb_on_demand(GetCaptureCardNum()))
     1371            {
     1372                VERBOSE(VB_EIT, LOC + "EIT scanning disabled "
     1373                        "since the card should be used only on demand.");
     1374                eitScanStartTime = eitScanStartTime.addYears(1);
     1375            }
    13511376            else
    13521377            {
    13531378                scanner->StartActiveScan(
  • libs/libmythtv/eitscanner.cpp

     
    125125            }
    126126
    127127            if (activeScanNextChan == activeScanChannels.end())
    128                 activeScanNextChan = activeScanChannels.begin();
     128            {
     129                exitThread = true;
     130                break;
     131            }
    129132 
    130133            if (!(*activeScanNextChan).isEmpty())
    131134            {