summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthlo <smarttv640@gmail.com>2013-08-17 21:43:53 +0200
committerthlo <smarttv640@gmail.com>2013-08-17 21:43:53 +0200
commit87dbe9c0133a710d26aea901873d0573f6de21d3 (patch)
tree2eda408c08e66a39121e858128d79d39789b8f0e
parent79f9c2ddb3b981a164243d7a40f0e98fcd8d15ed (diff)
downloadvdr-plugin-smarttvweb-87dbe9c0133a710d26aea901873d0573f6de21d3.tar.gz
vdr-plugin-smarttvweb-87dbe9c0133a710d26aea901873d0573f6de21d3.tar.bz2
Provide time-sorted timerlist with /timers.xml
-rwxr-xr-xresponsememblk.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/responsememblk.c b/responsememblk.c
index 03ee6af..82283fe 100755
--- a/responsememblk.c
+++ b/responsememblk.c
@@ -73,6 +73,11 @@ struct sTimerEntry {
sTimerEntry(string t, time_t s, int d) : name(t), startTime(s), duration(d) {};
};
+#if VDRVERSNUM < 10728
+int timerCompare(const void* i, const void *j) {
+ return (((cTimer*)i)->StartTime() < ((cTimer*)j)->StartTime());
+}
+#endif
cResponseMemBlk::cResponseMemBlk(cHttpResource* req) : cResponseBase(req), mResponseMessage(NULL), mResponseMessagePos(0) {
@@ -1063,9 +1068,24 @@ void cResponseMemBlk::sendTimersXml() {
*mResponseMessage += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
*mResponseMessage += "<timers>\n";
- for (cTimer * ti = Timers.First(); ti; ti = Timers.Next(ti)){
- ti->Matches();
-
+#if VDRVERSNUM < 10728
+ cVector<cTimer*> s_timers;
+ for (cTimer * t = Timers.First(); t; t = Timers.Next(t)) {
+ // s_timers.push_back(t);
+ s_timers.Append(t);
+ }
+ s_timers.Sort(timerCompare);
+#else
+ cSortedTimers s_timers;
+#endif
+
+ for (uint i =0; i< s_timers.Size(); i++) {
+ // for (cTimer * ti = Timers.First(); ti; ti = Timers.Next(ti)){
+ // ti->Matches();
+ cTimer *ti = s_timers[i];
+ if (!ti ) {
+ continue;
+ }
*mResponseMessage += "<timer>\n";
// snprintf(f, sizeof(f), "<id>%s</id>\n", cUrlEncode::doXmlSaveEncode(*(ti->ToText(true))).c_str());