mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-11 08:10:34 +02:00
fixes #574 - Add ability to report playable media types
This commit is contained in:
parent
be0f683e62
commit
d365e1df23
|
@ -194,6 +194,21 @@ namespace MediaBrowser.Api
|
||||||
public Guid UserId { get; set; }
|
public Guid UserId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("/Sessions/{Id}/Capabilities", "POST")]
|
||||||
|
[Api(("Updates capabilities for a device"))]
|
||||||
|
public class PostCapabilities : IReturnVoid
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the id.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The id.</value>
|
||||||
|
[ApiMember(Name = "Id", Description = "Session Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "POST")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[ApiMember(Name = "PlayableMediaTypes", Description = "A list of playable media types, comma delimited.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")]
|
||||||
|
public string PlayableMediaTypes { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class SessionsService
|
/// Class SessionsService
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -335,5 +350,14 @@ namespace MediaBrowser.Api
|
||||||
{
|
{
|
||||||
_sessionManager.RemoveAdditionalUser(request.Id, request.UserId);
|
_sessionManager.RemoveAdditionalUser(request.Id, request.UserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Post(PostCapabilities request)
|
||||||
|
{
|
||||||
|
var session = _sessionManager.Sessions.First(i => i.Id == request.Id);
|
||||||
|
|
||||||
|
session.PlayableMediaTypes = request.PlayableMediaTypes
|
||||||
|
.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Session;
|
using MediaBrowser.Model.Session;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -14,12 +15,20 @@ namespace MediaBrowser.Controller.Session
|
||||||
public SessionInfo()
|
public SessionInfo()
|
||||||
{
|
{
|
||||||
QueueableMediaTypes = new List<string>();
|
QueueableMediaTypes = new List<string>();
|
||||||
|
PlayableMediaTypes = new List<string>
|
||||||
|
{
|
||||||
|
MediaType.Audio,
|
||||||
|
MediaType.Book,
|
||||||
|
MediaType.Game,
|
||||||
|
MediaType.Photo,
|
||||||
|
MediaType.Video
|
||||||
|
};
|
||||||
|
|
||||||
AdditionalUsers = new List<SessionUserInfo>();
|
AdditionalUsers = new List<SessionUserInfo>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SessionUserInfo> AdditionalUsers { get; set; }
|
public List<SessionUserInfo> AdditionalUsers { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the remote end point.
|
/// Gets or sets the remote end point.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -37,7 +46,13 @@ namespace MediaBrowser.Controller.Session
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The queueable media types.</value>
|
/// <value>The queueable media types.</value>
|
||||||
public List<string> QueueableMediaTypes { get; set; }
|
public List<string> QueueableMediaTypes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the playable media types.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The playable media types.</value>
|
||||||
|
public List<string> PlayableMediaTypes { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the id.
|
/// Gets or sets the id.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -169,7 +184,7 @@ namespace MediaBrowser.Controller.Session
|
||||||
{
|
{
|
||||||
return SessionController.SupportsMediaRemoteControl;
|
return SessionController.SupportsMediaRemoteControl;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,12 @@ namespace MediaBrowser.Model.Session
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The queueable media types.</value>
|
/// <value>The queueable media types.</value>
|
||||||
public List<string> QueueableMediaTypes { get; set; }
|
public List<string> QueueableMediaTypes { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the playable media types.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The playable media types.</value>
|
||||||
|
public List<string> PlayableMediaTypes { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the id.
|
/// Gets or sets the id.
|
||||||
|
@ -138,6 +144,9 @@ namespace MediaBrowser.Model.Session
|
||||||
public SessionInfoDto()
|
public SessionInfoDto()
|
||||||
{
|
{
|
||||||
AdditionalUsers = new List<SessionUserInfo>();
|
AdditionalUsers = new List<SessionUserInfo>();
|
||||||
|
|
||||||
|
PlayableMediaTypes = new List<string>();
|
||||||
|
QueueableMediaTypes = new List<string>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -244,6 +244,7 @@ namespace MediaBrowser.Server.Implementations.Dto
|
||||||
ApplicationVersion = session.ApplicationVersion,
|
ApplicationVersion = session.ApplicationVersion,
|
||||||
CanSeek = session.CanSeek,
|
CanSeek = session.CanSeek,
|
||||||
QueueableMediaTypes = session.QueueableMediaTypes,
|
QueueableMediaTypes = session.QueueableMediaTypes,
|
||||||
|
PlayableMediaTypes = session.PlayableMediaTypes,
|
||||||
RemoteEndPoint = session.RemoteEndPoint,
|
RemoteEndPoint = session.RemoteEndPoint,
|
||||||
AdditionalUsers = session.AdditionalUsers
|
AdditionalUsers = session.AdditionalUsers
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue