[mythtv] [patch] Updating DVB SI
Tim Davies
tim at opensystems.net.au
Sun Feb 6 04:22:55 UTC 2005
Just a small patch to update the DVB SI. If the channel number or name
changes, the database is updated...
-------------- next part --------------
diff -ur mythtv-20050206/libs/libmythtv/siparser.cpp mythtv-20050206-work/libs/libmythtv/siparser.cpp
--- mythtv-20050206/libs/libmythtv/siparser.cpp 2005-02-06 08:49:20.000000000 +0800
+++ mythtv-20050206-work/libs/libmythtv/siparser.cpp 2005-02-06 11:38:29.027856008 +0800
@@ -303,7 +303,7 @@
if (QString(query.value(0).toString()) == "channel_numbers")
{
PrivateTypes.ChannelNumbers = query.value(1).toInt();
- SIPARSER(QString("ChannelNumbers Present using Descriptor %d")
+ SIPARSER(QString("ChannelNumbers Present using Descriptor %1")
.arg(PrivateTypes.ChannelNumbers));
}
if (QString(query.value(0).toString()) == "force_guide_present")
diff -ur mythtv-20050206/libs/libmythtv/siscan.cpp mythtv-20050206-work/libs/libmythtv/siscan.cpp
--- mythtv-20050206/libs/libmythtv/siscan.cpp 2005-02-03 11:38:15.000000000 +0800
+++ mythtv-20050206-work/libs/libmythtv/siscan.cpp 2005-02-06 12:06:10.850220608 +0800
@@ -420,6 +420,12 @@
if (!query.isActive())
MythContext::DBError("Check Channel full in channel/dtv_multiplex.", query);
+ int ChanNum;
+ if( (*s).ChanNum == -1 )
+ ChanNum = (*s).ServiceID;
+ else
+ ChanNum = (*s).ChanNum;
+
// If channel not present add it
if (query.numRowsAffected() <= 0)
{
@@ -436,12 +442,6 @@
chanid = GenerateNewChanID();
- int ChanNum;
- if( (*s).ChanNum == -1 )
- ChanNum = (*s).ServiceID;
- else
- ChanNum = (*s).ChanNum;
-
query.prepare("INSERT INTO channel (chanid, channum, "
"sourceid, callsign, name, mplexid, "
"serviceid, atscsrcid, useonairguide ) "
@@ -466,8 +466,24 @@
}
else
{
- // TODO: Do an update here of the Name, etc..
- SISCAN(QString("Channel %1 already in Database - Skipping").arg((*s).ServiceName));
+ query.next();
+ chanid = query.value(0).toInt();
+
+ // Do an update here of the Name, etc..
+ SISCAN(QString("Channel %1 already in Database - Updating name/number").arg((*s).ServiceName));
+ query.prepare("UPDATE channel SET callsign=:CALLSIGN,channum=:CHANNUM,name=:NAME "
+ "WHERE chanid=:CHANID;");
+ query.bindValue(":CHANID",chanid);
+ query.bindValue(":CHANNUM",ChanNum);
+ query.bindValue(":CALLSIGN",(*s).ServiceName.utf8());
+ query.bindValue(":NAME",(*s).ServiceName.utf8());
+
+ if(!query.exec())
+ MythContext::DBError("Updating channel number/name", query);
+
+ if (!query.isActive())
+ MythContext::DBError("Updating channel number/name", query);
+
QString status = QString("Updating %1").arg((*s).ServiceName);
emit ServiceScanUpdateText(status);
}
More information about the mythtv-dev
mailing list