Browse Source

Move some arrays to generics

Bond_009 6 years ago
parent
commit
70c85925af

+ 9 - 9
Emby.Drawing/ImageProcessor.cs

@@ -83,8 +83,8 @@ namespace Emby.Drawing
             }
         }
 
-        public string[] SupportedInputFormats =>
-            new string[]
+        public IReadOnlyCollection<string> SupportedInputFormats =>
+            new HashSet<string>(StringComparer.OrdinalIgnoreCase)
             {
                 "tiff",
                 "tif",
@@ -137,14 +137,14 @@ namespace Emby.Drawing
             }
         }
 
-        public ImageFormat[] GetSupportedImageOutputFormats()
-        {
-            return _imageEncoder.SupportedOutputFormats;
-        }
+        public IReadOnlyCollection<ImageFormat> GetSupportedImageOutputFormats()
+            => _imageEncoder.SupportedOutputFormats;
+
+        private static readonly HashSet<string> TransparentImageTypes
+            = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { ".png", ".webp", ".gif" };
 
-        private static readonly string[] TransparentImageTypes = new string[] { ".png", ".webp", ".gif" };
         public bool SupportsTransparency(string path)
-            => TransparentImageTypes.Contains(Path.GetExtension(path).ToLowerInvariant());
+            => TransparentImageTypes.Contains(Path.GetExtension(path));
 
         public async Task<(string path, string mimeType, DateTime dateModified)> ProcessImage(ImageProcessingOptions options)
         {
@@ -472,7 +472,7 @@ namespace Emby.Drawing
                 return (originalImagePath, dateModified);
             }
 
