mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-22 18:14:42 +01:00
progress on remote control
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using MediaBrowser.Controller.Session;
|
||||
using MediaBrowser.Model.Net;
|
||||
using MediaBrowser.Model.Session;
|
||||
|
||||
namespace MediaBrowser.Controller.Dto
|
||||
@@ -23,7 +22,12 @@ namespace MediaBrowser.Controller.Dto
|
||||
DeviceName = session.DeviceName,
|
||||
Id = session.Id,
|
||||
LastActivityDate = session.LastActivityDate,
|
||||
NowPlayingPositionTicks = session.NowPlayingPositionTicks
|
||||
NowPlayingPositionTicks = session.NowPlayingPositionTicks,
|
||||
SupportsRemoteControl = session.SupportsRemoteControl,
|
||||
IsPaused = session.IsPaused,
|
||||
NowViewingContext = session.NowViewingContext,
|
||||
NowViewingItemIdentifier = session.NowViewingItemIdentifier,
|
||||
NowViewingItemType = session.NowViewingItemType
|
||||
};
|
||||
|
||||
if (session.NowPlayingItem != null)
|
||||
@@ -36,9 +40,6 @@ namespace MediaBrowser.Controller.Dto
|
||||
dto.UserId = session.UserId.Value.ToString("N");
|
||||
}
|
||||
|
||||
dto.SupportsRemoteControl = session.WebSocket != null &&
|
||||
session.WebSocket.State == WebSocketState.Open;
|
||||
|
||||
return dto;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using MediaBrowser.Common.Net;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Model.Net;
|
||||
using System;
|
||||
|
||||
namespace MediaBrowser.Controller.Session
|
||||
@@ -39,6 +40,24 @@ namespace MediaBrowser.Controller.Session
|
||||
/// <value>The name of the device.</value>
|
||||
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>
|
||||
@@ -51,6 +70,12 @@ namespace MediaBrowser.Controller.Session
|
||||
/// <value>The now playing position ticks.</value>
|
||||
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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user