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 /libcore | |
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 'libcore')
-rw-r--r-- | libcore/recfolderinfo.c | 20 | ||||
-rw-r--r-- | libcore/recfolderinfo.h | 3 |
2 files changed, 18 insertions, 5 deletions
diff --git a/libcore/recfolderinfo.c b/libcore/recfolderinfo.c index debc309..87dba4a 100644 --- a/libcore/recfolderinfo.c +++ b/libcore/recfolderinfo.c @@ -11,6 +11,7 @@ private: cString _name; time_t _latest; int _count; + cString _latestFileName; void UpdateData(cRecording *Recording); cFolderInfoIntern *FindSubFolder(const char *Name) const; @@ -33,12 +34,13 @@ public: }; -cRecordingsFolderInfo::cFolderInfo::cFolderInfo(const char *Name, const char *FullName, time_t Latest, int Count) +cRecordingsFolderInfo::cFolderInfo::cFolderInfo(const char *Name, const char *FullName, time_t Latest, int Count, const char *LatestFileName) { this->Name = Name; this->FullName = FullName; this->Latest = Latest; this->Count = Count; + this->LatestFileName= LatestFileName; } @@ -65,8 +67,15 @@ void cRecordingsFolderInfo::Rebuild(void) _recordings.StateChanged(_recState); cFolderInfoIntern *info; for (cRecording *rec = _recordings.First(); rec; rec = _recordings.Next(rec)) { - info = _root->Find(*rec->Folder(), true); + //cRecording::Folder() first available since VDR 2.1.2 + cString folder(""); + char *folderName = strdup(rec->Name()); + if (char *s = strrchr(folderName, FOLDERDELIMCHAR)) + folder = cString(folderName, s); + info = _root->Find(*folder, true); + //info = _root->Find(*rec->Folder(), true); info->Add(rec); + free(folderName); } } @@ -97,6 +106,7 @@ cRecordingsFolderInfo::cFolderInfoIntern::cFolderInfoIntern(cFolderInfoIntern *P ,_name(Name) ,_latest(0) ,_count(0) +,_latestFileName("") { _subFolders = new cList<cFolderInfoIntern>(); } @@ -145,8 +155,10 @@ void cRecordingsFolderInfo::cFolderInfoIntern::UpdateData(cRecording *Recording) // update date if newer time_t recdate = Recording->Start(); - if (_latest < recdate) + if (_latest < recdate) { _latest = recdate; + _latestFileName = Recording->FileName(); + } } cRecordingsFolderInfo::cFolderInfoIntern *cRecordingsFolderInfo::cFolderInfoIntern::FindSubFolder(const char *Name) const @@ -170,7 +182,7 @@ void cRecordingsFolderInfo::cFolderInfoIntern::Add(cRecording *Recording) cRecordingsFolderInfo::cFolderInfo *cRecordingsFolderInfo::cFolderInfoIntern::GetInfo(void) const { - return new cRecordingsFolderInfo::cFolderInfo(*_name, *FullName(), _latest, _count); + return new cRecordingsFolderInfo::cFolderInfo(*_name, *FullName(), _latest, _count, *_latestFileName); } cString cRecordingsFolderInfo::cFolderInfoIntern::FullName(void) const diff --git a/libcore/recfolderinfo.h b/libcore/recfolderinfo.h index 65d0c70..8148ea7 100644 --- a/libcore/recfolderinfo.h +++ b/libcore/recfolderinfo.h @@ -23,8 +23,9 @@ public: cString FullName; time_t Latest; int Count; + cString LatestFileName; - cFolderInfo(const char *Name, const char *FullName, time_t Latest, int Count); + cFolderInfo(const char *Name, const char *FullName, time_t Latest, int Count, const char *LatestFileName); }; cRecordingsFolderInfo(cRecordings &Recordings); |