fixes #574 - Add ability to report playable media types

This commit is contained in:
Luke Pulverenti 2014-01-05 00:34:06 -05:00
parent be0f683e62
commit d365e1df23
4 changed files with 52 additions and 3 deletions

View file

@ -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();
}
} }
} }

View file

@ -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;
} }
} }

View file

@ -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>();
} }
} }

View file

@ -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
}; };