diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2012-06-02 12:10:36 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2012-06-02 12:10:36 +0200 |
commit | 4e57f400967a27e9eca7632ae8a80129a065c5b5 (patch) | |
tree | 4752a0e466b4dd347e319f231f987f8d658cb830 | |
parent | 754863902147fb87baf824db92e2073095d41386 (diff) | |
download | vdr-4e57f400967a27e9eca7632ae8a80129a065c5b5.tar.gz vdr-4e57f400967a27e9eca7632ae8a80129a065c5b5.tar.bz2 |
The new class cSortedTimers can be used to quickly get a list of all timers, sorted by their start time
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | timers.c | 19 | ||||
-rw-r--r-- | timers.h | 7 |
3 files changed, 25 insertions, 3 deletions
@@ -7118,3 +7118,5 @@ Video Disk Recorder Revision History - Fixed resetting CAMs (thanks to Marco Skambraks). - The new function RgbShade() (include osd.h) can be used to generate a brighter or darker version of a given color. +- The new class cSortedTimers can be used to quickly get a list of all timers, sorted + by their start time. @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.c 2.8 2012/02/27 09:38:41 kls Exp $ + * $Id: timers.c 2.9 2012/06/02 12:10:00 kls Exp $ */ #include "timers.h" @@ -142,7 +142,7 @@ cTimer& cTimer::operator= (const cTimer &Timer) int cTimer::Compare(const cListObject &ListObject) const { - cTimer *ti = (cTimer *)&ListObject; + const cTimer *ti = (const cTimer *)&ListObject; time_t t1 = StartTime(); time_t t2 = ti->StartTime(); int r = t1 - t2; @@ -820,3 +820,18 @@ void cTimers::DeleteExpired(void) } lastDeleteExpired = time(NULL); } + +// --- cSortedTimers --------------------------------------------------------- + +static int CompareTimers(const void *a, const void *b) +{ + return (*(const cTimer **)a)->Compare(**(const cTimer **)b); +} + +cSortedTimers::cSortedTimers(void) +:cVector(Timers.Count()) +{ + for (const cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer)) + Append(Timer); + Sort(CompareTimers); +} @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: timers.h 2.3 2012/02/20 15:52:57 kls Exp $ + * $Id: timers.h 2.4 2012/06/02 12:10:00 kls Exp $ */ #ifndef __TIMERS_H @@ -135,4 +135,9 @@ public: extern cTimers Timers; +class cSortedTimers : public cVector<const cTimer *> { +public: + cSortedTimers(void); + }; + #endif //__TIMERS_H |