aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs')
-rw-r--r--MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs22
1 files changed, 18 insertions, 4 deletions
diff --git a/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs b/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs
index 2ba018ad2..b4f918e68 100644
--- a/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs
+++ b/MediaBrowser.Dlna/ContentDirectory/ControlHandler.cs
@@ -103,12 +103,12 @@ namespace MediaBrowser.Dlna.ContentDirectory
private IEnumerable<KeyValuePair<string, string>> HandleGetSearchCapabilities()
{
- return new Headers { { "SearchCaps", string.Empty } };
+ return new Headers(true) { { "SearchCaps", "upnp:class,dc:title,upnp:artist" } };
}
private IEnumerable<KeyValuePair<string, string>> HandleGetSortCapabilities()
{
- return new Headers { { "SortCaps", string.Empty } };
+ return new Headers(true) { { "SortCaps", string.Empty } };
}
private IEnumerable<KeyValuePair<string, string>> HandleGetSystemUpdateID()
@@ -120,7 +120,7 @@ namespace MediaBrowser.Dlna.ContentDirectory
private IEnumerable<KeyValuePair<string, string>> HandleXGetFeatureList()
{
- return new Headers { { "FeatureList", GetFeatureListXml() } };
+ return new Headers(true) { { "FeatureList", GetFeatureListXml() } };
}
private string GetFeatureListXml()
@@ -386,7 +386,21 @@ namespace MediaBrowser.Dlna.ContentDirectory
|| string.Equals(id, "1", StringComparison.OrdinalIgnoreCase)
? user.RootFolder
- : _libraryManager.GetItemById(new Guid(id));
+ : ParseItemId(id, user);
+ }
+
+ private BaseItem ParseItemId(string id, User user)
+ {
+ Guid itemId;
+
+ if (Guid.TryParse(id, out itemId))
+ {
+ return _libraryManager.GetItemById(itemId);
+ }
+
+ Logger.Error("Error parsing item Id: {0}. Returning user root folder.", id);
+
+ return user.RootFolder;
}
}
}