rendered paste bodyIndex: libs/libmyth/programinfo.cpp
===================================================================
--- libs/libmyth/programinfo.cpp (revision 22974)
+++ libs/libmyth/programinfo.cpp (working copy)
@@ -1770,17 +1770,21 @@
filesize = fsize;
MSqlQuery query(MSqlQuery::InitCon());
- query.prepare("UPDATE recorded SET filesize = :FILESIZE"
- " WHERE chanid = :CHANID"
- " AND starttime = :STARTTIME ;");
- query.bindValue(":FILESIZE", longLongToString(fsize));
- query.bindValue(":CHANID", chanid);
+ query.prepare(
+ "UPDATE recorded "
+ "SET filesize = :FILESIZE"
+ "WHERE chanid = :CHANID AND "
+ " starttime = :STARTTIME");
+ query.bindValue(":FILESIZE", fsize);
+ query.bindValue(":CHANID", chanid);
query.bindValue(":STARTTIME", recstartts);
- if (!query.exec() || !query.isActive())
+ if (!query.exec())
MythDB::DBError("File size update", query);
- SendUpdateEvent();
+ QString msg = QString("UPDATE_FILE_SIZE %1 %2 %3")
+ .arg(chanid).arg(recstartts.toString(Qt::ISODate)).arg(fsize);
+ RemoteSendMessage(msg);
}
/** \fn ProgramInfo::GetFilesize(void)
@@ -1880,7 +1884,7 @@
// table send an update event..
QStringList list;
ToStringList(list);
- RemoteSendEvent(MythEvent(QString("UPDATE_PROG_INFO"), list));
+ RemoteSendEvent(MythEvent(QString("MASTER_UPDATE_PROG_INFO"), list));
}
}
Index: programs/mythfrontend/playbackbox.cpp
===================================================================
--- programs/mythfrontend/playbackbox.cpp (revision 22974)
+++ programs/mythfrontend/playbackbox.cpp (working copy)
@@ -3728,6 +3728,24 @@
if (evinfo.FromStringList(me->ExtraDataList(), 0))
HandleUpdateProgramInfoEvent(evinfo);
}
+ else if (message.left(17) == "UPDATE_FILE_SIZE")
+ {
+ QStringList tokens = message.simplified().split(" ");
+ bool ok = false;
+ uint chanid = 0;
+ QDateTime recstartts;
+ long long filesize = 0;
+ if (tokens.size() >= 4)
+ {
+ chanid = tokens[1].toUInt();
+ recstartts = QDateTime::fromString(tokens[2]);
+ filesize = tokens[3].toLongLong(&ok);
+ }
+ if (chanid && recstartts.isValid() && ok)
+ {
+ // TODO
+ }
+ }
else if (message == "RECONNECT_SUCCESS")
{
m_fillListFromCache = false;
Index: programs/mythbackend/scheduler.h
===================================================================
--- programs/mythbackend/scheduler.h (revision 22974)
+++ programs/mythbackend/scheduler.h (working copy)
@@ -80,6 +80,8 @@
bool WasStartedAutomatically();
+ RecStatusType GetRecStatus(const ProgramInfo &pginfo) const;
+
int GetError(void) const { return error; }
protected:
Index: programs/mythbackend/mainserver.cpp
===================================================================
--- programs/mythbackend/mainserver.cpp (revision 22974)
+++ programs/mythbackend/mainserver.cpp (working copy)
@@ -874,6 +874,29 @@
if (me->Message().left(6) == "LOCAL_")
return;
+ MythEvent mod_me("");
+ if (me->Message() == "MASTER_UPDATE_PROG_INFO" && m_sched)
+ {
+ ProgramInfo evinfo;
+ if (evinfo.FromStringList(me->ExtraDataList(), 0))
+ {
+ QDateTime rectime = QDateTime::currentDateTime().addSecs(
+ -gContext->GetNumSetting("RecordOverTime"));
+
+ if (evinfo.recendts > rectime)
+ evinfo.recstatus = m_sched->GetRecStatus(evinfo);
+
+ QStringList list;
+ evinfo.ToStringList(list);
+ mod_me = MythEvent("UPDATE_PROG_INFO", list);
+ me = &mod_me;
+ }
+ else
+ {
+ return;
+ }
+ }
+
broadcast = QStringList( "BACKEND_MESSAGE" );
broadcast << me->Message();
broadcast += me->ExtraDataList();
Index: programs/mythbackend/scheduler.cpp
===================================================================
--- programs/mythbackend/scheduler.cpp (revision 22974)
+++ programs/mythbackend/scheduler.cpp (working copy)
@@ -1409,6 +1409,20 @@
return hasconflicts;
}
+RecStatusType Scheduler::GetRecStatus(const ProgramInfo &pginfo) const
+{
+ QMutexLocker lockit(reclist_lock);
+
+ for (RecConstIter it = reclist.begin(); it != reclist.end(); ++it)
+ {
+ const ProgramInfo &s = **it;
+ if (pginfo.chanid == s.chanid && pginfo.recstartts == s.recstartts)
+ return (rsRecording==s.recstatus) ? rsRecording : pginfo.recstatus;
+ }
+
+ return pginfo.recstatus;
+}
+
void Scheduler::getAllPending(QStringList &strList)
{
RecList retlist;