summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-07-29 22:44:55 +0200
committerlouis <louis.braun@gmx.de>2015-07-29 22:44:55 +0200
commit5bb69c2a347901c7d9a4c1756c1bcf9ca652e43d (patch)
tree23b20118999d3991962af5f7df85115d39d5790c
parent2efe2314e244e04f8d5fc61976e30a99240d54b2 (diff)
downloadvdr-plugin-skindesigner-5bb69c2a347901c7d9a4c1756c1bcf9ca652e43d.tar.gz
vdr-plugin-skindesigner-5bb69c2a347901c7d9a4c1756c1bcf9ca652e43d.tar.bz2
added {watched} and {percentseen} to displaymenurecordings current view
-rw-r--r--HISTORY4
-rw-r--r--skinskeleton/xmlfiles/displaymenumain.xml2
-rw-r--r--skinskeleton/xmlfiles/displaymenurecordings.xml2
-rw-r--r--views/displaymenuitemcurrentview.c27
4 files changed, 30 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index f2c21ff..a50fb7b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -400,5 +400,5 @@ Version 0.6.2
- added progressmodeonly viewelement in displayreplay
- fixed bug in checking skin version
-
-
+- added {watched} and {percentseen} to displaymenurecordings
+ current view
diff --git a/skinskeleton/xmlfiles/displaymenumain.xml b/skinskeleton/xmlfiles/displaymenumain.xml
index ac4af30..7ba9aee 100644
--- a/skinskeleton/xmlfiles/displaymenumain.xml
+++ b/skinskeleton/xmlfiles/displaymenumain.xml
@@ -112,7 +112,7 @@
{minutes} Duration, rest of minutes
{elapsed} Elapsed time of current Schedule in min (0 for recordings)
{remaining} Remaining time of current Schedule in min (0 for recordings)
- {hasPoster} true if poster is available
+ {hasposter} true if poster is available
{posterpath} Full Path of Poster to use in image path attribute
{posterwidth} width of poster in pixel
{posterheight} height of poster in pixel
diff --git a/skinskeleton/xmlfiles/displaymenurecordings.xml b/skinskeleton/xmlfiles/displaymenurecordings.xml
index 8d961b6..959e959 100644
--- a/skinskeleton/xmlfiles/displaymenurecordings.xml
+++ b/skinskeleton/xmlfiles/displaymenurecordings.xml
@@ -58,6 +58,8 @@
{durationeventhours} event duration, full hours
{durationeventminutes} event duration, rest of minutes
{new} true if recording is new
+ {percentseen} percent already watched, -1 for VDR < 2.1.8
+ {watched} true if percentseen > 85% including MarginStop of not cutted recording
{cutted} true if recording is cutted
{folder} true if item is a folder
{numrecordingsfolder} if item is a folder, number of recordings in this folder
diff --git a/views/displaymenuitemcurrentview.c b/views/displaymenuitemcurrentview.c
index 357543e..1b8d09e 100644
--- a/views/displaymenuitemcurrentview.c
+++ b/views/displaymenuitemcurrentview.c
@@ -512,10 +512,34 @@ bool cDisplayMenuItemCurrentRecordingView::Render(void) {
stringTokens.insert(pair<string,string>("name", buffer.c_str()));
intTokens.insert(pair<string,int>("new", usedRecording->IsNew()));
+ int percSeen = 0;
+#if APIVERSNUM < 20108
+ percSeen = -1;
+#else
+ percSeen = 0;
+ int framesSeen = usedRecording->GetResume();
+ int framesTotal = usedRecording->NumFrames();
+ if (framesTotal > 0) {
+ percSeen = (double)framesSeen / (double)framesTotal * 100;
+ }
+#endif
+ intTokens.insert(pair<string,int>("percentseen", percSeen));
intTokens.insert(pair<string,int>("newrecordingsfolder", newRecs));
intTokens.insert(pair<string,int>("numrecordingsfolder", total));
intTokens.insert(pair<string,int>("cutted", usedRecording->IsEdited()));
-
+ int recDuration = usedRecording->LengthInSeconds();
+ bool watched = false;
+ if (usedRecording->IsEdited()) {
+ if (percSeen >= 85)
+ watched = true;
+ } else {
+ int watchedLimit = recDuration * 85 / 100 - (Setup.MarginStop + 5)*60;
+ int watchedTime = percSeen * recDuration / 100;
+ if (watchedLimit > 0 && watchedTime > 0 && (watchedTime > watchedLimit))
+ watched = true;
+ }
+ intTokens.insert(pair<string,int>("watched", watched));
+
SetScraperPoster(NULL, usedRecording);
@@ -578,7 +602,6 @@ bool cDisplayMenuItemCurrentRecordingView::Render(void) {
intTokens.insert(pair<string, int>("month", sStartTime->tm_mon+1));
int duration = event->Duration() / 60;
- int recDuration = usedRecording->LengthInSeconds();
recDuration = (recDuration>0)?(recDuration / 60):0;
stringTokens.insert(pair<string,string>("date", recDate.c_str()));
stringTokens.insert(pair<string,string>("time", recTime.c_str()));