summaryrefslogtreecommitdiff
path: root/coreengine/viewelementsdisplaychannel.c
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-02-10 13:33:54 +0100
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-02-11 17:34:23 +0100
commit538d59ca4e83733c6e0b35c21a65d3efe198d176 (patch)
tree851d3e8b659677b7f87ad1ac0bd1ea0e4c0bcd5b /coreengine/viewelementsdisplaychannel.c
parent78d424d2562350d77bbbce00910b2e4a01483bbe (diff)
downloadvdr-plugin-skindesigner-538d59ca4e83733c6e0b35c21a65d3efe198d176.tar.gz
vdr-plugin-skindesigner-538d59ca4e83733c6e0b35c21a65d3efe198d176.tar.bz2
An error with the remaining time in the channel display has been fixed
The remaining time in the channel display wasn't updated. A new token "currentremaining" was introduced in the Progressbar section of displaychannel.xml.
Diffstat (limited to 'coreengine/viewelementsdisplaychannel.c')
-rw-r--r--coreengine/viewelementsdisplaychannel.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/coreengine/viewelementsdisplaychannel.c b/coreengine/viewelementsdisplaychannel.c
index 4b71970..9a307a7 100644
--- a/coreengine/viewelementsdisplaychannel.c
+++ b/coreengine/viewelementsdisplaychannel.c
@@ -216,16 +216,19 @@ void cVeDcProgressBar::SetTokenContainer(void) {
tokenContainer->DefineIntToken("{remaining}", (int)eDCProgressBarIT::remaining);
tokenContainer->DefineIntToken("{permashift}", (int)eDCProgressBarIT::permashift);
tokenContainer->DefineIntToken("{livebuffer}", (int)eDCProgressBarIT::livebuffer);
+ tokenContainer->DefineIntToken("{currentremaining}", (int)eDCProgressBarIT::currentremaining);
InheritTokenContainer();
}
void cVeDcProgressBar::Set(const cEvent *p) {
if (!p) {
startTime = -1;
+ endTime = -1;
duration = -1;
return;
}
startTime = p->StartTime();
+ endTime = p-> EndTime();
duration = p->Duration();
int current = 0;
@@ -249,18 +252,24 @@ void cVeDcProgressBar::Set(const cEvent *p) {
} else {
tokenContainer->AddIntToken((int)eDCProgressBarIT::permashift, 0);
}
+ tokenContainer->AddIntToken((int)eDCProgressBarIT::currentremaining, (int)round((endTime - t) / 60));
}
bool cVeDcProgressBar::Parse(bool force) {
if (!cViewElement::Parse(force))
return false;
+
int current = 0;
time_t t = time(NULL);
if (t > startTime)
current = t - startTime;
+
if (!(current > currentLast + 3) && !force && !Dirty())
return false;
+
+ currentLast = current;
SetDirty();
+
if (duration <= 0) {
tokenContainer->AddIntToken((int)eDCProgressBarIT::duration, 0);
tokenContainer->AddIntToken((int)eDCProgressBarIT::elapsed, 0);
@@ -276,6 +285,7 @@ bool cVeDcProgressBar::Parse(bool force) {
} else {
tokenContainer->AddIntToken((int)eDCProgressBarIT::permashift, 0);
}
+ tokenContainer->AddIntToken((int)eDCProgressBarIT::currentremaining, (int)round((endTime - t) / 60));
}
return true;
}