aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Dlna/Server/DescriptionXmlBuilder.cs59
1 files changed, 33 insertions, 26 deletions
diff --git a/Emby.Dlna/Server/DescriptionXmlBuilder.cs b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
index bca9e81cd..44b5e070f 100644
--- a/Emby.Dlna/Server/DescriptionXmlBuilder.cs
+++ b/Emby.Dlna/Server/DescriptionXmlBuilder.cs
@@ -6,7 +6,6 @@ using System.Globalization;
using System.Linq;
using System.Security;
using System.Text;
-using Emby.Dlna.Common;
using MediaBrowser.Model.Dlna;
namespace Emby.Dlna.Server
@@ -20,8 +19,9 @@ namespace Emby.Dlna.Server
private readonly string _serverAddress;
private readonly string _serverName;
private readonly string _serverId;
+ private readonly string _customName;
- public DescriptionXmlBuilder(DeviceProfile profile, string serverUdn, string serverAddress, string serverName, string serverId)
+ public DescriptionXmlBuilder(DeviceProfile profile, string serverUdn, string serverAddress, string serverName, string serverId, string customName)
{
if (string.IsNullOrEmpty(serverUdn))
{
@@ -38,6 +38,7 @@ namespace Emby.Dlna.Server
_serverAddress = serverAddress;
_serverName = serverName;
_serverId = serverId;
+ _customName = customName;
}
private static bool EnableAbsoluteUrls => false;
@@ -168,7 +169,12 @@ namespace Emby.Dlna.Server
{
if (string.IsNullOrEmpty(_profile.FriendlyName))
{
- return "Jellyfin - " + _serverName;
+ if (string.IsNullOrEmpty(_customName))
+ {
+ return "Jellyfin - " + _serverName;
+ }
+
+ return _customName;
}
var characterList = new List<char>();
@@ -235,13 +241,13 @@ namespace Emby.Dlna.Server
.Append(SecurityElement.Escape(service.ServiceId ?? string.Empty))
.Append("</serviceId>");
builder.Append("<SCPDURL>")
- .Append(BuildUrl(service.ScpdUrl))
+ .Append(BuildUrl(service.ScpdUrl, true))
.Append("</SCPDURL>");
builder.Append("<controlURL>")
- .Append(BuildUrl(service.ControlUrl))
+ .Append(BuildUrl(service.ControlUrl, true))
.Append("</controlURL>");
builder.Append("<eventSubURL>")
- .Append(BuildUrl(service.EventSubUrl))
+ .Append(BuildUrl(service.EventSubUrl, true))
.Append("</eventSubURL>");
builder.Append("</service>");
@@ -250,7 +256,7 @@ namespace Emby.Dlna.Server
builder.Append("</serviceList>");
}
- private string BuildUrl(string url)
+ private string BuildUrl(string url, bool absoluteUrl = false)
{
if (string.IsNullOrEmpty(url))
{
@@ -261,7 +267,7 @@ namespace Emby.Dlna.Server
url = "/dlna/" + _serverUdn + "/" + url;
- if (EnableAbsoluteUrls)
+ if (EnableAbsoluteUrls || absoluteUrl)
{
url = _serverAddress.TrimEnd('/') + url;
}
@@ -269,7 +275,7 @@ namespace Emby.Dlna.Server
return SecurityElement.Escape(url);
}
- private IEnumerable<DeviceIcon> GetIcons()
+ private static IEnumerable<DeviceIcon> GetIcons()
=> new[]
{
new DeviceIcon
@@ -329,25 +335,26 @@ namespace Emby.Dlna.Server
private IEnumerable<DeviceService> GetServices()
{
- var list = new List<DeviceService>();
-
- list.Add(new DeviceService
+ var list = new List<DeviceService>
{
- ServiceType = "urn:schemas-upnp-org:service:ContentDirectory:1",
- ServiceId = "urn:upnp-org:serviceId:ContentDirectory",
- ScpdUrl = "contentdirectory/contentdirectory.xml",
- ControlUrl = "contentdirectory/control",
- EventSubUrl = "contentdirectory/events"
- });
+ new DeviceService
+ {
+ ServiceType = "urn:schemas-upnp-org:service:ContentDirectory:1",
+ ServiceId = "urn:upnp-org:serviceId:ContentDirectory",
+ ScpdUrl = "contentdirectory/contentdirectory.xml",
+ ControlUrl = "contentdirectory/control",
+ EventSubUrl = "contentdirectory/events"
+ },
- list.Add(new DeviceService
- {
- ServiceType = "urn:schemas-upnp-org:service:ConnectionManager:1",
- ServiceId = "urn:upnp-org:serviceId:ConnectionManager",
- ScpdUrl = "connectionmanager/connectionmanager.xml",
- ControlUrl = "connectionmanager/control",
- EventSubUrl = "connectionmanager/events"
- });
+ new DeviceService
+ {
+ ServiceType = "urn:schemas-upnp-org:service:ConnectionManager:1",
+ ServiceId = "urn:upnp-org:serviceId:ConnectionManager",
+ ScpdUrl = "connectionmanager/connectionmanager.xml",
+ ControlUrl = "connectionmanager/control",
+ EventSubUrl = "connectionmanager/events"
+ }
+ };
if (_profile.EnableMSMediaReceiverRegistrar)
{