From 36485b88308aef886c2b99f07d574e4962d1969b Mon Sep 17 00:00:00 2001 From: Rolf Ahrenberg Date: Thu, 10 Feb 2011 13:14:57 +0200 Subject: Added support for sorting recordings by name and date in both ascending and descending orders. --- recman.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'recman.cpp') diff --git a/recman.cpp b/recman.cpp index db2d5fc..e9150b6 100644 --- a/recman.cpp +++ b/recman.cpp @@ -281,6 +281,54 @@ namespace vdrlive { } + /** + * Implemetation of class RecordingsItemPtrCompare + */ + bool RecordingsItemPtrCompare::ByAscendingDate(RecordingsItemPtr & first, RecordingsItemPtr & second) + { + if (first->StartTime() < second->StartTime()) + return true; + return false; + } + + bool RecordingsItemPtrCompare::ByDescendingDate(RecordingsItemPtr & first, RecordingsItemPtr & second) + { + if (first->StartTime() < second->StartTime()) + return false; + return true; + } + + bool RecordingsItemPtrCompare::ByAscendingName(RecordingsItemPtr & first, RecordingsItemPtr & second) + { + unsigned int i = 0; + while (i < first->Name().length() && i < second->Name().length()) { + if (tolower((first->Name())[i]) < tolower((second->Name())[i])) + return true; + else if (tolower((first->Name())[i]) > tolower((second->Name())[i])) + return false; + ++i; + } + if (first->Name().length() < second->Name().length()) + return true; + return false; + } + + bool RecordingsItemPtrCompare::ByDescendingName(RecordingsItemPtr & first, RecordingsItemPtr & second) + { + unsigned int i = 0; + while (i < first->Name().length() && i < second->Name().length()) { + if (tolower((second->Name())[i]) < tolower((first->Name())[i])) + return true; + else if (tolower((second->Name())[i]) > tolower((first->Name())[i])) + return false; + ++i; + } + if (second->Name().length() < first->Name().length()) + return true; + return false; + } + + /** * Implementation of class RecordingsItem: */ -- cgit v1.2.3