diff options
| author | louis <louis.braun@gmx.de> | 2014-10-19 07:47:42 +0200 |
|---|---|---|
| committer | louis <louis.braun@gmx.de> | 2014-10-19 07:47:42 +0200 |
| commit | 4d0e2e731a7ee42a76c07af2cdb2e5b99131ac41 (patch) | |
| tree | 7c9888cc5244400c95a9979c05c2af234a24e9f1 /views/displaymenuitemcurrentview.c | |
| parent | 3ef0db807d386553f1842ca0b8b0e931498237e1 (diff) | |
| download | vdr-plugin-skindesigner-4d0e2e731a7ee42a76c07af2cdb2e5b99131ac41.tar.gz vdr-plugin-skindesigner-4d0e2e731a7ee42a76c07af2cdb2e5b99131ac41.tar.bz2 | |
display always newest recording of folders in recordings list
Diffstat (limited to 'views/displaymenuitemcurrentview.c')
| -rw-r--r-- | views/displaymenuitemcurrentview.c | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/views/displaymenuitemcurrentview.c b/views/displaymenuitemcurrentview.c index 7304aee..b62ae47 100644 --- a/views/displaymenuitemcurrentview.c +++ b/views/displaymenuitemcurrentview.c @@ -531,15 +531,29 @@ void cDisplayMenuItemCurrentRecordingView::Render(void) { } catch (...) { buffer = name.c_str(); } + + const cRecording *usedRecording = recording; + + if (isFolder) { + cRecordingsFolderInfo::cFolderInfo *folderInfo = recFolderInfo.Get(folderName.str().c_str()); + if (folderInfo) { + cRecording *newestRec = Recordings.GetByName(*folderInfo->LatestFileName); + if (newestRec) { + usedRecording = newestRec; + } + delete folderInfo; + } + } + stringTokens.insert(pair<string,string>("name", buffer.c_str())); - intTokens.insert(pair<string,int>("new", recording->IsNew())); + intTokens.insert(pair<string,int>("new", usedRecording->IsNew())); intTokens.insert(pair<string,int>("newrecordingsfolder", newRecs)); intTokens.insert(pair<string,int>("numrecordingsfolder", total)); - intTokens.insert(pair<string,int>("cutted", recording->IsEdited())); + intTokens.insert(pair<string,int>("cutted", usedRecording->IsEdited())); - SetScraperPoster(NULL, recording); + SetScraperPoster(NULL, usedRecording); - const cRecordingInfo *info = recording->Info(); + const cRecordingInfo *info = usedRecording->Info(); if (!info) return; stringTokens.insert(pair<string,string>("shorttext", info->ShortText() ? info->ShortText() : "")); @@ -548,23 +562,12 @@ void cDisplayMenuItemCurrentRecordingView::Render(void) { const cEvent *event = info->GetEvent(); if (!event) return; - string recDate = ""; - string recTime = ""; - - if (isFolder) { - cRecordingsFolderInfo::cFolderInfo *folderInfo = recFolderInfo.Get(folderName.str().c_str()); - if (folderInfo) { - recDate = *DateString(folderInfo->Latest); - recTime = *TimeString(folderInfo->Latest); - } - } else { - recDate = *(event->GetDateString()); - recTime = *(event->GetTimeString()); - if (recDate.find("1970") != string::npos) { - time_t start = recording->Start(); - recDate = *DateString(start); - recTime = *TimeString(start); - } + string recDate = *(event->GetDateString()); + string recTime = *(event->GetTimeString()); + if (recDate.find("1970") != string::npos) { + time_t start = usedRecording->Start(); + recDate = *DateString(start); + recTime = *TimeString(start); } time_t startTime = event->StartTime(); @@ -574,7 +577,7 @@ void cDisplayMenuItemCurrentRecordingView::Render(void) { intTokens.insert(pair<string, int>("month", sStartTime->tm_mon+1)); int duration = event->Duration() / 60; - int recDuration = recording->LengthInSeconds(); + 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())); |
