Ticket #2741: 20070314_dvb_on_demand.diff

File 20070314_dvb_on_demand.diff, 4.0 KB (added by stuartm, 5 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            {