-            if (!_imageEncoder.SupportedInputFormats.Contains(inputFormat, StringComparer.OrdinalIgnoreCase))
+            if (!_imageEncoder.SupportedInputFormats.Contains(inputFormat))
             {
                 try
                 {

+ 6 - 9
Emby.Drawing/NullImageEncoder.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using MediaBrowser.Controller.Drawing;
 using MediaBrowser.Model.Drawing;
 
@@ -6,15 +7,11 @@ namespace Emby.Drawing
 {
     public class NullImageEncoder : IImageEncoder
     {
-        public string[] SupportedInputFormats =>
-            new[]
-            {
-                "png",
-                "jpeg",
-                "jpg"
-            };
-
-        public ImageFormat[] SupportedOutputFormats => new[] { ImageFormat.Jpg, ImageFormat.Png };
+        public IReadOnlyCollection<string> SupportedInputFormats
+            => new HashSet<string>(StringComparer.OrdinalIgnoreCase) { "png", "jpeg", "jpg" };
+
+        public IReadOnlyCollection<ImageFormat> SupportedOutputFormats
+        => new HashSet<ImageFormat>() { ImageFormat.Jpg, ImageFormat.Png };
 
         public void CropWhiteSpace(string inputPath, string outputPath)
         {

+ 4 - 4
Emby.Server.Implementations/IO/LibraryMonitor.cs

@@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.IO
         /// <summary>
         /// Any file name ending in any of these will be ignored by the watchers
         /// </summary>
-        private readonly string[] _alwaysIgnoreFiles = new string[]
+        private readonly HashSet<string> _alwaysIgnoreFiles = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
         {
             "small.jpg",
             "albumart.jpg",
@@ -53,7 +53,7 @@ namespace Emby.Server.Implementations.IO
             ".actors"
         };
 
-        private readonly string[] _alwaysIgnoreExtensions = new string[]
+        private readonly HashSet<string> _alwaysIgnoreExtensions = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
         {
             // thumbs.db
             ".db",
@@ -456,8 +456,8 @@ namespace Emby.Server.Implementations.IO
             var filename = Path.GetFileName(path);
 
             var monitorPath = !string.IsNullOrEmpty(filename) &&
-                !_alwaysIgnoreFiles.Contains(filename, StringComparer.OrdinalIgnoreCase) &&
-                !_alwaysIgnoreExtensions.Contains(Path.GetExtension(path) ?? string.Empty, StringComparer.OrdinalIgnoreCase) &&
+                !_alwaysIgnoreFiles.Contains(filename) &&
+                !_alwaysIgnoreExtensions.Contains(Path.GetExtension(path)) &&
                 _alwaysIgnoreSubstrings.All(i => path.IndexOf(i, StringComparison.OrdinalIgnoreCase) == -1);
 
             // Ignore certain files

+ 4 - 3
Emby.Server.Implementations/Library/Resolvers/PhotoResolver.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using MediaBrowser.Controller.Drawing;
@@ -85,7 +86,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
             return false;
         }
 
-        private static readonly string[] IgnoreFiles =
+        private static readonly HashSet<string> IgnoreFiles = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
         {
             "folder",
             "thumb",
@@ -102,7 +103,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
         {
             var filename = Path.GetFileNameWithoutExtension(path) ?? string.Empty;
 
-            if (IgnoreFiles.Contains(filename, StringComparer.OrdinalIgnoreCase))
+            if (IgnoreFiles.Contains(filename))
             {
                 return false;
             }
@@ -112,7 +113,7 @@ namespace Emby.Server.Implementations.Library.Resolvers
                 return false;
             }
 
-            return imageProcessor.SupportedInputFormats.Contains((Path.GetExtension(path) ?? string.Empty).TrimStart('.'), StringComparer.OrdinalIgnoreCase);
+            return imageProcessor.SupportedInputFormats.Contains((Path.GetExtension(path) ?? string.Empty).TrimStart('.'));
         }
 
     }

+ 1 - 1
Emby.Server.Implementations/Services/ResponseHelper.cs

@@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.Services
                 response.ContentType = defaultContentType;
             }
 
-            if (new HashSet<string> { "application/json", }.Contains(response.ContentType))
+            if (response.ContentType == "application/json")
             {
                 response.ContentType += "; charset=utf-8";
             }

+ 0 - 2
Emby.Server.Implementations/Services/ServiceExec.cs

@@ -23,8 +23,6 @@ namespace Emby.Server.Implementations.Services
             "POLL",  "SUBSCRIBE", "UNSUBSCRIBE"
         };
 
-        public static HashSet<string> AllVerbsSet = new HashSet<string>(AllVerbs);
-
         public static List<MethodInfo> GetActions(this Type serviceType)
         {
             var list = new List<MethodInfo>();

+ 8 - 5
Jellyfin.Drawing.Skia/SkiaEncoder.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Linq;
@@ -35,8 +36,8 @@ namespace Jellyfin.Drawing.Skia
             LogVersion();
         }
 
-        public string[] SupportedInputFormats =>
-            new[]
+        public IReadOnlyCollection<string> SupportedInputFormats =>
+            new HashSet<string>(StringComparer.OrdinalIgnoreCase)
             {
                 "jpeg",
                 "jpg",
@@ -62,7 +63,8 @@ namespace Jellyfin.Drawing.Skia
                 "arw"
             };
 
-        public ImageFormat[] SupportedOutputFormats => new[] { ImageFormat.Webp, ImageFormat.Jpg, ImageFormat.Png };
+        public IReadOnlyCollection<ImageFormat> SupportedOutputFormats
+            => new HashSet<ImageFormat>() { ImageFormat.Webp, ImageFormat.Jpg, ImageFormat.Png };
 
         private void LogVersion()
         {
@@ -253,7 +255,8 @@ namespace Jellyfin.Drawing.Skia
             }
         }
 
-        private static string[] TransparentImageTypes = new string[] { ".png", ".gif", ".webp" };
+        private static readonly HashSet<string> TransparentImageTypes
+            = new HashSet<string>(StringComparer.OrdinalIgnoreCase) { ".png", ".gif", ".webp" };
 
         internal static SKBitmap Decode(string path, bool forceCleanBitmap, IFileSystem fileSystem, ImageOrientation? orientation, out SKEncodedOrigin origin)
         {
@@ -262,7 +265,7 @@ namespace Jellyfin.Drawing.Skia
                 throw new FileNotFoundException("File not found", path);
             }
 
-            var requiresTransparencyHack = TransparentImageTypes.Contains(Path.GetExtension(path) ?? string.Empty);
+            var requiresTransparencyHack = TransparentImageTypes.Contains(Path.GetExtension(path));
 
             if (requiresTransparencyHack || forceCleanBitmap)
             {

+ 3 - 2
MediaBrowser.Controller/Drawing/IImageEncoder.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 using MediaBrowser.Model.Drawing;
 
 namespace MediaBrowser.Controller.Drawing
@@ -9,12 +10,12 @@ namespace MediaBrowser.Controller.Drawing
         /// Gets the supported input formats.
         /// </summary>
         /// <value>The supported input formats.</value>
-        string[] SupportedInputFormats { get; }
+        IReadOnlyCollection<string> SupportedInputFormats { get; }
         /// <summary>
         /// Gets the supported output formats.
         /// </summary>
         /// <value>The supported output formats.</value>
-        ImageFormat[] SupportedOutputFormats { get; }
+        IReadOnlyCollection<ImageFormat> SupportedOutputFormats { get; }
 
         /// <summary>
         /// Encodes the image.

+ 3 - 3
MediaBrowser.Controller/Drawing/IImageProcessor.cs

@@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Drawing
         /// Gets the supported input formats.
         /// </summary>
         /// <value>The supported input formats.</value>
-        string[] SupportedInputFormats { get; }
+        IReadOnlyCollection<string> SupportedInputFormats { get; }
 
         /// <summary>
         /// Gets the image enhancers.
@@ -96,8 +96,8 @@ namespace MediaBrowser.Controller.Drawing
         /// <summary>
         /// Gets the supported image output formats.
         /// </summary>
-        /// <returns>ImageOutputFormat[].</returns>
-        ImageFormat[] GetSupportedImageOutputFormats();
+        /// <returns>IReadOnlyCollection{ImageOutput}.</returns>
+        IReadOnlyCollection<ImageFormat> GetSupportedImageOutputFormats();
 
         /// <summary>
         /// Creates the image collage.