diff options
Diffstat (limited to 'MediaBrowser.Controller')
30 files changed, 124 insertions, 144 deletions
diff --git a/MediaBrowser.Controller/Channels/IChannelManager.cs b/MediaBrowser.Controller/Channels/IChannelManager.cs index 824bdf8ff..46e55a21c 100644 --- a/MediaBrowser.Controller/Channels/IChannelManager.cs +++ b/MediaBrowser.Controller/Channels/IChannelManager.cs @@ -30,7 +30,7 @@ namespace MediaBrowser.Controller.Channels /// Gets all channel features. /// </summary> /// <returns>IEnumerable{ChannelFeatures}.</returns> - IEnumerable<ChannelFeatures> GetAllChannelFeatures(); + ChannelFeatures[] GetAllChannelFeatures(); /// <summary> /// Gets the channel. diff --git a/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs b/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs index 7d80d7e12..976808aad 100644 --- a/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs +++ b/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs @@ -58,13 +58,4 @@ namespace MediaBrowser.Controller.Channels DefaultSortFields = new List<ChannelItemSortField>(); } } - - public class ChannelDownloadException : Exception - { - public ChannelDownloadException(string message) - : base(message) - { - - } - } } diff --git a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs index 4a2d39066..7a387e319 100644 --- a/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs +++ b/MediaBrowser.Controller/Collections/CollectionCreationOptions.cs @@ -14,14 +14,14 @@ namespace MediaBrowser.Controller.Collections public Dictionary<string, string> ProviderIds { get; set; } - public List<Guid> ItemIdList { get; set; } - public List<Guid> UserIds { get; set; } + public string[] ItemIdList { get; set; } + public string[] UserIds { get; set; } public CollectionCreationOptions() { ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - ItemIdList = new List<Guid>(); - UserIds = new List<Guid>(); + ItemIdList = new string[] { }; + UserIds = new string[] { }; } } } diff --git a/MediaBrowser.Controller/Collections/ICollectionManager.cs b/MediaBrowser.Controller/Collections/ICollectionManager.cs index 89e505579..0ca7b2e3e 100644 --- a/MediaBrowser.Controller/Collections/ICollectionManager.cs +++ b/MediaBrowser.Controller/Collections/ICollectionManager.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.Controller.Collections /// <param name="collectionId">The collection identifier.</param> /// <param name="itemIds">The item ids.</param> /// <returns>Task.</returns> - Task AddToCollection(Guid collectionId, IEnumerable<Guid> itemIds); + Task AddToCollection(Guid collectionId, string[] itemIds); /// <summary> /// Removes from collection. @@ -44,7 +44,7 @@ namespace MediaBrowser.Controller.Collections /// <param name="collectionId">The collection identifier.</param> /// <param name="itemIds">The item ids.</param> /// <returns>Task.</returns> - Task RemoveFromCollection(Guid collectionId, IEnumerable<Guid> itemIds); + Task RemoveFromCollection(Guid collectionId, string[] itemIds); /// <summary> /// Collapses the items within box sets. diff --git a/MediaBrowser.Controller/Dto/DtoOptions.cs b/MediaBrowser.Controller/Dto/DtoOptions.cs index 098ba558f..f05ae4e71 100644 --- a/MediaBrowser.Controller/Dto/DtoOptions.cs +++ b/MediaBrowser.Controller/Dto/DtoOptions.cs @@ -14,8 +14,8 @@ namespace MediaBrowser.Controller.Dto ItemFields.RefreshState }; - public List<ItemFields> Fields { get; set; } - public List<ImageType> ImageTypes { get; set; } + public ItemFields[] Fields { get; set; } + public ImageType[] ImageTypes { get; set; } public int ImageTypeLimit { get; set; } public bool EnableImages { get; set; } public bool AddProgramRecordingInfo { get; set; } @@ -28,6 +28,15 @@ namespace MediaBrowser.Controller.Dto { } + private static readonly ImageType[] AllImageTypes = Enum.GetNames(typeof(ImageType)) + .Select(i => (ImageType)Enum.Parse(typeof(ImageType), i, true)) + .ToArray(); + + private static readonly ItemFields[] AllItemFields = Enum.GetNames(typeof(ItemFields)) + .Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)) + .Except(DefaultExcludedFields) + .ToArray(); + public DtoOptions(bool allFields) { ImageTypeLimit = int.MaxValue; @@ -37,19 +46,14 @@ namespace MediaBrowser.Controller.Dto if (allFields) { - Fields = Enum.GetNames(typeof(ItemFields)) - .Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)) - .Except(DefaultExcludedFields) - .ToList(); + Fields = AllItemFields; } else { - Fields = new List<ItemFields>(); + Fields = new ItemFields[] { }; } - ImageTypes = Enum.GetNames(typeof(ImageType)) - .Select(i => (ImageType)Enum.Parse(typeof(ImageType), i, true)) - .ToList(); + ImageTypes = AllImageTypes; } public int GetImageLimit(ImageType type) diff --git a/MediaBrowser.Controller/Dto/IDtoService.cs b/MediaBrowser.Controller/Dto/IDtoService.cs index 963092f52..76ecd8180 100644 --- a/MediaBrowser.Controller/Dto/IDtoService.cs +++ b/MediaBrowser.Controller/Dto/IDtoService.cs @@ -41,7 +41,7 @@ namespace MediaBrowser.Controller.Dto /// <param name="user">The user.</param> /// <param name="owner">The owner.</param> /// <returns>Task{BaseItemDto}.</returns> - BaseItemDto GetBaseItemDto(BaseItem item, List<ItemFields> fields, User user = null, BaseItem owner = null); + BaseItemDto GetBaseItemDto(BaseItem item, ItemFields[] fields, User user = null, BaseItem owner = null); /// <summary> /// Gets the base item dto. @@ -61,9 +61,10 @@ namespace MediaBrowser.Controller.Dto /// <param name="user">The user.</param> /// <param name="owner">The owner.</param> /// <returns>IEnumerable<BaseItemDto>.</returns> - Task<List<BaseItemDto>> GetBaseItemDtos(IEnumerable<BaseItem> items, DtoOptions options, User user = null, - BaseItem owner = null); - + Task<BaseItemDto[]> GetBaseItemDtos(BaseItem[] items, DtoOptions options, User user = null, BaseItem owner = null); + + Task<BaseItemDto[]> GetBaseItemDtos(List<BaseItem> items, DtoOptions options, User user = null, BaseItem owner = null); + /// <summary> /// Gets the chapter information dto. /// </summary> diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index a6418418e..c158378a6 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -2265,7 +2265,7 @@ namespace MediaBrowser.Controller.Entities return path; } - public virtual void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields) + public virtual void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, ItemFields[] fields) { if (RunTimeTicks.HasValue) { diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 46ae9230b..b08834784 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -711,7 +711,7 @@ namespace MediaBrowser.Controller.Entities { if (!(this is ICollectionFolder)) { - return GetChildren(user, true).Count(); + return GetChildren(user, true).Count; } } @@ -792,16 +792,16 @@ namespace MediaBrowser.Controller.Entities query.StartIndex = null; query.Limit = null; - IEnumerable<BaseItem> itemsList = LibraryManager.GetItemList(query); + var itemsList = LibraryManager.GetItemList(query); var user = query.User; if (user != null) { // needed for boxsets - itemsList = itemsList.Where(i => i.IsVisibleStandalone(query.User)); + itemsList = itemsList.Where(i => i.IsVisibleStandalone(query.User)).ToList(); } - IEnumerable<BaseItem> returnItems; + BaseItem[] returnItems; int totalCount = 0; if (query.EnableTotalRecordCount) @@ -812,16 +812,16 @@ namespace MediaBrowser.Controller.Entities } else { - returnItems = itemsList; + returnItems = itemsList.ToArray(); } if (limit.HasValue) { - returnItems = returnItems.Skip(startIndex ?? 0).Take(limit.Value); + returnItems = returnItems.Skip(startIndex ?? 0).Take(limit.Value).ToArray(); } else if (startIndex.HasValue) { - returnItems = returnItems.Skip(startIndex.Value); + returnItems = returnItems.Skip(startIndex.Value).ToArray(); } return new QueryResult<BaseItem> @@ -1044,7 +1044,7 @@ namespace MediaBrowser.Controller.Entities return UserViewBuilder.PostFilterAndSort(items, this, null, query, LibraryManager, ConfigurationManager, collapseBoxSetItems, enableSorting); } - public virtual IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public virtual List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { if (user == null) { @@ -1058,7 +1058,7 @@ namespace MediaBrowser.Controller.Entities AddChildren(user, includeLinkedChildren, result, false, null); - return result.Values; + return result.Values.ToList(); } protected virtual IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user) @@ -1477,7 +1477,7 @@ namespace MediaBrowser.Controller.Entities } } - public override void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields) + public override void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, ItemFields[] fields) { if (!SupportsUserDataFromChildren) { diff --git a/MediaBrowser.Controller/Entities/IHasUserData.cs b/MediaBrowser.Controller/Entities/IHasUserData.cs index ce4a482ba..ab4f624e2 100644 --- a/MediaBrowser.Controller/Entities/IHasUserData.cs +++ b/MediaBrowser.Controller/Entities/IHasUserData.cs @@ -16,7 +16,7 @@ namespace MediaBrowser.Controller.Entities /// <summary> /// Fills the user data dto values. /// </summary> - void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields); + void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, ItemFields[] fields); bool EnableRememberingTrackSelections { get; } diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index 6ba9577d1..376f65d60 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -170,24 +170,24 @@ namespace MediaBrowser.Controller.Entities.Movies StringComparison.OrdinalIgnoreCase); } - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { var children = base.GetChildren(user, includeLinkedChildren); if (string.Equals(DisplayOrder, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase)) { // Sort by name - return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending); + return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending).ToList(); } if (string.Equals(DisplayOrder, ItemSortBy.PremiereDate, StringComparison.OrdinalIgnoreCase)) { // Sort by release date - return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending); + return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList(); } // Default sorting - return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending); + return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending).ToList(); } public BoxSetInfo GetLookupInfo() diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index b681fdcb1..8b934bc47 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -160,27 +160,27 @@ namespace MediaBrowser.Controller.Entities.TV /// <summary> /// Gets the episodes. /// </summary> - public IEnumerable<Episode> GetEpisodes(User user, DtoOptions options) + public List<BaseItem> GetEpisodes(User user, DtoOptions options) { return GetEpisodes(Series, user, options); } - public IEnumerable<Episode> GetEpisodes(Series series, User user, DtoOptions options) + public List<BaseItem> GetEpisodes(Series series, User user, DtoOptions options) { return GetEpisodes(series, user, null, options); } - public IEnumerable<Episode> GetEpisodes(Series series, User user, IEnumerable<Episode> allSeriesEpisodes, DtoOptions options) + public List<BaseItem> GetEpisodes(Series series, User user, IEnumerable<Episode> allSeriesEpisodes, DtoOptions options) { return series.GetSeasonEpisodes(this, user, allSeriesEpisodes, options); } - public IEnumerable<Episode> GetEpisodes() + public List<BaseItem> GetEpisodes() { return Series.GetSeasonEpisodes(this, null, null, new DtoOptions(true)); } - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { return GetEpisodes(user, new DtoOptions(true)); } diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 3350a6579..545e8518a 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -152,12 +152,8 @@ namespace MediaBrowser.Controller.Entities.TV IncludeItemTypes = new[] { typeof(Season).Name }, IsVirtualItem = false, Limit = 0, - DtoOptions = new Dto.DtoOptions + DtoOptions = new Dto.DtoOptions(false) { - Fields = new List<ItemFields> - { - - }, EnableImages = false } }); @@ -173,12 +169,8 @@ namespace MediaBrowser.Controller.Entities.TV { AncestorWithPresentationUniqueKey = null, SeriesPresentationUniqueKey = seriesKey, - DtoOptions = new Dto.DtoOptions + DtoOptions = new Dto.DtoOptions(false) { - Fields = new List<ItemFields> - { - - }, EnableImages = false } }; @@ -226,12 +218,12 @@ namespace MediaBrowser.Controller.Entities.TV } } - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { return GetSeasons(user, new DtoOptions(true)); } - public IEnumerable<Season> GetSeasons(User user, DtoOptions options) + public List<BaseItem> GetSeasons(User user, DtoOptions options) { var query = new InternalItemsQuery(user) { @@ -240,7 +232,7 @@ namespace MediaBrowser.Controller.Entities.TV SetSeasonQueryOptions(query, user); - return LibraryManager.GetItemList(query).Cast<Season>(); + return LibraryManager.GetItemList(query); } private void SetSeasonQueryOptions(InternalItemsQuery query, User user) @@ -292,7 +284,7 @@ namespace MediaBrowser.Controller.Entities.TV return LibraryManager.GetItemsResult(query); } - public IEnumerable<Episode> GetEpisodes(User user, DtoOptions options) + public IEnumerable<BaseItem> GetEpisodes(User user, DtoOptions options) { var seriesKey = GetUniqueSeriesKey(this); @@ -312,7 +304,7 @@ namespace MediaBrowser.Controller.Entities.TV var allItems = LibraryManager.GetItemList(query); - var allSeriesEpisodes = allItems.OfType<Episode>(); + var allSeriesEpisodes = allItems.OfType<Episode>().ToList(); var allEpisodes = allItems.OfType<Season>() .SelectMany(i => i.GetEpisodes(this, user, allSeriesEpisodes, options)) @@ -396,7 +388,7 @@ namespace MediaBrowser.Controller.Entities.TV await ProviderManager.RefreshSingleItem(this, refreshOptions, cancellationToken).ConfigureAwait(false); } - public IEnumerable<Episode> GetSeasonEpisodes(Season parentSeason, User user, DtoOptions options) + public List<BaseItem> GetSeasonEpisodes(Season parentSeason, User user, DtoOptions options) { var queryFromSeries = ConfigurationManager.Configuration.DisplaySpecialsWithinSeasons; @@ -422,12 +414,12 @@ namespace MediaBrowser.Controller.Entities.TV } } - var allItems = LibraryManager.GetItemList(query).OfType<Episode>(); + var allItems = LibraryManager.GetItemList(query); return GetSeasonEpisodes(parentSeason, user, allItems, options); } - public IEnumerable<Episode> GetSeasonEpisodes(Season parentSeason, User user, IEnumerable<Episode> allSeriesEpisodes, DtoOptions options) + public List<BaseItem> GetSeasonEpisodes(Season parentSeason, User user, IEnumerable<BaseItem> allSeriesEpisodes, DtoOptions options) { if (allSeriesEpisodes == null) { @@ -438,14 +430,13 @@ namespace MediaBrowser.Controller.Entities.TV var sortBy = (parentSeason.IndexNumber ?? -1) == 0 ? ItemSortBy.SortName : ItemSortBy.AiredEpisodeOrder; - return LibraryManager.Sort(episodes, user, new[] { sortBy }, SortOrder.Ascending) - .Cast<Episode>(); + return LibraryManager.Sort(episodes, user, new[] { sortBy }, SortOrder.Ascending).ToList(); } /// <summary> /// Filters the episodes by season. /// </summary> - public static IEnumerable<Episode> FilterEpisodesBySeason(IEnumerable<Episode> episodes, Season parentSeason, bool includeSpecials) + public static IEnumerable<BaseItem> FilterEpisodesBySeason(IEnumerable<BaseItem> episodes, Season parentSeason, bool includeSpecials) { var seasonNumber = parentSeason.IndexNumber; var seasonPresentationKey = GetUniqueSeriesKey(parentSeason); @@ -454,7 +445,9 @@ namespace MediaBrowser.Controller.Entities.TV return episodes.Where(episode => { - var currentSeasonNumber = supportSpecialsInSeason ? episode.AiredSeasonNumber : episode.ParentIndexNumber; + var episodeItem = (Episode) episode; + + var currentSeasonNumber = supportSpecialsInSeason ? episodeItem.AiredSeasonNumber : episode.ParentIndexNumber; if (currentSeasonNumber.HasValue && seasonNumber.HasValue && currentSeasonNumber.Value == seasonNumber.Value) { return true; @@ -465,7 +458,7 @@ namespace MediaBrowser.Controller.Entities.TV return true; } - var season = episode.Season; + var season = episodeItem.Season; return season != null && string.Equals(GetUniqueSeriesKey(season), seasonPresentationKey, StringComparison.OrdinalIgnoreCase); }); } diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs index d35156345..dd70277a7 100644 --- a/MediaBrowser.Controller/Entities/UserRootFolder.cs +++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs @@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities public override int GetChildCount(User user) { - return GetChildren(user, true).Count(); + return GetChildren(user, true).Count; } [IgnoreDataMember] diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index 4c44a613b..7ab4e98fc 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -80,7 +80,7 @@ namespace MediaBrowser.Controller.Entities .GetUserItems(parent, this, ViewType, query).Result; } - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { var result = GetItemList(new InternalItemsQuery { @@ -90,7 +90,7 @@ namespace MediaBrowser.Controller.Entities }); - return result; + return result.ToList(); } public override bool CanDelete() diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 9323404e3..acfa239d3 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -533,7 +533,7 @@ namespace MediaBrowser.Controller.Entities return ConvertToResult(_libraryManager.GetItemList(query)); } - private QueryResult<BaseItem> ConvertToResult(IEnumerable<BaseItem> items) + private QueryResult<BaseItem> ConvertToResult(List<BaseItem> items) { var arr = items.ToArray(); return new QueryResult<BaseItem> @@ -789,7 +789,7 @@ namespace MediaBrowser.Controller.Entities // This must be the last filter if (!string.IsNullOrEmpty(query.AdjacentTo)) { - items = FilterForAdjacency(items, query.AdjacentTo); + items = FilterForAdjacency(items.ToList(), query.AdjacentTo); } return SortAndPage(items, totalRecordLimit, query, libraryManager, enableSorting); @@ -1763,10 +1763,8 @@ namespace MediaBrowser.Controller.Entities return _userViewManager.GetUserSubView(parent.Id.ToString("N"), type, sortName, CancellationToken.None); } - public static IEnumerable<BaseItem> FilterForAdjacency(IEnumerable<BaseItem> items, string adjacentToId) + public static IEnumerable<BaseItem> FilterForAdjacency(List<BaseItem> list, string adjacentToId) { - var list = items.ToList(); - var adjacentToIdGuid = new Guid(adjacentToId); var adjacentToItem = list.FirstOrDefault(i => i.Id == adjacentToIdGuid); diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 3b166db92..fa11787f5 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -153,14 +153,14 @@ namespace MediaBrowser.Controller.Entities /// Gets the playable stream files. /// </summary> /// <returns>List{System.String}.</returns> - public List<string> GetPlayableStreamFiles() + public string[] GetPlayableStreamFiles() { return GetPlayableStreamFiles(Path); } - public List<string> GetPlayableStreamFileNames() + public string[] GetPlayableStreamFileNames() { - return GetPlayableStreamFiles().Select(System.IO.Path.GetFileName).ToList(); ; + return GetPlayableStreamFiles().Select(System.IO.Path.GetFileName).ToArray(); } /// <summary> @@ -389,11 +389,11 @@ namespace MediaBrowser.Controller.Entities /// </summary> /// <param name="rootPath">The root path.</param> /// <returns>List{System.String}.</returns> - public List<string> GetPlayableStreamFiles(string rootPath) + public string[] GetPlayableStreamFiles(string rootPath) { if (VideoType == VideoType.VideoFile) { - return new List<string>(); + return new string[] { }; } var allFiles = FileSystem.GetFilePaths(rootPath, true).ToList(); @@ -411,10 +411,10 @@ namespace MediaBrowser.Controller.Entities return QueryPlayableStreamFiles(rootPath, videoType).Select(name => allFiles.FirstOrDefault(f => string.Equals(System.IO.Path.GetFileName(f), name, StringComparison.OrdinalIgnoreCase))) .Where(f => !string.IsNullOrEmpty(f)) - .ToList(); + .ToArray(); } - public static List<string> QueryPlayableStreamFiles(string rootPath, VideoType videoType) + public static string[] QueryPlayableStreamFiles(string rootPath, VideoType videoType) { if (videoType == VideoType.Dvd) { @@ -423,7 +423,7 @@ namespace MediaBrowser.Controller.Entities .ThenBy(i => i.FullName) .Take(1) .Select(i => i.FullName) - .ToList(); + .ToArray(); } if (videoType == VideoType.BluRay) { @@ -432,9 +432,9 @@ namespace MediaBrowser.Controller.Entities .ThenBy(i => i.FullName) .Take(1) .Select(i => i.FullName) - .ToList(); + .ToArray(); } - return new List<string>(); + return new string[] { }; } /// <summary> diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index e9954545e..b364ab990 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -40,7 +40,7 @@ namespace MediaBrowser.Controller.Library /// </summary> UserItemDataDto GetUserDataDto(IHasUserData item, User user); - UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields); + UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, ItemFields[] fields); /// <summary> /// Get all user data for the given user diff --git a/MediaBrowser.Controller/Library/IUserViewManager.cs b/MediaBrowser.Controller/Library/IUserViewManager.cs index b46ece49d..76182c641 100644 --- a/MediaBrowser.Controller/Library/IUserViewManager.cs +++ b/MediaBrowser.Controller/Library/IUserViewManager.cs @@ -11,7 +11,7 @@ namespace MediaBrowser.Controller.Library { public interface IUserViewManager { - Task<IEnumerable<Folder>> GetUserViews(UserViewQuery query, CancellationToken cancellationToken); + Task<Folder[]> GetUserViews(UserViewQuery query, CancellationToken cancellationToken); Task<UserView> GetUserSubView(string name, string parentId, string type, string sortName, CancellationToken cancellationToken); diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs index d6855b792..862894f61 100644 --- a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs +++ b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs @@ -243,7 +243,7 @@ namespace MediaBrowser.Controller.LiveTv /// Gets the recommended programs internal. /// </summary> /// <returns>Task<QueryResult<LiveTvProgram>>.</returns> - Task<QueryResult<LiveTvProgram>> GetRecommendedProgramsInternal(RecommendedProgramQuery query, DtoOptions options, CancellationToken cancellationToken); + Task<QueryResult<BaseItem>> GetRecommendedProgramsInternal(RecommendedProgramQuery query, DtoOptions options, CancellationToken cancellationToken); /// <summary> /// Gets the live tv information. @@ -316,7 +316,7 @@ namespace MediaBrowser.Controller.LiveTv /// <param name="fields">The fields.</param> /// <param name="user">The user.</param> /// <returns>Task.</returns> - Task AddInfoToProgramDto(List<Tuple<BaseItem, BaseItemDto>> programs, List<ItemFields> fields, User user = null); + Task AddInfoToProgramDto(List<Tuple<BaseItem, BaseItemDto>> programs, ItemFields[] fields, User user = null); /// <summary> /// Saves the tuner host. @@ -335,7 +335,7 @@ namespace MediaBrowser.Controller.LiveTv Task<TunerChannelMapping> SetChannelMapping(string providerId, string tunerChannelNumber, string providerChannelNumber); - TunerChannelMapping GetTunerChannelMapping(ChannelInfo channel, List<NameValuePair> mappings, List<ChannelInfo> providerChannels); + TunerChannelMapping GetTunerChannelMapping(ChannelInfo channel, NameValuePair[] mappings, List<ChannelInfo> providerChannels); /// <summary> /// Gets the lineups. diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 823c893ea..8b4179adc 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -1521,7 +1521,7 @@ namespace MediaBrowser.Controller.MediaEncoding { var inputModifier = string.Empty; - var numInputFiles = state.PlayableStreamFileNames.Count > 0 ? state.PlayableStreamFileNames.Count : 1; + var numInputFiles = state.PlayableStreamFileNames.Length > 0 ? state.PlayableStreamFileNames.Length : 1; var probeSizeArgument = GetProbeSizeArgument(numInputFiles); string analyzeDurationArgument; @@ -1676,12 +1676,12 @@ namespace MediaBrowser.Controller.MediaEncoding } else { - state.PlayableStreamFileNames = new List<string>(); + state.PlayableStreamFileNames = new string[]{}; } } else { - state.PlayableStreamFileNames = new List<string>(); + state.PlayableStreamFileNames = new string[] { }; } if (mediaSource.Timestamp.HasValue) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs index b552579a8..c2ce96979 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs @@ -27,7 +27,7 @@ namespace MediaBrowser.Controller.MediaEncoding public string MediaPath { get; set; } public bool IsInputVideo { get; set; } public IIsoMount IsoMount { get; set; } - public List<string> PlayableStreamFileNames { get; set; } + public string[] PlayableStreamFileNames { get; set; } public string OutputAudioCodec { get; set; } public int? OutputVideoBitrate { get; set; } public MediaStream SubtitleStream { get; set; } @@ -42,8 +42,8 @@ namespace MediaBrowser.Controller.MediaEncoding public bool ReadInputAtNativeFramerate { get; set; } - private List<TranscodeReason> _transcodeReasons = null; - public List<TranscodeReason> TranscodeReasons + private TranscodeReason[] _transcodeReasons = null; + public TranscodeReason[] TranscodeReasons { get { @@ -53,7 +53,7 @@ namespace MediaBrowser.Controller.MediaEncoding .Split(',') .Where(i => !string.IsNullOrWhiteSpace(i)) .Select(v => (TranscodeReason)Enum.Parse(typeof(TranscodeReason), v, true)) - .ToList(); + .ToArray(); } return _transcodeReasons; @@ -164,7 +164,7 @@ namespace MediaBrowser.Controller.MediaEncoding _logger = logger; TranscodingType = jobType; RemoteHttpHeaders = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - PlayableStreamFileNames = new List<string>(); + PlayableStreamFileNames = new string[]{}; SupportedAudioCodecs = new List<string>(); SupportedVideoCodecs = new List<string>(); SupportedSubtitleCodecs = new List<string>(); diff --git a/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs b/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs index d5c85197f..70e4db84f 100644 --- a/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs +++ b/MediaBrowser.Controller/MediaEncoding/MediaEncoderHelpers.cs @@ -1,12 +1,9 @@ using MediaBrowser.Model.IO; using MediaBrowser.Model.MediaInfo; using System; -using System.Collections.Generic; using System.IO; using System.Linq; -using MediaBrowser.Controller.IO; - namespace MediaBrowser.Controller.MediaEncoding { /// <summary> @@ -23,34 +20,34 @@ namespace MediaBrowser.Controller.MediaEncoding /// <param name="isoMount">The iso mount.</param> /// <param name="playableStreamFileNames">The playable stream file names.</param> /// <returns>System.String[][].</returns> - public static string[] GetInputArgument(IFileSystem fileSystem, string videoPath, MediaProtocol protocol, IIsoMount isoMount, List<string> playableStreamFileNames) + public static string[] GetInputArgument(IFileSystem fileSystem, string videoPath, MediaProtocol protocol, IIsoMount isoMount, string[] playableStreamFileNames) { - if (playableStreamFileNames.Count > 0) + if (playableStreamFileNames.Length > 0) { if (isoMount == null) { - return GetPlayableStreamFiles(fileSystem, videoPath, playableStreamFileNames).ToArray(); + return GetPlayableStreamFiles(fileSystem, videoPath, playableStreamFileNames); } - return GetPlayableStreamFiles(fileSystem, isoMount.MountedPath, playableStreamFileNames).ToArray(); + return GetPlayableStreamFiles(fileSystem, isoMount.MountedPath, playableStreamFileNames); } return new[] {videoPath}; } - private static List<string> GetPlayableStreamFiles(IFileSystem fileSystem, string rootPath, List<string> filenames) + private static string[] GetPlayableStreamFiles(IFileSystem fileSystem, string rootPath, string[] filenames) { - if (filenames.Count == 0) + if (filenames.Length == 0) { - return new List<string>(); + return new string[]{}; } var allFiles = fileSystem .GetFilePaths(rootPath, true) - .ToList(); + .ToArray(); return filenames.Select(name => allFiles.FirstOrDefault(f => string.Equals(Path.GetFileName(f), name, StringComparison.OrdinalIgnoreCase))) .Where(f => !string.IsNullOrEmpty(f)) - .ToList(); + .ToArray(); } } } diff --git a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs index 0785ee29f..929f4e649 100644 --- a/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs +++ b/MediaBrowser.Controller/MediaEncoding/MediaInfoRequest.cs @@ -14,12 +14,12 @@ namespace MediaBrowser.Controller.MediaEncoding public DlnaProfileType MediaType { get; set; } public IIsoMount MountedIso { get; set; } public VideoType VideoType { get; set; } - public List<string> PlayableStreamFileNames { get; set; } + public string[] PlayableStreamFileNames { get; set; } public int AnalyzeDurationMs { get; set; } public MediaInfoRequest() { - PlayableStreamFileNames = new List<string>(); + PlayableStreamFileNames = new string[] { }; } } } diff --git a/MediaBrowser.Controller/Notifications/INotificationManager.cs b/MediaBrowser.Controller/Notifications/INotificationManager.cs index cb1e3da90..f9d264314 100644 --- a/MediaBrowser.Controller/Notifications/INotificationManager.cs +++ b/MediaBrowser.Controller/Notifications/INotificationManager.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.Controller.Notifications /// Gets the notification types. /// </summary> /// <returns>IEnumerable{NotificationTypeInfo}.</returns> - IEnumerable<NotificationTypeInfo> GetNotificationTypes(); + List<NotificationTypeInfo> GetNotificationTypes(); /// <summary> /// Gets the notification services. diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs index aec0668d4..e36e6ad5d 100644 --- a/MediaBrowser.Controller/Playlists/Playlist.cs +++ b/MediaBrowser.Controller/Playlists/Playlist.cs @@ -89,7 +89,7 @@ namespace MediaBrowser.Controller.Playlists return new List<BaseItem>(); } - public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren) + public override List<BaseItem> GetChildren(User user, bool includeLinkedChildren) { return GetPlayableItems(user, new DtoOptions(true)); } diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 703666d66..77e6a7e40 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -97,7 +97,7 @@ namespace MediaBrowser.Controller.Providers /// Gets all metadata plugins. /// </summary> /// <returns>IEnumerable{MetadataPlugin}.</returns> - IEnumerable<MetadataPluginSummary> GetAllMetadataPlugins(); + MetadataPluginSummary[] GetAllMetadataPlugins(); /// <summary> /// Gets the external urls. diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index 11a9ceac4..265f4f544 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -22,13 +22,13 @@ namespace MediaBrowser.Controller.Session _sessionManager = sessionManager; _logger = logger; - AdditionalUsers = new List<SessionUserInfo>(); + AdditionalUsers = new SessionUserInfo[] { }; PlayState = new PlayerStateInfo(); } public PlayerStateInfo PlayState { get; set; } - public List<SessionUserInfo> AdditionalUsers { get; set; } + public SessionUserInfo[] AdditionalUsers { get; set; } public ClientCapabilities Capabilities { get; set; } @@ -42,13 +42,13 @@ namespace MediaBrowser.Controller.Session /// Gets or sets the playable media types. /// </summary> /// <value>The playable media types.</value> - public List<string> PlayableMediaTypes + public string[] PlayableMediaTypes { get { if (Capabilities == null) { - return new List<string>(); + return new string[] { }; } return Capabilities.PlayableMediaTypes; } @@ -138,13 +138,13 @@ namespace MediaBrowser.Controller.Session /// Gets or sets the supported commands. /// </summary> /// <value>The supported commands.</value> - public List<string> SupportedCommands + public string[] SupportedCommands { get { if (Capabilities == null) { - return new List<string>(); + return new string[] { }; } return Capabilities.SupportedCommands; } diff --git a/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs b/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs index d1d5f27be..2199c21e6 100644 --- a/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs +++ b/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs @@ -28,7 +28,7 @@ namespace MediaBrowser.Controller.Subtitles /// <summary> /// Searches the subtitles. /// </summary> - Task<IEnumerable<RemoteSubtitleInfo>> SearchSubtitles(Video video, + Task<RemoteSubtitleInfo[]> SearchSubtitles(Video video, string language, bool? isPerfectMatch, CancellationToken cancellationToken); @@ -39,7 +39,7 @@ namespace MediaBrowser.Controller.Subtitles /// <param name="request">The request.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{IEnumerable{RemoteSubtitleInfo}}.</returns> - Task<IEnumerable<RemoteSubtitleInfo>> SearchSubtitles(SubtitleSearchRequest request, + Task<RemoteSubtitleInfo[]> SearchSubtitles(SubtitleSearchRequest request, CancellationToken cancellationToken); /// <summary> @@ -74,6 +74,6 @@ namespace MediaBrowser.Controller.Subtitles /// </summary> /// <param name="itemId">The item identifier.</param> /// <returns>IEnumerable{SubtitleProviderInfo}.</returns> - IEnumerable<SubtitleProviderInfo> GetProviders(string itemId); + SubtitleProviderInfo[] GetProviders(string itemId); } } diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs index 66f64464f..910d697ec 100644 --- a/MediaBrowser.Controller/Sync/ISyncManager.cs +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -79,7 +79,7 @@ namespace MediaBrowser.Controller.Sync /// <param name="targetId">The target identifier.</param> /// <param name="itemIds">The item ids.</param> /// <returns>Task.</returns> - Task CancelItems(string targetId, IEnumerable<string> itemIds); + Task CancelItems(string targetId, string[] itemIds); /// <summary> /// Adds the parts. @@ -89,9 +89,9 @@ namespace MediaBrowser.Controller.Sync /// <summary> /// Gets the synchronize targets. /// </summary> - IEnumerable<SyncTarget> GetSyncTargets(string userId); + List<SyncTarget> GetSyncTargets(string userId); - IEnumerable<SyncTarget> GetSyncTargets(string userId, bool? supportsRemoteSync); + List<SyncTarget> GetSyncTargets(string userId, bool? supportsRemoteSync); /// <summary> /// Supportses the synchronize. @@ -160,28 +160,24 @@ namespace MediaBrowser.Controller.Sync /// Gets the quality options. /// </summary> /// <param name="targetId">The target identifier.</param> - /// <returns>IEnumerable<SyncQualityOption>.</returns> - IEnumerable<SyncQualityOption> GetQualityOptions(string targetId); + List<SyncQualityOption> GetQualityOptions(string targetId); /// <summary> /// Gets the quality options. /// </summary> /// <param name="targetId">The target identifier.</param> /// <param name="user">The user.</param> - /// <returns>IEnumerable<SyncQualityOption>.</returns> - IEnumerable<SyncQualityOption> GetQualityOptions(string targetId, User user); + List<SyncQualityOption> GetQualityOptions(string targetId, User user); /// <summary> /// Gets the profile options. /// </summary> /// <param name="targetId">The target identifier.</param> - /// <returns>IEnumerable<SyncQualityOption>.</returns> - IEnumerable<SyncProfileOption> GetProfileOptions(string targetId); + List<SyncProfileOption> GetProfileOptions(string targetId); /// <summary> /// Gets the profile options. /// </summary> /// <param name="targetId">The target identifier.</param> /// <param name="user">The user.</param> - /// <returns>IEnumerable<SyncProfileOption>.</returns> - IEnumerable<SyncProfileOption> GetProfileOptions(string targetId, User user); + List<SyncProfileOption> GetProfileOptions(string targetId, User user); } } diff --git a/MediaBrowser.Controller/Sync/ISyncProvider.cs b/MediaBrowser.Controller/Sync/ISyncProvider.cs index aa4b36427..2f60e124e 100644 --- a/MediaBrowser.Controller/Sync/ISyncProvider.cs +++ b/MediaBrowser.Controller/Sync/ISyncProvider.cs @@ -18,13 +18,13 @@ namespace MediaBrowser.Controller.Sync /// </summary> /// <param name="userId">The user identifier.</param> /// <returns>IEnumerable<SyncTarget>.</returns> - IEnumerable<SyncTarget> GetSyncTargets(string userId); + List<SyncTarget> GetSyncTargets(string userId); /// <summary> /// Gets all synchronize targets. /// </summary> /// <returns>IEnumerable<SyncTarget>.</returns> - IEnumerable<SyncTarget> GetAllSyncTargets(); + List<SyncTarget> GetAllSyncTargets(); } public interface IHasUniqueTargetIds |
