From 01945e83fcea2f2bf8900e6080343623a6c15055 Mon Sep 17 00:00:00 2001 From: louis Date: Wed, 11 May 2016 17:37:32 +0200 Subject: [PATCH] fixed loading of timers in displaychannel --- coreengine/viewdisplaychannel.c | 8 +++++++- coreengine/viewdisplaychannel.h | 1 + coreengine/viewelementsdisplaychannel.c | 12 +++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/coreengine/viewdisplaychannel.c b/coreengine/viewdisplaychannel.c index 5a6bb68..f8e163a 100644 --- a/coreengine/viewdisplaychannel.c +++ b/coreengine/viewdisplaychannel.c @@ -104,10 +104,15 @@ void cViewChannel::ClearVariables(void) { displayChannelGroups = false; if (veCustomTokens) veCustomTokens->Reset(); + timersLoaded = false; globalTimers.ClearTimers(); } void cViewChannel::SetChannel(const cChannel *channel, int number) { + if (!timersLoaded) { + timersLoaded = true; + globalTimers.LoadTimers(); + } channelChange = true; bool wasChannelGroups = displayChannelGroups; displayChannelGroups = false; @@ -144,7 +149,8 @@ void cViewChannel::SetChannel(const cChannel *channel, int number) { } void cViewChannel::SetEvents(const cEvent *present, const cEvent *following) { - if (init) { + if (!timersLoaded) { + timersLoaded = true; globalTimers.LoadTimers(); } Clear((int)eVeDisplayChannel::epginfo); diff --git a/coreengine/viewdisplaychannel.h b/coreengine/viewdisplaychannel.h index e05217e..623ec14 100644 --- a/coreengine/viewdisplaychannel.h +++ b/coreengine/viewdisplaychannel.h @@ -17,6 +17,7 @@ private: cVeDcEcmInfo *veEcmInfo; bool channelChange; bool displayChannelGroups; + bool timersLoaded; cGlobalTimers globalTimers; void SetViewElements(void); void ClearVariables(void); diff --git a/coreengine/viewelementsdisplaychannel.c b/coreengine/viewelementsdisplaychannel.c index 2004d5a..b4a2f89 100644 --- a/coreengine/viewelementsdisplaychannel.c +++ b/coreengine/viewelementsdisplaychannel.c @@ -320,14 +320,16 @@ void cVeDcStatusInfo::Set(const cChannel *c) { bool isEncrypted = c->Ca(); bool isRecording = cRecordControls::Active(); - for (int i = 0; i < globalTimers->Size() && !isRecording; i++) - if (const cTimer *Timer = globalTimers->At(i)) + for (int i = 0; i < globalTimers->Size() && !isRecording; i++) { + if (const cTimer *Timer = globalTimers->At(i)) { if (Timer->Recording()) isRecording = true; else if (cEpgTimer_Interface_V1* epgTimer = dynamic_cast((cTimer*)Timer)) { - if (epgTimer->State() == 'R') - isRecording = true; - } + if (epgTimer->State() == 'R') + isRecording = true; + } + } + } tokenContainer->AddIntToken((int)eDCStatusInfoIT::isRadio, isRadio); tokenContainer->AddIntToken((int)eDCStatusInfoIT::hasVT, hasVT);