[mythtv] [PATCH] Pause a recording schedule
Kevin Kuphal
kuphal at dls.net
Sun Dec 5 18:53:04 UTC 2004
Joseph A. Caputo wrote:
>Nice! I like this feature. One tiny suggestion, though... perhaps
>"pause" is not the best description for what this does... maybe
>"suspend" or "disable" ?
>
>
Well, I ended up not liking the [PAUSED] indicator either way so the
attached update to this patch turns the color of the schedule to the
inactive font for the theme instead which I think is a better and more
consistent way of representing the action. Now there's also no concern
for what description is used.
Kevin
-------------- next part --------------
Index: mythtv/libs/libmythtv/dbcheck.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/dbcheck.cpp,v
retrieving revision 1.67
diff -n -u -r1.67 dbcheck.cpp
--- mythtv/libs/libmythtv/dbcheck.cpp 13 Oct 2004 01:49:55 -0000 1.67
+++ mythtv/libs/libmythtv/dbcheck.cpp 3 Dec 2004 05:36:56 -0000
@@ -8,7 +8,7 @@
#include "mythcontext.h"
-const QString currentDatabaseVersion = "1059";
+const QString currentDatabaseVersion = "1060";
void UpdateDBVersionNumber(const QString &newnumber)
{
@@ -1051,6 +1051,22 @@
};
performActualUpdate(updates, "1058", dbver);
}
if (dbver == "1058")
{
const QString updates[] = {
"ALTER TABLE recorded ADD COLUMN preserve TINYINT(1) NOT NULL DEFAULT 0;",
""
};
performActualUpdate(updates, "1059", dbver);
}
+ if (dbver == "1059")
+ {
+ const QString updates[] = {
+"ALTER TABLE record ADD COLUMN paused TINYINT(1) NOT NULL DEFAULT 0;",
+""
+};
+ performActualUpdate(updates, "1060", dbver);
+ }
}
void InitializeDatabase(void)
Index: mythtv/libs/libmythtv/programinfo.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.cpp,v
retrieving revision 1.165
diff -n -u -r1.165 programinfo.cpp
--- mythtv/libs/libmythtv/programinfo.cpp 20 Oct 2004 07:25:37 -0000 1.165
+++ mythtv/libs/libmythtv/programinfo.cpp 3 Dec 2004 05:36:57 -0000
@@ -63,9 +63,11 @@
hasAirDate = false;
repeat = false;
+ paused = false;
@@ -135,15 +137,17 @@
hasAirDate = other.hasAirDate;
repeat = other.repeat;
+ paused = other.paused;
@@ -1837,6 +1903,8 @@
return QObject::tr("K", "RecStatusChar");
case rsTunerBusy:
return QObject::tr("B", "RecStatusChar");
+ case rsPaused:
+ return QObject::tr("p", "RecStatusChar");
default:
return "-";
}
@@ -1882,6 +1950,8 @@
return QObject::tr("Tuner Busy");
case rsRepeat:
return QObject::tr("Repeat");
+ case rsPaused:
+ return QObject::tr("Paused");
default:
return QObject::tr("Unknown");
}
@@ -1950,6 +2020,9 @@
case rsRepeat:
message += QObject::tr("this episode is a repeat.");
break;
+ case rsPaused:
+ message += QObject::tr("this recording schedule is paused.");
+ break;
case rsTooManyRecordings:
message += QObject::tr("too many recordings of this program have "
"already been recorded.");
@@ -2527,6 +2600,7 @@
recstatus == rsCurrentRecording ||
recstatus == rsEarlierShowing ||
recstatus == rsRepeat ||
+ recstatus == rsPaused ||
recstatus == rsLaterShowing))
{
diag.AddButton(QObject::tr("Record anyway"));
Index: mythtv/libs/libmythtv/programinfo.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.h,v
retrieving revision 1.89
diff -n -u -r1.89 programinfo.h
--- mythtv/libs/libmythtv/programinfo.h 8 Oct 2004 04:23:36 -0000 1.89
+++ mythtv/libs/libmythtv/programinfo.h 3 Dec 2004 05:36:57 -0000
@@ -72,7 +72,7 @@
rsConflict = 7,
rsLaterShowing = 8,
rsRepeat = 9,
- //rsUnused = 10,
+ rsPaused = 10,
rsLowDiskSpace = 11,
rsTunerBusy = 12
};
@@ -267,6 +272,7 @@
int cardid;
bool shareable;
bool conflictfixed;
+ bool paused;
QString schedulerid;
Index: mythtv/programs/mythbackend/scheduler.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/scheduler.cpp,v
retrieving revision 1.119
diff -n -u -r1.119 scheduler.cpp
--- mythtv/programs/mythbackend/scheduler.cpp 19 Oct 2004 07:37:31 -0000 1.119
+++ mythtv/programs/mythbackend/scheduler.cpp 3 Dec 2004 05:36:57 -0000
@@ -1329,7 +1329,7 @@
"channel.commfree, capturecard.cardid, "
"cardinput.cardinputid, UPPER(cardinput.shareable) = 'Y' AS shareable, "
"program.seriesid, program.programid, "
-"program.stars, program.originalairdate "
+"program.stars, program.originalairdate, record.paused "
"FROM record, program ") + fromclauses[clause] + QString(
@@ -1472,6 +1472,7 @@
else
p->originalAirDate = QDate::fromString(result.value(30).toString(), Qt::ISODate);
+ p->paused = result.value(31).toInt();
if (!recTypeRecPriorityMap.contains(p->rectype))
recTypeRecPriorityMap[p->rectype] =
@@ -1535,7 +1536,7 @@
{
if (p->dupin == kDupsNewEpi && p->repeat)
p->recstatus = rsRepeat;
-
+
if (((p->dupin & kDupsInOldRecorded) || (p->dupin == kDupsNewEpi)) &&
result.value(10).toInt())
p->recstatus = rsPreviousRecording;
@@ -1545,6 +1546,9 @@
p->recstatus = rsCurrentRecording;
}
+ if (p->paused)
+ p->recstatus = rsPaused;
+
tmpList.push_back(p);
}
Index: mythtv/programs/mythfrontend/programrecpriority.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythfrontend/programrecpriority.cpp,v
retrieving revision 1.35
diff -n -u -r1.35 programrecpriority.cpp
--- mythtv/programs/mythfrontend/programrecpriority.cpp 12 Sep 2004 23:21:14 -0000 1.35
+++ mythtv/programs/mythfrontend/programrecpriority.cpp 3 Dec 2004 05:36:57 -0000
@@ -186,6 +186,8 @@
changeRecPriority(1);
else if (action == "LEFT")
changeRecPriority(-1);
+ else if ((action == "PAUSE") || (action == "PLAYBACK"))
+ pause();
else if (action == "ESCAPE")
{
saveRecPriority();
@@ -427,6 +429,65 @@
inList = 0;
}
+void ProgramRecPriority::pause(void)
+{
+ if (!curitem)
+ return;
+
+ ProgramRecPriorityInfo *rec = curitem;
+
+ MythContext::KickDatabase(db);
+
+ if (rec)
+ {
+ QString thequery;
+
+ thequery = QString("SELECT paused FROM record WHERE recordid = %1")
+ .arg(rec->recordid);
+
+ QSqlQuery query = db->exec(thequery);
+
+ int paused = 0;
+ if (query.isActive())
+ if (query.numRowsAffected() > 0)
+ {
+ query.next();
+ paused = query.value(0).toInt();
+ if (paused)
+ paused = 0;
+ else
+ paused = 1;
+
+ QString theupdatequery;
+ theupdatequery = QString("UPDATE record SET paused = %1 WHERE recordid = %2")
+ .arg(paused).arg(rec->recordid);
+
+ QSqlQuery uquery = db->exec(theupdatequery);
+
+ if (uquery.isActive())
+ {
+ ScheduledRecording::signalChange(db);
+ int cnt;
+ QMap<QString, ProgramRecPriorityInfo>::Iterator it;
+ ProgramRecPriorityInfo *progInfo;
+
+ // iterate through programData till we hit the line where
+ // the cursor currently is
+ for (cnt = 0, it = programData.begin(); cnt < inList+inData;
+ cnt++, ++it);
+ progInfo = &(it.data());
+ progInfo->paused = paused;
+ } else
+ MythContext::DBError("Update recording schedule paused query", uquery);
+
+ }
+
+ QPainter p(this);
+ updateInfo(&p);
+ update(fullRect);
+ }
+}
+
void ProgramRecPriority::edit(void)
{
if (!curitem)
@@ -629,7 +690,8 @@
// it all at once than once per program)
QString query = QString("SELECT record.title, record.chanid, "
"record.starttime, record.startdate, "
- "record.type, channel.recpriority "
+ "record.type, channel.recpriority, "
+ "record.paused "
"FROM record "
"LEFT JOIN channel ON "
"(record.chanid = channel.chanid);");
@@ -651,6 +713,7 @@
RecordingType recType = (RecordingType)result.value(4).toInt();
int channelRecPriority = result.value(5).toInt();
int recTypeRecPriority = rtRecPriors[recType-1];
+ int paused = result.value(6).toInt();
// this is so kludgy
// since we key off of title+chanid+startts we have
@@ -684,6 +747,7 @@
progInfo->channelRecPriority = channelRecPriority;
progInfo->recTypeRecPriority = recTypeRecPriority;
progInfo->recType = recType;
+ progInfo->paused = paused;
matches++;
break;
}
@@ -882,6 +946,9 @@
ltype->SetItemCurrent(cnt);
}
+ if (progInfo->paused)
+ ltype->EnableForcedFont(cnt, "inactive");
+
ltype->SetItemText(cnt, 1, tempSubTitle);
if (progRecPriority >= 0)
Index: mythtv/programs/mythfrontend/programrecpriority.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythfrontend/programrecpriority.h,v
retrieving revision 1.10
diff -n -u -r1.10 programrecpriority.h
--- mythtv/programs/mythfrontend/programrecpriority.h 12 Sep 2004 23:21:14 -0000 1.10
+++ mythtv/programs/mythfrontend/programrecpriority.h 3 Dec 2004 05:36:57 -0000
@@ -47,6 +47,7 @@
void changeRecPriority(int howMuch);
void saveRecPriority(void);
void edit();
+ void pause();
void upcoming();
protected:
More information about the mythtv-dev
mailing list