aboutsummaryrefslogtreecommitdiff
path: root/Emby.Dlna/ConnectionManager/ConnectionManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Dlna/ConnectionManager/ConnectionManager.cs')
-rw-r--r--Emby.Dlna/ConnectionManager/ConnectionManager.cs40
1 files changed, 40 insertions, 0 deletions
diff --git a/Emby.Dlna/ConnectionManager/ConnectionManager.cs b/Emby.Dlna/ConnectionManager/ConnectionManager.cs
new file mode 100644
index 000000000..3f33f3ebf
--- /dev/null
+++ b/Emby.Dlna/ConnectionManager/ConnectionManager.cs
@@ -0,0 +1,40 @@
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Dlna;
+using Emby.Dlna.Service;
+using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
+using MediaBrowser.Model.Xml;
+
+namespace Emby.Dlna.ConnectionManager
+{
+ public class ConnectionManager : BaseService, IConnectionManager
+ {
+ private readonly IDlnaManager _dlna;
+ private readonly ILogger _logger;
+ private readonly IServerConfigurationManager _config;
+ protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory;
+
+ public ConnectionManager(IDlnaManager dlna, IServerConfigurationManager config, ILogger logger, IHttpClient httpClient, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
+ : base(logger, httpClient)
+ {
+ _dlna = dlna;
+ _config = config;
+ _logger = logger;
+ XmlReaderSettingsFactory = xmlReaderSettingsFactory;
+ }
+
+ public string GetServiceXml(IDictionary<string, string> headers)
+ {
+ return new ConnectionManagerXmlBuilder().GetXml();
+ }
+
+ public ControlResponse ProcessControlRequest(ControlRequest request)
+ {
+ var profile = _dlna.GetProfile(request.Headers) ??
+ _dlna.GetDefaultProfile();
+
+ return new ControlHandler(_config, _logger, XmlReaderSettingsFactory, profile).ProcessControlRequest(request);
+ }
+ }
+}