diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-11-20 12:38:36 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-11-20 12:38:36 -0500 |
| commit | d52b0de1467e4255982f5409c70804fae66f2ede (patch) | |
| tree | 32bc4144212d7f6ee3941c9c2471b56ab9c5d3e2 | |
| parent | 39418b4172fb36dc8f3a8d7f0dd23e3985e77657 (diff) | |
3.2.40.0
| -rw-r--r-- | Emby.Dlna/ContentDirectory/ControlHandler.cs | 53 | ||||
| -rw-r--r-- | SharedVersion.cs | 2 |
2 files changed, 42 insertions, 13 deletions
diff --git a/Emby.Dlna/ContentDirectory/ControlHandler.cs b/Emby.Dlna/ContentDirectory/ControlHandler.cs index 7db282dc8..5d6ef1adf 100644 --- a/Emby.Dlna/ContentDirectory/ControlHandler.cs +++ b/Emby.Dlna/ContentDirectory/ControlHandler.cs @@ -491,18 +491,27 @@ namespace Emby.Dlna.ContentDirectory return GetGenreItems(item, null, user, sort, startIndex, limit); } - var collectionFolder = item as ICollectionFolder; - if (collectionFolder != null && string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) + if (!stubType.HasValue || stubType.Value != StubType.Folder) { - return GetMusicFolders(item, user, stubType, sort, startIndex, limit); - } - if (collectionFolder != null && string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) - { - return GetMovieFolders(item, user, stubType, sort, startIndex, limit); - } - if (collectionFolder != null && string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) - { - return GetTvFolders(item, user, stubType, sort, startIndex, limit); + var collectionFolder = item as ICollectionFolder; + if (collectionFolder != null && string.Equals(CollectionType.Music, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) + { + return GetMusicFolders(item, user, stubType, sort, startIndex, limit); + } + if (collectionFolder != null && string.Equals(CollectionType.Movies, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) + { + return GetMovieFolders(item, user, stubType, sort, startIndex, limit); + } + if (collectionFolder != null && string.Equals(CollectionType.TvShows, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase)) + { + return GetTvFolders(item, user, stubType, sort, startIndex, limit); + } + + var userView = item as UserView; + if (userView != null && string.Equals(CollectionType.Folders, userView.ViewType, StringComparison.OrdinalIgnoreCase)) + { + return GetFolders(item, user, stubType, sort, startIndex, limit); + } } if (stubType.HasValue) @@ -513,7 +522,10 @@ namespace Emby.Dlna.ContentDirectory return GetItemsFromPerson(person, user, startIndex, limit); } - return ApplyPaging(new QueryResult<ServerItem>(), startIndex, limit); + if (stubType.Value != StubType.Folder) + { + return ApplyPaging(new QueryResult<ServerItem>(), startIndex, limit); + } } var folder = (Folder)item; @@ -733,6 +745,23 @@ namespace Emby.Dlna.ContentDirectory }; } + private QueryResult<ServerItem> GetFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit) + { + var folders = user.RootFolder.GetChildren(user, true) + .OrderBy(i => i.SortName) + .Select(i => new ServerItem(i) + { + StubType = StubType.Folder + }) + .ToArray(); + + return new QueryResult<ServerItem> + { + Items = folders, + TotalRecordCount = folders.Length + }; + } + private QueryResult<ServerItem> GetTvFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit) { var query = new InternalItemsQuery(user) diff --git a/SharedVersion.cs b/SharedVersion.cs index 16e0fbe3b..580bc7001 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,3 +1,3 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.36.15")] +[assembly: AssemblyVersion("3.2.40.0")] |
