diff options
Diffstat (limited to 'MediaBrowser.Model/Dlna')
| -rw-r--r-- | MediaBrowser.Model/Dlna/DeviceProfile.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/Filter.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/SearchCriteria.cs | 49 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dlna/SortCriteria.cs | 11 |
4 files changed, 88 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Dlna/DeviceProfile.cs b/MediaBrowser.Model/Dlna/DeviceProfile.cs index 8b4a47a54..6567f05aa 100644 --- a/MediaBrowser.Model/Dlna/DeviceProfile.cs +++ b/MediaBrowser.Model/Dlna/DeviceProfile.cs @@ -40,6 +40,8 @@ namespace MediaBrowser.Model.Dlna public string SupportedMediaTypes { get; set; } + public string UserId { get; set; } + /// <summary> /// Controls the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace. /// </summary> diff --git a/MediaBrowser.Model/Dlna/Filter.cs b/MediaBrowser.Model/Dlna/Filter.cs new file mode 100644 index 000000000..6655e84c2 --- /dev/null +++ b/MediaBrowser.Model/Dlna/Filter.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace MediaBrowser.Model.Dlna +{ + public class Filter + { + private readonly List<string> _fields; + private readonly bool _all; + + public Filter(string filter) + { + _all = string.Equals(filter, "*", StringComparison.OrdinalIgnoreCase); + + _fields = (filter ?? string.Empty) + .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) + .ToList(); + } + + public bool Contains(string field) + { + return _all || _fields.Contains(field, StringComparer.OrdinalIgnoreCase); + } + } +} diff --git a/MediaBrowser.Model/Dlna/SearchCriteria.cs b/MediaBrowser.Model/Dlna/SearchCriteria.cs new file mode 100644 index 000000000..d3f8b8332 --- /dev/null +++ b/MediaBrowser.Model/Dlna/SearchCriteria.cs @@ -0,0 +1,49 @@ +using System; + +namespace MediaBrowser.Model.Dlna +{ + public class SearchCriteria + { + public SearchType SearchType { get; set; } + + public SearchCriteria(string search) + { + if (string.IsNullOrEmpty(search)) + { + throw new ArgumentNullException("search"); + } + + SearchType = SearchType.Unknown; + + if (search.IndexOf("upnp:class", StringComparison.OrdinalIgnoreCase) != -1 && + search.IndexOf("derivedfrom", StringComparison.OrdinalIgnoreCase) != -1) + { + if (search.IndexOf("object.item.audioItem", StringComparison.OrdinalIgnoreCase) != -1) + { + SearchType = SearchType.Audio; + } + else if (search.IndexOf("object.item.imageItem", StringComparison.OrdinalIgnoreCase) != -1) + { + SearchType = SearchType.Image; + } + else if (search.IndexOf("object.item.videoItem", StringComparison.OrdinalIgnoreCase) != -1) + { + SearchType = SearchType.Video; + } + else if (search.IndexOf("object.container.playlistContainer", StringComparison.OrdinalIgnoreCase) != -1) + { + SearchType = SearchType.Playlist; + } + } + } + } + + public enum SearchType + { + Unknown = 0, + Audio = 1, + Image = 2, + Video = 3, + Playlist = 4 + } +} diff --git a/MediaBrowser.Model/Dlna/SortCriteria.cs b/MediaBrowser.Model/Dlna/SortCriteria.cs new file mode 100644 index 000000000..944d50486 --- /dev/null +++ b/MediaBrowser.Model/Dlna/SortCriteria.cs @@ -0,0 +1,11 @@ + +namespace MediaBrowser.Model.Dlna +{ + public class SortCriteria + { + public SortCriteria(string value) + { + + } + } +} |
