diff options
Diffstat (limited to 'MediaBrowser.Api/Dlna/DlnaServerService.cs')
| -rw-r--r-- | MediaBrowser.Api/Dlna/DlnaServerService.cs | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/MediaBrowser.Api/Dlna/DlnaServerService.cs b/MediaBrowser.Api/Dlna/DlnaServerService.cs index 2383017c6..3de8bac49 100644 --- a/MediaBrowser.Api/Dlna/DlnaServerService.cs +++ b/MediaBrowser.Api/Dlna/DlnaServerService.cs @@ -1,6 +1,5 @@ using MediaBrowser.Controller.Dlna; using ServiceStack; -using ServiceStack.Text.Controller; using ServiceStack.Web; using System; using System.Collections.Generic; @@ -31,6 +30,12 @@ namespace MediaBrowser.Api.Dlna { } + [Route("/Dlna/mediareceiverregistrar/mediareceiverregistrar.xml", "GET", Summary = "Gets dlna mediareceiverregistrar xml")] + [Route("/Dlna/mediareceiverregistrar/mediareceiverregistrar", "GET", Summary = "Gets dlna mediareceiverregistrar xml")] + public class GetMediaReceiverRegistrar + { + } + [Route("/Dlna/contentdirectory/{UuId}/control", "POST", Summary = "Processes a control request")] public class ProcessContentDirectoryControlRequest : IRequiresRequestStream { @@ -49,6 +54,22 @@ namespace MediaBrowser.Api.Dlna public Stream RequestStream { get; set; } } + [Route("/Dlna/mediareceiverregistrar/{UuId}/control", "POST", Summary = "Processes a control request")] + public class ProcessMediaReceiverRegistrarControlRequest : IRequiresRequestStream + { + [ApiMember(Name = "UuId", Description = "Server UuId", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET")] + public string UuId { get; set; } + + public Stream RequestStream { get; set; } + } + + [Route("/Dlna/mediareceiverregistrar/{UuId}/events", Summary = "Processes an event subscription request")] + public class ProcessMediaReceiverRegistrarEventRequest + { + [ApiMember(Name = "UuId", Description = "Server UuId", IsRequired = false, DataType = "string", ParameterType = "path", Verb = "GET")] + public string UuId { get; set; } + } + [Route("/Dlna/contentdirectory/{UuId}/events", Summary = "Processes an event subscription request")] public class ProcessContentDirectoryEventRequest { @@ -75,12 +96,14 @@ namespace MediaBrowser.Api.Dlna private readonly IDlnaManager _dlnaManager; private readonly IContentDirectory _contentDirectory; private readonly IConnectionManager _connectionManager; + private readonly IMediaReceiverRegistrar _mediaReceiverRegistrar; - public DlnaServerService(IDlnaManager dlnaManager, IContentDirectory contentDirectory, IConnectionManager connectionManager) + public DlnaServerService(IDlnaManager dlnaManager, IContentDirectory contentDirectory, IConnectionManager connectionManager, IMediaReceiverRegistrar mediaReceiverRegistrar) { _dlnaManager = dlnaManager; _contentDirectory = contentDirectory; _connectionManager = connectionManager; + _mediaReceiverRegistrar = mediaReceiverRegistrar; } public object Get(GetDescriptionXml request) @@ -97,6 +120,13 @@ namespace MediaBrowser.Api.Dlna return ResultFactory.GetResult(xml, "text/xml"); } + public object Get(GetMediaReceiverRegistrar request) + { + var xml = _mediaReceiverRegistrar.GetServiceXml(GetRequestHeaders()); + + return ResultFactory.GetResult(xml, "text/xml"); + } + public object Get(GetConnnectionManager request) { var xml = _connectionManager.GetServiceXml(GetRequestHeaders()); @@ -104,13 +134,20 @@ namespace MediaBrowser.Api.Dlna return ResultFactory.GetResult(xml, "text/xml"); } - public async Task<object> Post(ProcessContentDirectoryControlRequest request) + public async Task<object> Post(ProcessMediaReceiverRegistrarControlRequest request) { var response = await PostAsync(request.RequestStream, _contentDirectory).ConfigureAwait(false); return ResultFactory.GetResult(response.Xml, "text/xml"); } + public async Task<object> Post(ProcessContentDirectoryControlRequest request) + { + var response = await PostAsync(request.RequestStream, _mediaReceiverRegistrar).ConfigureAwait(false); + + return ResultFactory.GetResult(response.Xml, "text/xml"); + } + public async Task<object> Post(ProcessConnectionManagerControlRequest request) { var response = await PostAsync(request.RequestStream, _connectionManager).ConfigureAwait(false); @@ -171,6 +208,11 @@ namespace MediaBrowser.Api.Dlna return ProcessEventRequest(_connectionManager); } + public object Any(ProcessMediaReceiverRegistrarEventRequest request) + { + return ProcessEventRequest(_mediaReceiverRegistrar); + } + private object ProcessEventRequest(IEventManager eventManager) { var subscriptionId = GetHeader("SID"); |
