All pastes #46735 Raw Edit

Someone

public text v1 · immutable
#46735 ·published 2006-03-23 20:28 UTC
rendered paste body
Index: libs/libmythtv/siscan.cpp
===================================================================
--- libs/libmythtv/siscan.cpp   (revision 9481)
+++ libs/libmythtv/siscan.cpp   (working copy)
@@ -1022,6 +1022,9 @@
     SISCAN(QString("UpdatePATinDB(): mplex: %1:%2")
             .arg(tid_db).arg((*current).mplexid));

+
+// Disabling the following as it is currently broken
+/*
     int db_mplexid = ChannelUtil::GetBetterMplexID(
         tid_db, pat->TransportStreamID(), 1);

@@ -1032,7 +1035,9 @@
             tr("Found channel, but it doesn't match existing tsid. You may "
                "wish to delete existing channels and do a full scan."));
         db_mplexid = tid_db;
-    }
+    }*/
+
+    int db_mplexid = tid_db;

     int db_source_id   = ChannelUtil::GetSourceID(db_mplexid);
     int freqid         = (*current).friendlyNum;
Index: libs/libmythtv/channelutil.cpp
===================================================================
--- libs/libmythtv/channelutil.cpp      (revision 9481)
+++ libs/libmythtv/channelutil.cpp      (working copy)
@@ -20,51 +20,70 @@
 {
     MSqlQuery query(MSqlQuery::InitCon());
     // If transport not present add it, and move on to the next
-    query.prepare(
-        "INSERT INTO dtv_multiplex "
-        "  (transportid, networkid, frequency, symbolrate, "
-        "   fec, polarity, modulation, constellation, bandwidth, "
-        "   hierarchy, hp_code_rate, lp_code_rate, guard_interval, "
-        "   transmission_mode, inversion, sourceid, sistandard) "
-        "VALUES "
-        "  (:TRANSPORTID, :NETWORKID, :FREQUENCY, :SYMBOLRATE, "
-        "   :FEC, :POLARITY, :MODULATION, :CONSTELLATION, :BANDWIDTH, "
-        "   :HIERARCHY, :HP_CODE_RATE, :LP_CODE_RATE, :GUARD_INTERVAL, "
-        "   :TRANS_MODE, :INVERSION, :SOURCEID, :SISTANDARD);");

-    query.bindValue(":SOURCEID",       db_source_id);
+    query.prepare("SELECT * FROM dtv_multiplex WHERE sourceid=:SOURCEID AND"
+                  " transportid=:TRANSPORTID AND networkid=:NETWORKID");
+    query.bindValue(":SOURCEID", db_source_id);
+    if (network_id > 0)
+        query.bindValue(":NETWORKID", network_id);
     if (transport_id > 0)
-        query.bindValue(":TRANSPORTID",transport_id);
-    if (network_id > 0)
-        query.bindValue(":NETWORKID",  network_id);
-    query.bindValue(":FREQUENCY",      frequency);
-    if (modulation != QString::null)
-        query.bindValue(":MODULATION", modulation);
-    query.bindValue(":SISTANDARD",     sistandard);
+        query.bindValue(":TRANSPORTID", transport_id);

-    if (symbol_rate >= 0)
-        query.bindValue(":SYMBOLRATE", symbol_rate);
-    if (polarity >= 0)
-        query.bindValue(":POLARITY",   QString("%1").arg(polarity));
-    if (inner_FEC != QString::null)
-        query.bindValue(":FEC",        inner_FEC);
-
-    if (set_odfm_info)
+    if (!query.exec() || !query.isActive())
     {
-        query.bindValue(":INVERSION",      QString("%1").arg(inversion));
-        query.bindValue(":BANDWIDTH",      QString("%1").arg(bandwidth));
-        query.bindValue(":HP_CODE_RATE",   hp_code_rate);
-        query.bindValue(":LP_CODE_RATE",   lp_code_rate);
-        query.bindValue(":CONSTELLATION",  constellation);
-        query.bindValue(":TRANS_MODE",     QString("%1").arg(trans_mode));
-        query.bindValue(":GUARD_INTERVAL", guard_interval);
-        query.bindValue(":HIERARCHY",      QString("%1").arg(hierarchy));
+        MythContext::DBError("Selecting duplicate transport from
+        Database.", query);
+        return false;
     }

-    if (!query.exec() || !query.isActive())
+    if (query.size() == 0)
     {
-        MythContext::DBError("Adding transport to Database.", query);
-        return false;
+        query.prepare(
+            "INSERT INTO dtv_multiplex "
+            "  (transportid, networkid, frequency, symbolrate, "
+            "   fec, polarity, modulation, constellation, bandwidth, "
+            "   hierarchy, hp_code_rate, lp_code_rate, guard_interval, "
+            "   transmission_mode, inversion, sourceid, sistandard) "
+            "VALUES "
+            "  (:TRANSPORTID, :NETWORKID, :FREQUENCY, :SYMBOLRATE, "
+            "   :FEC, :POLARITY, :MODULATION, :CONSTELLATION, :BANDWIDTH, "
+            "   :HIERARCHY, :HP_CODE_RATE, :LP_CODE_RATE, :GUARD_INTERVAL, "
+            "   :TRANS_MODE, :INVERSION, :SOURCEID, :SISTANDARD);");
+
+        query.bindValue(":SOURCEID",       db_source_id);
+        if (transport_id > 0)
+            query.bindValue(":TRANSPORTID",transport_id);
+        if (network_id > 0)
+            query.bindValue(":NETWORKID",  network_id);
+        query.bindValue(":FREQUENCY",      frequency);
+        if (modulation != QString::null)
+            query.bindValue(":MODULATION", modulation);
+        query.bindValue(":SISTANDARD",     sistandard);
+
+        if (symbol_rate >= 0)
+            query.bindValue(":SYMBOLRATE", symbol_rate);
+        if (polarity >= 0)
+            query.bindValue(":POLARITY",   QString("%1").arg(polarity));
+        if (inner_FEC != QString::null)
+            query.bindValue(":FEC",        inner_FEC);
+
+        if (set_odfm_info)
+        {
+            query.bindValue(":INVERSION",      QString("%1").arg(inversion));
+            query.bindValue(":BANDWIDTH",      QString("%1").arg(bandwidth));
+            query.bindValue(":HP_CODE_RATE",   hp_code_rate);
+            query.bindValue(":LP_CODE_RATE",   lp_code_rate);
+            query.bindValue(":CONSTELLATION",  constellation);
+            query.bindValue(":TRANS_MODE",     QString("%1").arg(trans_mode));
+            query.bindValue(":GUARD_INTERVAL", guard_interval);
+            query.bindValue(":HIERARCHY",      QString("%1").arg(hierarchy));
+        }
+
+        if (!query.exec() || !query.isActive())
+        {
+            MythContext::DBError("Adding transport to Database.", query);
+            return false;
+        }
     }

     return true;
@@ -163,6 +182,14 @@
            Alpha()
            OtherFrequencyInUse()
         */
+
+        if (cd.OtherFrequencyInUse() == 1)
+        {
+            VERBOSE(VB_SIPARSER,
+                    "Alternative frequency available, not used at present");
+            emit ServiceScanUpdateText(
+            tr("Alternative frequency available, not used at present"));
+        }
     }
     else if (tag == DescriptorID::satellite_delivery_system)
     {
@@ -206,29 +233,29 @@
         if (mux >= 0)
             muxes.push_back(mux);
     }
-    else if (tag == DescriptorID::frequency_list)
-    {
-        const FrequencyListDescriptor cd(desc);
-        //uint ct = cd.CodingType(); //nd,sat,cable,terra
-        for (uint i = 0; i<cd.FrequencyCount(); i++)
-        {
-            int mux = ChannelUtil::CreateMultiplex(
-                sourceid,             "dvb",
-                cd.FrequencyHz(i),    QString::null/*modulation*/,
-                // DVB specific
-                tsid,                 netid,
-                false,
-                -1,                   -1,
-                -1,                   -1,
-                -1,
-                QString::null,        QString::null,
-                -1,                   QString::null,
-                QString::null,        QString::null);
-
-            if (mux >= 0)
-                muxes.push_back(mux);
-        }
-    }
+//     else if (tag == DescriptorID::frequency_list)
+//     {
+//         const FrequencyListDescriptor cd(desc);
+//         //uint ct = cd.CodingType(); //nd,sat,cable,terra
+//         for (uint i = 0; i<cd.FrequencyCount(); i++)
+//         {
+//             int mux = ChannelUtil::CreateMultiplex(
+//                 sourceid,             "dvb",
+//                 cd.FrequencyHz(i),    QString::null/*modulation*/,
+//                 // DVB specific
+//                 tsid,                 netid,
+//                 false,
+//                 -1,                   -1,
+//                 -1,                   -1,
+//                 -1,
+//                 QString::null,        QString::null,
+//                 -1,                   QString::null,
+//                 QString::null,        QString::null);
+//
+//             if (mux >= 0)
+//                 muxes.push_back(mux);
+//         }
+//     }
 }

 /** \fn ChannelUtil::CreateMultiplexes(int, const NetworkInformationTable*)
@@ -285,8 +312,8 @@
     MSqlQuery query(MSqlQuery::InitCon());
     // See if transport already in database
     query.prepare("SELECT mplexid FROM dtv_multiplex "
-                  "WHERE networkid=:NETWORKID AND transportid=:TRANSPORTID AND "
-                  "      frequency=:FREQUENCY AND sourceid=:SOURCEID");
+                  "WHERE networkid=:NETWORKID AND transportid=:TRANSPORTID"
+                  " AND frequency=:FREQUENCY AND sourceid=:SOURCEID");

     query.bindValue(":SOURCEID",    sourceid);
     query.bindValue(":NETWORKID",   network_id);