[mythtv] [PATCH] Updated version of presetpatch
Bjorn Hijmans
bjorn at hijmans.nl
Sun Apr 27 14:11:56 EDT 2003
On Sun, 27 Apr 2003, Isaac Richards wrote:
> Probably should be basing it off the lowest chanid that's valid for the
> current input, not globally.
You are right. New patch is attached.
Bjorn
-------------- next part --------------
diff -ur MC/libs/libmythtv/programinfo.cpp MC.clean.patched/libs/libmythtv/programinfo.cpp
--- MC/libs/libmythtv/programinfo.cpp Wed Apr 23 23:15:18 2003
+++ MC.clean.patched/libs/libmythtv/programinfo.cpp Sun Apr 27 12:44:05 2003
@@ -349,6 +349,25 @@
return GetProgramAtDateTime(channel, sqltime);
}
+QString ProgramInfo::GetChanNumFromChanid(QString channel)
+{
+ QSqlQuery query;
+ QString thequery;
+ QString channum;
+
+ thequery = QString("SELECT channum FROM channel WHERE chanid=%1;") . arg(channel);
+ query.exec(thequery);
+
+ if(query.isActive() && query.numRowsAffected() > 0)
+ {
+ query.next();
+
+ channum = query.value(0).toString();
+ }
+
+ return channum;
+}
+
ProgramInfo *ProgramInfo::GetProgramFromRecorded(QString channel, QString starttime)
{
QSqlQuery query;
diff -ur MC/libs/libmythtv/programinfo.h MC.clean.patched/libs/libmythtv/programinfo.h
--- MC/libs/libmythtv/programinfo.h Wed Apr 23 23:15:18 2003
+++ MC.clean.patched/libs/libmythtv/programinfo.h Sun Apr 27 12:44:09 2003
@@ -66,6 +66,8 @@
static ProgramInfo *GetProgramAtDateTime(QString channel, QDateTime &dtime);
static ProgramInfo *GetProgramFromRecorded(QString channel, QString starttime);
+ static QString GetChanNumFromChanid(QString channel);
+
QString title;
QString subtitle;
QString description;
diff -ur MC/libs/libmythtv/tv_play.cpp MC.clean.patched/libs/libmythtv/tv_play.cpp
--- MC/libs/libmythtv/tv_play.cpp Fri Apr 25 07:45:25 2003
+++ MC.clean.patched/libs/libmythtv/tv_play.cpp Sun Apr 27 12:43:54 2003
@@ -1471,6 +1471,13 @@
if (key > 256)
thekey = key - 256 - 0xb0 + '0';
+ QString channelSorting = gContext->GetSetting("ChannelSorting");
+
+ if(channelSorting == "chanid")
+ {
+ chanidqueued = true;
+ }
+
if (channelkeysstored == 4)
{
channelKeys[0] = channelKeys[1];
@@ -1512,6 +1519,18 @@
}
QString chan = QString(channelKeys).stripWhiteSpace();
+
+ // Translate to channum
+ if(chanidqueued)
+ {
+ QString recorderNum = QString::number(activerecorder->GetRecorderNumber());
+ QString chanidStart = gContext->GetSetting("ChanidStart" + recorderNum);
+
+ chan = QString::number(chan.toInt() + chanidStart.toInt() - 1);
+ chan = ProgramInfo::GetChanNumFromChanid(chan);
+ chanidqueued = false;
+ }
+
ChangeChannelByString(chan);
channelqueued = false;
@@ -1659,6 +1678,15 @@
QMap<QString, QString> regexpMap;
GetChannelInfo(activerecorder, regexpMap);
+
+ QString channelSorting = gContext->GetSetting("ChannelSorting");
+
+ QString recorderNum = QString::number(activerecorder->GetRecorderNumber());
+ QString chanidStart = gContext->GetSetting("ChanidStart" + recorderNum);
+
+ if(channelSorting == "chanid")
+ { regexpMap["channum"] = QString::number(regexpMap["chanid"].toInt() - chanidStart.toInt() + 1);
+ }
osd->ClearAllText("program_info");
osd->SetTextByRegexp("program_info", regexpMap, osd_display_time);
diff -ur MC/libs/libmythtv/tv_play.h MC.clean.patched/libs/libmythtv/tv_play.h
--- MC/libs/libmythtv/tv_play.h Wed Apr 23 23:15:18 2003
+++ MC.clean.patched/libs/libmythtv/tv_play.h Sun Apr 27 12:43:57 2003
@@ -142,6 +142,7 @@
int osd_display_time;
bool channelqueued;
+ bool chanidqueued;
char channelKeys[5];
int channelkeysstored;
diff -ur MC/programs/mythfrontend/main.cpp MC.clean.patched/programs/mythfrontend/main.cpp
--- MC/programs/mythfrontend/main.cpp Fri Apr 18 05:25:32 2003
+++ MC.clean.patched/programs/mythfrontend/main.cpp Sun Apr 27 12:44:29 2003
@@ -349,6 +349,26 @@
gContext->LCDconnectToHost(lcd_host, lcd_port);
}
+ QString thequery = QString("SELECT c.cardid, MIN(ch.chanid)
+ FROM capturecard as c, cardinput as i, channel ch
+ WHERE c.cardid = i.cardid
+ AND ch.sourceid = i.sourceid
+ GROUP BY c.cardid;");
+
+ QSqlQuery query = db->exec(thequery);
+
+ if(query.isActive() && query.numRowsAffected() > 0)
+ {
+ while(query.next())
+ {
+ QString cardid = query.value(0).toString();
+ QString value = query.value(1).toString();
+ QString key = QString("ChanidStart") + cardid;
+
+ gContext->SaveSetting(key, value);
+ }
+ }
+
qApp->unlock();
int exitstatus = RunMenu(themedir);
More information about the mythtv-dev
mailing list