summaryrefslogtreecommitdiff
path: root/coreengine/viewelementsdisplaymenu.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreengine/viewelementsdisplaymenu.c')
-rw-r--r--coreengine/viewelementsdisplaymenu.c49
1 files changed, 19 insertions, 30 deletions
diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c
index cd2b8fc..51349c7 100644
--- a/coreengine/viewelementsdisplaymenu.c
+++ b/coreengine/viewelementsdisplaymenu.c
@@ -1,8 +1,8 @@
#include "viewelementsdisplaymenu.h"
#include "../config.h"
#include <vdr/videodir.h>
-#include "../extensions/timers.h"
#include "../extensions/helpers.h"
+#include "../extensions/globaltimers.h"
#include <sys/sysinfo.h>
#include <fstream>
#include <iostream>
@@ -336,6 +336,7 @@ void cVeDmTimers::SetTokenContainer(void) {
tokenContainer->DefineLoopToken("{timers[channelid]}", (int)eDMTimersLT::channelid);
tokenContainer->DefineLoopToken("{timers[channellogoexists]}", (int)eDMTimersLT::channellogoexists);
tokenContainer->DefineLoopToken("{timers[isremotetimer]}", (int)eDMTimersLT::isremotetimer);
+ tokenContainer->DefineLoopToken("{timers[remotehost]}", (int)eDMTimersLT::remotehost);
tokenContainer->DefineIntToken("{numtimers}", (int)eDMTimersIT::numtimers);
tokenContainer->DefineIntToken("{numtimerconflicts}", (int)eDMTimersIT::numtimerconflicts);
tokenContainer->DefineIntToken("{timer1exists}", (int)eDMTimersIT::timer1exists);
@@ -361,21 +362,15 @@ bool cVeDmTimers::Parse(bool forced) {
if (!cViewElement::Parse(forced))
return false;
tokenContainer->Clear();
+
+ cGlobalTimers globalTimers;
+ globalTimers.LoadTimers();
+ globalTimers.SortTimers();
+ globalTimers.MarkLocalTimers();
- int timerCount = 0;
- // BLOCK for LOCK_TIMERS_READ scope !!
- {
-#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_TIMERS_READ;
- timerCount = Timers->Count();
-#else
- timerCount = Timers.Count();
-#endif
- }
- cGlobalSortedTimers SortedTimers(timerCount); // local and remote timers
- int numTimers = SortedTimers.Size();
+ int numTimers = globalTimers.Size();
tokenContainer->AddIntToken((int)eDMTimersIT::numtimers, numTimers);
- tokenContainer->AddIntToken((int)eDMTimersIT::numtimerconflicts, SortedTimers.NumTimerConfilicts());
+ tokenContainer->AddIntToken((int)eDMTimersIT::numtimerconflicts, globalTimers.NumTimerConfilicts());
for (int i=0; i<15; i++) {
if (i < numTimers) {
tokenContainer->AddIntToken(i+2, true);
@@ -391,8 +386,9 @@ bool cVeDmTimers::Parse(bool forced) {
for (int i = 0; i < numTimers; i++) {
if (i >=15)
break;
- const cTimer *Timer = SortedTimers[i];
- tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::isremotetimer, SortedTimers.IsRemoteTimer(i) ? "1" : "0");
+ const cTimer *Timer = globalTimers[i];
+ tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::isremotetimer, globalTimers.IsRemoteTimer(i) ? "1" : "0");
+ tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::remotehost, globalTimers.RemoteHost(i));
const cEvent *event = Timer->Event();
if (event) {
tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::title, event->Title());
@@ -434,8 +430,8 @@ bool cVeDmTimers::Parse(bool forced) {
timerDate = cString::sprintf("VPS %s", *timerDate);
}
tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::datetime, *timerDate);
- tokenContainer->AddLoopToken(timerIndex, i, (int)eDMTimersLT::isremotetimer, SortedTimers.IsRemoteTimer(i) ? "1" : "0");
}
+
SetDirty();
return true;
}
@@ -893,20 +889,12 @@ bool cVeDmLastrecordings::Parse(bool forced) {
return false;
tokenContainer->Clear();
- int numTimers = 0;
- // BLOCK for LOCK_TIMERS_READ scope !!
- {
-#if defined (APIVERSNUM) && (APIVERSNUM >= 20301)
- LOCK_TIMERS_READ;
- numTimers = Timers->Count();
-#else
- numTimers = Timers.Count();
-#endif
- }
-
- cGlobalSortedTimers SortedTimers(numTimers); // local and remote timers
+
+ cGlobalTimers globalTimers;
+ globalTimers.LoadTimers();
+
//set number of timers so that it is possible to adapt this viewelement accordingly
- tokenContainer->AddIntToken((int)eDMLastrecordingsIT::numtimers, SortedTimers.Size());
+ tokenContainer->AddIntToken((int)eDMLastrecordingsIT::numtimers, globalTimers.Size());
list<const cRecording*> orderedRecs;
@@ -980,6 +968,7 @@ bool cVeDmLastrecordings::Parse(bool forced) {
if (i == MAX_RECORDINGS)
break;
}
+
SetDirty();
return true;
}