diff options
Diffstat (limited to 'Emby.Server.Implementations')
| -rw-r--r-- | Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs | 9 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Session/SessionManager.cs | 29 |
2 files changed, 28 insertions, 10 deletions
diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index 1fc3dcd72..82f32efa2 100644 --- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -635,6 +635,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV existingTimer.Status == RecordingStatus.Completed) { existingTimer.Status = RecordingStatus.New; + existingTimer.IsManual = true; _timerProvider.Update(existingTimer); return Task.FromResult(existingTimer.Id); } @@ -663,6 +664,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV RecordingHelper.CopyProgramInfoToTimerInfo(programInfo, timer); } + timer.IsManual = true; _timerProvider.Add(timer); return Task.FromResult(timer.Id); } @@ -758,6 +760,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV existingTimer.PostPaddingSeconds = updatedTimer.PostPaddingSeconds; existingTimer.IsPostPaddingRequired = updatedTimer.IsPostPaddingRequired; existingTimer.IsPrePaddingRequired = updatedTimer.IsPrePaddingRequired; + + _timerProvider.Update(existingTimer); } return Task.FromResult(true); @@ -2203,6 +2207,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV private bool ShouldCancelTimerForSeriesTimer(SeriesTimerInfo seriesTimer, TimerInfo timer) { + if (timer.IsManual) + { + return false; + } + if (!seriesTimer.RecordAnyTime) { if (Math.Abs(seriesTimer.StartDate.TimeOfDay.Ticks - timer.StartDate.TimeOfDay.Ticks) >= TimeSpan.FromMinutes(5).Ticks) diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs index a20fb67b2..8051b7848 100644 --- a/Emby.Server.Implementations/Session/SessionManager.cs +++ b/Emby.Server.Implementations/Session/SessionManager.cs @@ -954,8 +954,11 @@ namespace Emby.Server.Implementations.Session { var session = GetSessionToRemoteControl(sessionId); - var controllingSession = GetSession(controllingSessionId); - AssertCanControl(session, controllingSession); + if (!string.IsNullOrWhiteSpace(controllingSessionId)) + { + var controllingSession = GetSession(controllingSessionId); + AssertCanControl(session, controllingSession); + } return session.SessionController.SendGeneralCommand(command, cancellationToken); } @@ -1042,11 +1045,14 @@ namespace Emby.Server.Implementations.Session } } - var controllingSession = GetSession(controllingSessionId); - AssertCanControl(session, controllingSession); - if (controllingSession.UserId.HasValue) + if (!string.IsNullOrWhiteSpace(controllingSessionId)) { - command.ControllingUserId = controllingSession.UserId.Value.ToString("N"); + var controllingSession = GetSession(controllingSessionId); + AssertCanControl(session, controllingSession); + if (controllingSession.UserId.HasValue) + { + command.ControllingUserId = controllingSession.UserId.Value.ToString("N"); + } } await session.SessionController.SendPlayCommand(command, cancellationToken).ConfigureAwait(false); @@ -1136,11 +1142,14 @@ namespace Emby.Server.Implementations.Session { var session = GetSessionToRemoteControl(sessionId); - var controllingSession = GetSession(controllingSessionId); - AssertCanControl(session, controllingSession); - if (controllingSession.UserId.HasValue) + if (!string.IsNullOrWhiteSpace(controllingSessionId)) { - command.ControllingUserId = controllingSession.UserId.Value.ToString("N"); + var controllingSession = GetSession(controllingSessionId); + AssertCanControl(session, controllingSession); + if (controllingSession.UserId.HasValue) + { + command.ControllingUserId = controllingSession.UserId.Value.ToString("N"); + } } return session.SessionController.SendPlaystateCommand(command, cancellationToken); |
