From 87dbe9c0133a710d26aea901873d0573f6de21d3 Mon Sep 17 00:00:00 2001 From: thlo Date: Sat, 17 Aug 2013 21:43:53 +0200 Subject: Provide time-sorted timerlist with /timers.xml --- responsememblk.c | 26 +++++++++++++++++++++++--- 1 file 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 += "\n"; *mResponseMessage += "\n"; - for (cTimer * ti = Timers.First(); ti; ti = Timers.Next(ti)){ - ti->Matches(); - +#if VDRVERSNUM < 10728 + cVector 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 += "\n"; // snprintf(f, sizeof(f), "%s\n", cUrlEncode::doXmlSaveEncode(*(ti->ToText(true))).c_str()); -- cgit v1.2.3