aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Session
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Session')
-rw-r--r--MediaBrowser.Controller/Session/ISessionManager.cs16
-rw-r--r--MediaBrowser.Controller/Session/SessionInfo.cs54
2 files changed, 59 insertions, 11 deletions
diff --git a/MediaBrowser.Controller/Session/ISessionManager.cs b/MediaBrowser.Controller/Session/ISessionManager.cs
index 66facdf6d..8227170d4 100644
--- a/MediaBrowser.Controller/Session/ISessionManager.cs
+++ b/MediaBrowser.Controller/Session/ISessionManager.cs
@@ -3,7 +3,6 @@ using MediaBrowser.Controller.Library;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
-using MediaBrowser.Model.Session;
namespace MediaBrowser.Controller.Session
{
@@ -28,16 +27,10 @@ namespace MediaBrowser.Controller.Session
event EventHandler<PlaybackProgressEventArgs> PlaybackStopped;
/// <summary>
- /// Gets all connections.
+ /// Gets the sessions.
/// </summary>
- /// <value>All connections.</value>
- IEnumerable<SessionInfo> AllConnections { get; }
-
- /// <summary>
- /// Gets the active connections.
- /// </summary>
- /// <value>The active connections.</value>
- IEnumerable<SessionInfo> RecentConnections { get; }
+ /// <value>The sessions.</value>
+ IEnumerable<SessionInfo> Sessions { get; }
/// <summary>
/// Logs the user activity.
@@ -67,12 +60,13 @@ namespace MediaBrowser.Controller.Session
/// <param name="user">The user.</param>
/// <param name="item">The item.</param>
/// <param name="positionTicks">The position ticks.</param>
+ /// <param name="isPaused">if set to <c>true</c> [is paused].</param>
/// <param name="clientType">Type of the client.</param>
/// <param name="deviceId">The device id.</param>
/// <param name="deviceName">Name of the device.</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException"></exception>
- Task OnPlaybackProgress(User user, BaseItem item, long? positionTicks, string clientType, string deviceId, string deviceName);
+ Task OnPlaybackProgress(User user, BaseItem item, long? positionTicks, bool isPaused, string clientType, string deviceId, string deviceName);
/// <summary>
/// Used to report that playback has ended for an item
diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs
index 21c65df97..93ef4f694 100644
--- a/MediaBrowser.Controller/Session/SessionInfo.cs
+++ b/MediaBrowser.Controller/Session/SessionInfo.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Net;
using System;
namespace MediaBrowser.Controller.Session
@@ -40,6 +41,24 @@ namespace MediaBrowser.Controller.Session
public string DeviceName { get; set; }
/// <summary>
+ /// Gets or sets the now viewing context.
+ /// </summary>
+ /// <value>The now viewing context.</value>
+ public string NowViewingContext { get; set; }
+
+ /// <summary>
+ /// Gets or sets the type of the now viewing item.
+ /// </summary>
+ /// <value>The type of the now viewing item.</value>
+ public string NowViewingItemType { get; set; }
+
+ /// <summary>
+ /// Gets or sets the now viewing item identifier.
+ /// </summary>
+ /// <value>The now viewing item identifier.</value>
+ public string NowViewingItemIdentifier { get; set; }
+
+ /// <summary>
/// Gets or sets the now playing item.
/// </summary>
/// <value>The now playing item.</value>
@@ -52,6 +71,12 @@ namespace MediaBrowser.Controller.Session
public long? NowPlayingPositionTicks { get; set; }
/// <summary>
+ /// Gets or sets a value indicating whether this instance is paused.
+ /// </summary>
+ /// <value><c>true</c> if this instance is paused; otherwise, <c>false</c>.</value>
+ public bool? IsPaused { get; set; }
+
+ /// <summary>
/// Gets or sets the device id.
/// </summary>
/// <value>The device id.</value>
@@ -62,5 +87,34 @@ namespace MediaBrowser.Controller.Session
/// </summary>
/// <value>The web socket.</value>
public IWebSocketConnection WebSocket { get; set; }
+
+ /// <summary>
+ /// Gets a value indicating whether this instance is active.
+ /// </summary>
+ /// <value><c>true</c> if this instance is active; otherwise, <c>false</c>.</value>
+ public bool IsActive
+ {
+ get
+ {
+ if (WebSocket != null)
+ {
+ return WebSocket.State == WebSocketState.Open;
+ }
+
+ return (DateTime.UtcNow - LastActivityDate).TotalMinutes <= 5;
+ }
+ }
+
+ /// <summary>
+ /// Gets a value indicating whether [supports remote control].
+ /// </summary>
+ /// <value><c>true</c> if [supports remote control]; otherwise, <c>false</c>.</value>
+ public bool SupportsRemoteControl
+ {
+ get
+ {
+ return WebSocket != null && WebSocket.State == WebSocketState.Open;
+ }
+ }
}
}