diff --git a/mythtv/libs/libmyth/programinfo.cpp b/mythtv/libs/libmyth/programinfo.cpp
index bf89568..7371994 100644
a
|
b
|
ProgramInfo::ProgramInfo(void) : |
113 | 113 | endts(startts), |
114 | 114 | recstartts(startts), |
115 | 115 | recendts(startts), |
| 116 | elapsedpercent(0), |
116 | 117 | |
117 | 118 | stars(0.0f), |
118 | 119 | |
… |
… |
ProgramInfo::ProgramInfo(const ProgramInfo &other) : |
188 | 189 | endts(other.endts), |
189 | 190 | recstartts(other.recstartts), |
190 | 191 | recendts(other.recendts), |
| 192 | elapsedpercent(other.elapsedpercent), |
191 | 193 | |
192 | 194 | stars(other.stars), |
193 | 195 | |
… |
… |
ProgramInfo::ProgramInfo( |
475 | 477 | const QDateTime &_endts, |
476 | 478 | const QDateTime &_recstartts, |
477 | 479 | const QDateTime &_recendts, |
| 480 | uint16_t _elapsedpercent, |
478 | 481 | |
479 | 482 | const QString &_seriesid, |
480 | 483 | const QString &_programid, |
… |
… |
ProgramInfo::ProgramInfo( |
523 | 526 | endts(_endts), |
524 | 527 | recstartts(_recstartts), |
525 | 528 | recendts(_recendts), |
| 529 | elapsedpercent(_elapsedpercent), |
526 | 530 | |
527 | 531 | stars(clamp(_stars, 0.0f, 1.0f)), |
528 | 532 | |
… |
… |
void ProgramInfo::clone(const ProgramInfo &other, |
892 | 896 | endts = other.endts; |
893 | 897 | recstartts = other.recstartts; |
894 | 898 | recendts = other.recendts; |
| 899 | elapsedpercent = other.elapsedpercent; |
895 | 900 | |
896 | 901 | stars = other.stars; |
897 | 902 | |
… |
… |
void ProgramInfo::ToMap(InfoMap &progMap, |
1328 | 1333 | progMap["startdate"] = startts.toString("yyyy"); |
1329 | 1334 | progMap["recstartdate"] = startts.toString("yyyy"); |
1330 | 1335 | } |
| 1336 | progMap["elapsedpercent"] = QString("-1"); |
1331 | 1337 | } |
1332 | 1338 | else // if (IsRecording()) |
1333 | 1339 | { |
… |
… |
void ProgramInfo::ToMap(InfoMap &progMap, |
1339 | 1345 | progMap["recstartdate"] = recstartts.toString(shortDateFormat); |
1340 | 1346 | progMap["recendtime"] = recendts.toString(timeFormat); |
1341 | 1347 | progMap["recenddate"] = recendts.toString(shortDateFormat); |
| 1348 | progMap["elapsedpercent"] = QString("%1").arg(elapsedpercent); |
1342 | 1349 | } |
1343 | 1350 | |
1344 | 1351 | progMap["timedate"] = recstartts.date().toString(dateFormat) + ", " + |
… |
… |
static bool FromProgramQuery( |
4115 | 4122 | " program.airdate, program.stars, program.originalairdate, " |
4116 | 4123 | " program.category_type, oldrecstatus.recordid, " |
4117 | 4124 | " oldrecstatus.rectype, oldrecstatus.recstatus, " |
4118 | | " oldrecstatus.findid " |
| 4125 | " oldrecstatus.findid, " |
| 4126 | " CASE WHEN CURRENT_TIMESTAMP < program.starttime THEN 0 " |
| 4127 | " WHEN CURRENT_TIMESTAMP > program.endtime THEN 1000 " |
| 4128 | " ELSE 1000.0 * ((CURRENT_TIMESTAMP - program.starttime) / (program.endtime - program.starttime)) " |
| 4129 | " END as elapsedpercent " |
4119 | 4130 | "FROM program " |
4120 | 4131 | "LEFT JOIN channel ON program.chanid = channel.chanid " |
4121 | 4132 | "LEFT JOIN oldrecorded AS oldrecstatus ON " |
… |
… |
bool LoadFromProgram( |
4187 | 4198 | query.value(2).toDateTime(), // endts |
4188 | 4199 | query.value(1).toDateTime(), // recstartts |
4189 | 4200 | query.value(2).toDateTime(), // recendts |
| 4201 | query.value(23).toUInt(), //elapsedpercent |
4190 | 4202 | |
4191 | 4203 | query.value(13).toString(), // seriesid |
4192 | 4204 | query.value(14).toString(), // programid |
diff --git a/mythtv/libs/libmyth/programinfo.h b/mythtv/libs/libmyth/programinfo.h
index b79a319..b518c1e 100644
a
|
b
|
class MPUBLIC ProgramInfo |
171 | 171 | const QDateTime &endts, |
172 | 172 | const QDateTime &recstartts, |
173 | 173 | const QDateTime &recendts, |
| 174 | uint16_t elapsedpercent, |
174 | 175 | |
175 | 176 | const QString &seriesid, |
176 | 177 | const QString &programid, |
… |
… |
class MPUBLIC ProgramInfo |
632 | 633 | QDateTime endts; |
633 | 634 | QDateTime recstartts; |
634 | 635 | QDateTime recendts; |
| 636 | uint16_t elapsedpercent; |
635 | 637 | |
636 | 638 | float stars; ///< Rating, range [0..1] |
637 | 639 | QDate originalAirDate; |
diff --git a/mythtv/libs/libmythtv/osd.cpp b/mythtv/libs/libmythtv/osd.cpp
index 6e31132..1dc0c9e 100644
a
|
b
|
void OSD::SetText(const QString &window, QHash<QString,QString> &map, |
448 | 448 | screenshot->SetFilename(screenshotpath); |
449 | 449 | screenshot->Load(false); |
450 | 450 | } |
| 451 | MythUIProgressBar *bar = dynamic_cast<MythUIProgressBar *> (win->GetChild("elapsedpercent")); |
| 452 | if (bar) |
| 453 | { |
| 454 | int percent = map["elapsedpercent"].toInt(); |
| 455 | bar->SetVisible((percent != -1)); |
| 456 | bar->SetStart(0); |
| 457 | bar->SetTotal(1000); |
| 458 | bar->SetUsed(percent); |
| 459 | } |
451 | 460 | } |
452 | 461 | |
453 | 462 | win->SetVisible(true); |