aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs9
-rw-r--r--Emby.Server.Implementations/Session/SessionManager.cs29
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);