diff --git a/HISTORY b/HISTORY index 79eac05..3ea2e04 100644 --- a/HISTORY +++ b/HISTORY @@ -315,3 +315,4 @@ Version 0.4.5 - added {numtimers} Token to lastrecordings viewelement - fixed time display bug in displaymenurecordings +- added token {watched} to displaymenurecordings diff --git a/skinskeleton/xmlfiles/displaymenurecordings.xml b/skinskeleton/xmlfiles/displaymenurecordings.xml index 76631bf..ca2339e 100644 --- a/skinskeleton/xmlfiles/displaymenurecordings.xml +++ b/skinskeleton/xmlfiles/displaymenurecordings.xml @@ -18,6 +18,7 @@ {current} true if item is currently selected {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/displaymenuitemview.c b/views/displaymenuitemview.c index 525af3c..eb865be 100644 --- a/views/displaymenuitemview.c +++ b/views/displaymenuitemview.c @@ -753,13 +753,25 @@ void cDisplayMenuItemRecordingView::SetTokens(void) { intTokens.insert(pair("numrecordingsfolder", total)); intTokens.insert(pair("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("watched", watched)); + const cEvent *event = NULL; const cRecordingInfo *info = usedRecording->Info(); if (!info) return; event = info->GetEvent(); if (!event) return; - string recDate = *(event->GetDateString()); string recTime = *(event->GetTimeString()); if (recDate.find("1970") != string::npos) { @@ -777,7 +789,6 @@ void cDisplayMenuItemRecordingView::SetTokens(void) { intTokens.insert(pair("month", sStartTime->tm_mon+1)); int duration = event->Duration() / 60; - int recDuration = usedRecording->LengthInSeconds(); recDuration = (recDuration>0)?(recDuration / 60):0; stringTokens.insert(pair("date", recDate.c_str())); stringTokens.insert(pair("time", recTime.c_str()));