summaryrefslogtreecommitdiff
path: root/menu_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu_main.c')
-rw-r--r--menu_main.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/menu_main.c b/menu_main.c
index d392e20..f0b81b6 100644
--- a/menu_main.c
+++ b/menu_main.c
@@ -182,13 +182,12 @@ eOSState cMenuSearchMain::Record(void)
{
cMenuMyScheduleItem *item = (cMenuMyScheduleItem *)Get(Current());
if (item) {
- cTimer *timer, *t;
- {
- LOCK_TIMERS_READ;
+ LOCK_TIMERS_WRITE;
+ Timers->SetExplicitModify();
if (item->timerMatch == tmFull)
{
eTimerMatch tm = tmNone;
- cTimer *timer = (cTimer*)Timers->GetMatch(item->event, &tm);
+ cTimer *timer = Timers->GetMatch(item->event, &tm);
if (timer)
{
if (EPGSearchConfig.useVDRTimerEditMenu)
@@ -198,11 +197,10 @@ eOSState cMenuSearchMain::Record(void)
}
}
- timer = new cTimer(item->event);
+ cTimer *timer = new cTimer(item->event);
PrepareTimerFile(item->event, timer);
- t = (cTimer*)Timers->GetTimer(timer);
- } // release TIMERS_READ
+ cTimer *t = Timers->GetTimer(timer);
if (EPGSearchConfig.onePressTimerCreation == 0 || t || !item->event || (!t && item->event && item->event->StartTime() - (Setup.MarginStart+2) * 60 < time(NULL)))
{
if (t)
@@ -241,8 +239,8 @@ eOSState cMenuSearchMain::Record(void)
SetAux(timer, fullaux);
if (Setup.SVDRPPeering && *Setup.SVDRPDefaultHost)
timer->SetRemote(Setup.SVDRPDefaultHost);
- LOCK_TIMERS_WRITE;
- Timers->Add(timer); // implicit SetModified
+ Timers->Add(timer);
+ Timers->SetModified();
gl_timerStatusMonitor->SetConflictCheckAdvised();
timer->Matches();
if (!HandleRemoteTimerModifications(timer)) {