From 93f1c156edfd067627cd969ca275f38d3b319069 Mon Sep 17 00:00:00 2001 From: Sascha Volkenandt Date: Fri, 5 Jan 2007 17:52:00 +0000 Subject: - moved SortedTimers to plugin and added methods to interface from website - added function to update internal timers from main thread --- timers.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'timers.cpp') diff --git a/timers.cpp b/timers.cpp index ea3d6d1..e1689ce 100644 --- a/timers.cpp +++ b/timers.cpp @@ -1,9 +1,51 @@ +#include #include "timers.h" +static bool operator<( cTimer const& left, cTimer const& right ) +{ + return left.Compare( right ) < 0; +} + namespace vdrlive { +using namespace std; + +SortedTimers::SortedTimers(): + m_state( 0 ) +{ + ReloadTimers( true ); +} + +string SortedTimers::GetTimerId( cTimer const& timer ) +{ + ostringstream builder; + builder << *timer.Channel()->GetChannelID().ToString() << ":" << timer.WeekDays() << ":" + << timer.Day() << ":" << timer.Start() << ":" << timer.Stop(); + return builder.str(); +} + +void SortedTimers::ReloadTimers( bool initial ) +{ + if ( !Timers.Modified( m_state ) && !initial ) + return; + + dsyslog("reloading timers"); + + clear(); + for ( cTimer* timer = Timers.First(); timer != 0; timer = Timers.Next( timer ) ) { + push_back( *timer ); + } + sort(); +} + TimerManager::TimerManager() { } +void TimerManager::DoPendingWork() +{ + cMutexLock lock( this ); + m_timers.ReloadTimers(); +} + } // namespace vdrlive -- cgit v1.2.3