summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY4
-rw-r--r--menu.c14
2 files changed, 15 insertions, 3 deletions
diff --git a/HISTORY b/HISTORY
index b11775e5..d009dae6 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9162,7 +9162,7 @@ Video Disk Recorder Revision History
a subdirectory.
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
-2018-03-04: Version 2.3.9
+2018-03-05: Version 2.3.9
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
@@ -9296,3 +9296,5 @@ Video Disk Recorder Revision History
- Modified cStateLock's SetExplicitModify() and IncState() (changed to SetModified()) to
allow for the introduction of syncing a separate cStateKey to a cStateLock.
- Assigning events to timers no longer triggers sending a POLL to all peer VDRs.
+- When making modifications to remote timers, the local VDR no longer sends a POLL to
+ all remote VDRs.
diff --git a/menu.c b/menu.c
index ab23a39d..92b0565c 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 4.65 2018/03/03 12:55:57 kls Exp $
+ * $Id: menu.c 4.66 2018/03/05 15:37:23 kls Exp $
*/
#include "menu.h"
@@ -1122,6 +1122,8 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
return osContinue;
if (timer->Local() && timer->Recording() && data.Remote())
cRecordControls::Stop(timer);
+ if (timer->Remote() && data.Remote())
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
*timer = data;
}
LOCK_SCHEDULES_READ;
@@ -1296,11 +1298,12 @@ eOSState cMenuTimers::OnOff(void)
if (HasSubMenu())
return osContinue;
cStateKey StateKey;
- cTimers::GetTimersWrite(StateKey);
+ cTimers *Timers = cTimers::GetTimersWrite(StateKey);
cTimer *Timer = GetTimer();
if (Timer) {
Timer->OnOff();
if (Timer->Remote()) {
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
cStringList Response;
if (!ExecSVDRPCommand(Timer->Remote(), cString::sprintf("MODT %d %s", Timer->Id(), *Timer->ToText(true)), &Response) || SVDRPCode(Response[0]) != 250)
RemoteTimerError(Timer);
@@ -1357,6 +1360,8 @@ eOSState cMenuTimers::Delete(void)
timersStateKey.Remove();
return osContinue;
}
+ if (Timer->Remote())
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
Timers->Del(Timer);
cOsdMenu::Del(Current());
Display();
@@ -1684,6 +1689,8 @@ eOSState cMenuWhatsOn::Record(void)
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer);
}
+ else if (Timer->Remote())
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
if (HasSubMenu())
CloseSubMenu();
if (Update())
@@ -1990,6 +1997,8 @@ eOSState cMenuSchedule::Record(void)
// must add the timer before HandleRemoteModifications to get proper log messages with timer ids
Timers->Del(Timer);
}
+ else if (Timer->Remote())
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
if (HasSubMenu())
CloseSubMenu();
if (Update())
@@ -3144,6 +3153,7 @@ static bool TimerStillRecording(const char *FileName)
if (cTimer *Timer = Timers->GetById(Id, Remote)) {
cTimer OldTimer = *Timer;
Timer->Skip();
+ Timers->SetSyncStateKey(StateKeySVDRPRemoteTimersPoll);
if (Timer->IsSingleEvent()) {
if (HandleRemoteModifications(NULL, Timer))
Timers->Del(Timer);