aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Images/ImageService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Images/ImageService.cs')
-rw-r--r--MediaBrowser.Api/Images/ImageService.cs42
1 files changed, 15 insertions, 27 deletions
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs
index f6c97e091..69d4a4ab4 100644
--- a/MediaBrowser.Api/Images/ImageService.cs
+++ b/MediaBrowser.Api/Images/ImageService.cs
@@ -279,13 +279,16 @@ namespace MediaBrowser.Api.Images
var itemImages = item.ImageInfos;
- foreach (var image in itemImages.Where(i => !item.AllowsMultipleImages(i.Type)))
+ foreach (var image in itemImages)
{
- var info = GetImageInfo(item, image, null);
-
- if (info != null)
+ if (!item.AllowsMultipleImages(image.Type))
{
- list.Add(info);
+ var info = GetImageInfo(item, image, null);
+
+ if (info != null)
+ {
+ list.Add(info);
+ }
}
}
@@ -312,7 +315,7 @@ namespace MediaBrowser.Api.Images
return list;
}
- private ImageInfo GetImageInfo(IHasImages item, ItemImageInfo info, int? imageIndex)
+ private ImageInfo GetImageInfo(IHasMetadata item, ItemImageInfo info, int? imageIndex)
{
try
{
@@ -507,7 +510,7 @@ namespace MediaBrowser.Api.Images
/// <param name="currentIndex">Index of the current.</param>
/// <param name="newIndex">The new index.</param>
/// <returns>Task.</returns>
- private Task UpdateItemIndex(IHasImages item, ImageType type, int currentIndex, int newIndex)
+ private Task UpdateItemIndex(IHasMetadata item, ImageType type, int currentIndex, int newIndex)
{
return item.SwapImages(type, currentIndex, newIndex);
}
@@ -520,7 +523,7 @@ namespace MediaBrowser.Api.Images
/// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <returns>System.Object.</returns>
/// <exception cref="ResourceNotFoundException"></exception>
- public Task<object> GetImage(ImageRequest request, IHasImages item, bool isHeadRequest)
+ public Task<object> GetImage(ImageRequest request, IHasMetadata item, bool isHeadRequest)
{
if (request.PercentPlayed.HasValue)
{
@@ -553,20 +556,7 @@ namespace MediaBrowser.Api.Images
throw new ResourceNotFoundException(string.Format("{0} does not have an image of type {1}", item.Name, request.Type));
}
- var supportedImageEnhancers = request.EnableImageEnhancers ? _imageProcessor.ImageEnhancers.Where(i =>
- {
- try
- {
- return i.Supports(item, request.Type);
- }
- catch (Exception ex)
- {
- Logger.ErrorException("Error in image enhancer: {0}", ex, i.GetType().Name);
-
- return false;
- }
-
- }).ToList() : new List<IImageEnhancer>();
+ var supportedImageEnhancers = request.EnableImageEnhancers ? _imageProcessor.GetSupportedEnhancers(item, request.Type) : new List<IImageEnhancer>();
var cropwhitespace = request.Type == ImageType.Logo ||
request.Type == ImageType.Art
@@ -603,7 +593,7 @@ namespace MediaBrowser.Api.Images
isHeadRequest);
}
- private async Task<object> GetImageResult(IHasImages item,
+ private async Task<object> GetImageResult(IHasMetadata item,
ImageRequest request,
ItemImageInfo image,
bool cropwhitespace,
@@ -649,9 +639,7 @@ namespace MediaBrowser.Api.Images
IsHeadRequest = isHeadRequest,
Path = imageResult.Item1,
- // Sometimes imagemagick keeps a hold on the file briefly even after it's done writing to it.
- // I'd rather do this than add a delay after saving the file
- FileShare = FileShareMode.ReadWrite
+ FileShare = FileShareMode.Read
}).ConfigureAwait(false);
}
@@ -749,7 +737,7 @@ namespace MediaBrowser.Api.Images
/// <param name="request">The request.</param>
/// <param name="item">The item.</param>
/// <returns>System.String.</returns>
- private ItemImageInfo GetImageInfo(ImageRequest request, IHasImages item)
+ private ItemImageInfo GetImageInfo(ImageRequest request, IHasMetadata item)
{
var index = request.Index ?? 0;