Ticket #1573: eit_2.diff

File eit_2.diff, 8.1 KB (added by Mark.Buechler@…, 14 years ago)

Limit EIT active scan to extended guide transports

  • mythtv/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 = "1134";
     13const QString currentDatabaseVersion = "1135";
    1414
    1515static bool UpdateDBVersionNumber(const QString &newnumber);
    1616static bool performActualUpdate(const QString updates[], QString version,
     
    21682168            return false;
    21692169    }
    21702170
     2171    if (dbver == "1134")
     2172    {
     2173        const QString updates[] = {
     2174// Dish Network
     2175"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2176" VALUES('dvb', 4102, 'force_guide_present', 'yes');",
     2177"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2178" VALUES('dvb', 4102, 'extended_guide_tid', '229');", 
     2179
     2180// Bell ExpressVu
     2181"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2182" VALUES('dvb', 256, 'force_guide_present', 'yes');",
     2183"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2184" VALUES('dvb', 256, 'guide_on_single_tid', 'yes');",         
     2185"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2186" VALUES('dvb', 257, 'force_guide_present', 'yes');",
     2187"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2188" VALUES('dvb', 257, 'guide_on_single_tid', 'yes');",
     2189"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2190" VALUES('dvb', 256, 'standard_guide_tid', '4');",               
     2191"INSERT INTO dtv_privatetypes (sitype, networkid, private_type, private_value)"
     2192" VALUES('dvb', 257, 'standard_guide_tid', '102');",                 
     2193""
     2194};
     2195
     2196        if (!performActualUpdate(updates, "1134", dbver))
     2197            return false;
     2198    }
     2199
    21712200//"ALTER TABLE capturecard DROP COLUMN dvb_recordts;" in 0.21
    21722201//"ALTER TABLE capturecard DROP COLUMN dvb_hw_decoder;" in 0.21
    21732202//"ALTER TABLE cardinput DROP COLUMN  preference;" in 0.22
  • mythtv/libs/libmythtv/eitscanner.h

     
    2828    void StopPassiveScan(void);
    2929
    3030    void StartActiveScan(TVRec*, uint max_seconds_per_source,
    31                          bool ignore_source);
     31                         bool ignore_source, bool limit_transport=false);
    3232
    3333    void StopActiveScan(void);       
    3434
  • mythtv/libs/libmythtv/tv_rec.cpp

     
    13481348            {
    13491349                uint ttMin = gContext->GetNumSetting("EITTransportTimeout", 5);
    13501350                uint ignore = gContext->GetNumSetting("EITIgnoresSource", 0);
    1351                 scanner->StartActiveScan(this, ttMin * 60, ignore);
     1351                uint tid_limit = gContext->GetNumSetting("EITCrawLimitTransports", 0);
     1352                scanner->StartActiveScan(this, ttMin * 60, ignore, tid_limit);
    13521353                SetFlags(kFlagEITScannerRunning);
    13531354                eitScanStartTime = QDateTime::currentDateTime().addYears(1);
    13541355            }
  • mythtv/libs/libmythtv/eitscanner.cpp

     
    184184}
    185185
    186186void EITScanner::StartActiveScan(TVRec *_rec, uint max_seconds_per_source,
    187                                  bool _ignore_source)
     187                                 bool _ignore_source, bool limit_transports)
    188188{
    189189    rec           = _rec;
    190190    ignore_source = _ignore_source;
     
    193193    {
    194194        // TODO get input name and use it in crawl.
    195195        MSqlQuery query(MSqlQuery::InitCon());
    196         query.prepare(
    197             "SELECT min(channum) "
    198             "FROM channel, cardinput, capturecard, videosource "
    199             "WHERE cardinput.sourceid   = channel.sourceid AND "
    200             "      videosource.sourceid = channel.sourceid AND "
    201             "      capturecard.cardid   = cardinput.cardid AND "
    202             "      channel.mplexid        IS NOT NULL      AND "
    203             "      useonairguide        = 1                AND "
    204             "      useeit               = 1                AND "
    205             "      cardinput.cardid     = :CARDID "
    206             "GROUP BY mplexid "
    207             "ORDER BY cardinput.sourceid, atscsrcid, mplexid");
     196
     197        if (limit_transports)
     198            query.prepare(
     199                "SELECT MIN(channum), channel.mplexid                        "
     200                "FROM channel, dtv_multiplex, dtv_privatetypes, videosource, "
     201                "cardinput, capturecard                                      "
     202                "WHERE dtv_multiplex.networkid = dtv_privatetypes.networkid  "
     203                "AND videosource.sourceid      = channel.sourceid            "
     204                "AND cardinput.sourceid        = channel.sourceid            "
     205                "AND capturecard.cardid        = cardinput.cardid            "
     206                "AND (private_type             = 'extended_guide_tid'        "
     207                "OR   private_type             = 'standard_guide_tid')       "
     208                "AND private_value             = transportid                 "
     209                "AND channel.mplexid           = dtv_multiplex.mplexid       "
     210                "AND useonairguide             = 1                           "
     211                "AND useeit                    = 1                           "
     212                "AND cardinput.cardid          = :CARDID                     "
     213                "GROUP BY transportid");
     214        else
     215            query.prepare(
     216                "SELECT channum, mplexid "
     217                "FROM channel, cardinput, capturecard, videosource "
     218                "WHERE cardinput.sourceid   = channel.sourceid AND "
     219                "      videosource.sourceid = channel.sourceid AND "
     220                "      capturecard.cardid   = cardinput.cardid AND "
     221                "      channel.mplexid        IS NOT NULL      AND "
     222                "      useonairguide        = 1                AND "
     223                "      useeit               = 1                AND "
     224                "      cardinput.cardid     = :CARDID "
     225                "ORDER BY cardinput.sourceid, atscsrcid");
     226
    208227        query.bindValue(":CARDID", rec->GetCaptureCardNum());
    209228
    210229        if (!query.exec() || !query.isActive())
  • mythtv/setup/backendsettings.cpp

     
    226226    return gc;
    227227}
    228228
     229static GlobalCheckBox *EITCrawLimitTransports()
     230{
     231    GlobalCheckBox *gc = new GlobalCheckBox("EITCrawLimitTransports");
     232    gc->setLabel(QObject::tr("EIT Craw Limits Transports"));
     233    gc->setValue(false);
     234    QString help = QObject::tr("If set, listings data collected during "
     235                               "idle times will only be for providers which "
     236                               "have extended guide information available on "
     237                               "selective transports.");
     238    gc->setHelpText(help);
     239    return gc;
     240};
     241
    229242static GlobalCheckBox *MasterBackendOverride()
    230243{
    231244    GlobalCheckBox *gc = new GlobalCheckBox("MasterBackendOverride");
     
    670683    group2a1->setLabel(QObject::tr("EIT Scanner Options"));               
    671684    group2a1->addChild(EITTransportTimeout());
    672685    group2a1->addChild(EITIgnoresSource());
     686    group2a1->addChild(EITCrawLimitTransports());
    673687    addChild(group2a1);
    674688
    675689    VerticalConfigurationGroup* group3 = new VerticalConfigurationGroup(false);