diff --git a/Emby.Common.Implementations/BaseApplicationHost.cs b/Emby.Common.Implementations/BaseApplicationHost.cs index 9571ea3889..f0309511e0 100644 --- a/Emby.Common.Implementations/BaseApplicationHost.cs +++ b/Emby.Common.Implementations/BaseApplicationHost.cs @@ -152,8 +152,6 @@ namespace Emby.Common.Implementations protected IIsoManager IsoManager { get; private set; } - protected ISystemEvents SystemEvents { get; private set; } - protected IProcessFactory ProcessFactory { get; private set; } protected ITimerFactory TimerFactory { get; private set; } protected ISocketFactory SocketFactory { get; private set; } @@ -193,22 +191,29 @@ namespace Emby.Common.Implementations get { return EnvironmentInfo.OperatingSystemName; } } - public IMemoryStreamFactory MemoryStreamProvider { get; set; } - /// /// The container /// protected readonly SimpleInjector.Container Container = new SimpleInjector.Container(); + protected ISystemEvents SystemEvents { get; private set; } + protected IMemoryStreamFactory MemoryStreamFactory { get; private set; } + /// /// Initializes a new instance of the class. /// protected BaseApplicationHost(TApplicationPathsType applicationPaths, ILogManager logManager, IFileSystem fileSystem, - IEnvironmentInfo environmentInfo) + IEnvironmentInfo environmentInfo, + ISystemEvents systemEvents, + IMemoryStreamFactory memoryStreamFactory, + INetworkManager networkManager) { + NetworkManager = networkManager; EnvironmentInfo = environmentInfo; + SystemEvents = systemEvents; + MemoryStreamFactory = memoryStreamFactory; // hack alert, until common can target .net core BaseExtensions.CryptographyProvider = CryptographyProvider; @@ -236,9 +241,6 @@ namespace Emby.Common.Implementations JsonSerializer = CreateJsonSerializer(); - MemoryStreamProvider = CreateMemoryStreamProvider(); - SystemEvents = CreateSystemEvents(); - OnLoggerLoaded(true); LogManager.LoggerLoaded += (s, e) => OnLoggerLoaded(false); @@ -270,9 +272,6 @@ namespace Emby.Common.Implementations progress.Report(100); } - protected abstract IMemoryStreamFactory CreateMemoryStreamProvider(); - protected abstract ISystemEvents CreateSystemEvents(); - protected virtual void OnLoggerLoaded(bool isFirstLoad) { Logger.Info("Application version: {0}", ApplicationVersion); @@ -524,7 +523,7 @@ return null; RegisterSingleInstance(JsonSerializer); RegisterSingleInstance(XmlSerializer); - RegisterSingleInstance(MemoryStreamProvider); + RegisterSingleInstance(MemoryStreamFactory); RegisterSingleInstance(SystemEvents); RegisterSingleInstance(LogManager); @@ -535,10 +534,9 @@ return null; RegisterSingleInstance(FileSystemManager); - HttpClient = new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, MemoryStreamProvider); + HttpClient = new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, MemoryStreamFactory); RegisterSingleInstance(HttpClient); - NetworkManager = CreateNetworkManager(LogManager.GetLogger("NetworkManager")); RegisterSingleInstance(NetworkManager); IsoManager = new IsoManager(); @@ -591,8 +589,6 @@ return null; } } - protected abstract INetworkManager CreateNetworkManager(ILogger logger); - /// /// Creates an instance of type and resolves all constructor dependancies /// diff --git a/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj b/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj new file mode 100644 index 0000000000..98e99c92b1 --- /dev/null +++ b/Emby.Drawing.ImageMagick/Emby.Drawing.ImageMagick.csproj @@ -0,0 +1,83 @@ + + + + + Debug + AnyCPU + {6CFEE013-6E7C-432B-AC37-CABF0880C69A} + Library + Properties + Emby.Drawing.ImageMagick + Emby.Drawing.ImageMagick + v4.5.2 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\ImageMagickSharp.1.0.0.18\lib\net45\ImageMagickSharp.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + + + {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} + MediaBrowser.Controller + + + {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} + MediaBrowser.Model + + + + + \ No newline at end of file diff --git a/Emby.Drawing.ImageMagick/ImageHelpers.cs b/Emby.Drawing.ImageMagick/ImageHelpers.cs new file mode 100644 index 0000000000..c623c21aa2 --- /dev/null +++ b/Emby.Drawing.ImageMagick/ImageHelpers.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Emby.Drawing.ImageMagick +{ + internal static class ImageHelpers + { + internal static List ProjectPaths(List paths, int count) + { + if (count <= 0) + { + throw new ArgumentOutOfRangeException("count"); + } + if (paths.Count == 0) + { + throw new ArgumentOutOfRangeException("paths"); + } + + var list = new List(); + + AddToList(list, paths, count); + + return list.Take(count).ToList(); + } + + private static void AddToList(List list, List paths, int count) + { + while (list.Count < count) + { + foreach (var path in paths) + { + list.Add(path); + + if (list.Count >= count) + { + return; + } + } + } + } + } +} diff --git a/Emby.Drawing/ImageMagick/ImageMagickEncoder.cs b/Emby.Drawing.ImageMagick/ImageMagickEncoder.cs similarity index 100% rename from Emby.Drawing/ImageMagick/ImageMagickEncoder.cs rename to Emby.Drawing.ImageMagick/ImageMagickEncoder.cs diff --git a/Emby.Drawing/ImageMagick/PercentPlayedDrawer.cs b/Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs similarity index 100% rename from Emby.Drawing/ImageMagick/PercentPlayedDrawer.cs rename to Emby.Drawing.ImageMagick/PercentPlayedDrawer.cs diff --git a/Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs b/Emby.Drawing.ImageMagick/PlayedIndicatorDrawer.cs similarity index 100% rename from Emby.Drawing/ImageMagick/PlayedIndicatorDrawer.cs rename to Emby.Drawing.ImageMagick/PlayedIndicatorDrawer.cs diff --git a/Emby.Drawing.ImageMagick/Properties/AssemblyInfo.cs b/Emby.Drawing.ImageMagick/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..1089607d67 --- /dev/null +++ b/Emby.Drawing.ImageMagick/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Emby.Drawing.ImageMagick")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Emby.Drawing.ImageMagick")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6cfee013-6e7c-432b-ac37-cabf0880c69a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Emby.Drawing/ImageMagick/StripCollageBuilder.cs b/Emby.Drawing.ImageMagick/StripCollageBuilder.cs similarity index 100% rename from Emby.Drawing/ImageMagick/StripCollageBuilder.cs rename to Emby.Drawing.ImageMagick/StripCollageBuilder.cs diff --git a/Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs b/Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs similarity index 100% rename from Emby.Drawing/ImageMagick/UnplayedCountIndicator.cs rename to Emby.Drawing.ImageMagick/UnplayedCountIndicator.cs diff --git a/Emby.Drawing/packages.config b/Emby.Drawing.ImageMagick/packages.config similarity index 88% rename from Emby.Drawing/packages.config rename to Emby.Drawing.ImageMagick/packages.config index be2fb41879..619310d28e 100644 --- a/Emby.Drawing/packages.config +++ b/Emby.Drawing.ImageMagick/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Emby.Drawing/GDI/DynamicImageHelpers.cs b/Emby.Drawing.Net/DynamicImageHelpers.cs similarity index 99% rename from Emby.Drawing/GDI/DynamicImageHelpers.cs rename to Emby.Drawing.Net/DynamicImageHelpers.cs index 9cbd6cbe3a..1910f7840d 100644 --- a/Emby.Drawing/GDI/DynamicImageHelpers.cs +++ b/Emby.Drawing.Net/DynamicImageHelpers.cs @@ -7,7 +7,7 @@ using MediaBrowser.Common.IO; using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public static class DynamicImageHelpers { diff --git a/Emby.Drawing.Net/Emby.Drawing.Net.csproj b/Emby.Drawing.Net/Emby.Drawing.Net.csproj new file mode 100644 index 0000000000..16e72a085b --- /dev/null +++ b/Emby.Drawing.Net/Emby.Drawing.Net.csproj @@ -0,0 +1,78 @@ + + + + + Debug + AnyCPU + {C97A239E-A96C-4D64-A844-CCF8CC30AECB} + Library + Properties + Emby.Drawing.Net + Emby.Drawing.Net + v4.5.2 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + {9142eefa-7570-41e1-bfcc-468bb571af2f} + MediaBrowser.Common + + + {17e1f4e6-8abd-4fe5-9ecf-43d4b6087ba2} + MediaBrowser.Controller + + + {7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b} + MediaBrowser.Model + + + + + + + + \ No newline at end of file diff --git a/Emby.Drawing/GDI/GDIImageEncoder.cs b/Emby.Drawing.Net/GDIImageEncoder.cs similarity index 99% rename from Emby.Drawing/GDI/GDIImageEncoder.cs rename to Emby.Drawing.Net/GDIImageEncoder.cs index 2fd2cac7e8..831a579792 100644 --- a/Emby.Drawing/GDI/GDIImageEncoder.cs +++ b/Emby.Drawing.Net/GDIImageEncoder.cs @@ -12,7 +12,7 @@ using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; using ImageFormat = MediaBrowser.Model.Drawing.ImageFormat; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public class GDIImageEncoder : IImageEncoder { diff --git a/Emby.Drawing/GDI/ImageExtensions.cs b/Emby.Drawing.Net/ImageExtensions.cs similarity index 99% rename from Emby.Drawing/GDI/ImageExtensions.cs rename to Emby.Drawing.Net/ImageExtensions.cs index 6af5a8688f..dec2613d0f 100644 --- a/Emby.Drawing/GDI/ImageExtensions.cs +++ b/Emby.Drawing.Net/ImageExtensions.cs @@ -4,7 +4,7 @@ using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public static class ImageExtensions { diff --git a/Emby.Drawing/ImageHelpers.cs b/Emby.Drawing.Net/ImageHelpers.cs similarity index 97% rename from Emby.Drawing/ImageHelpers.cs rename to Emby.Drawing.Net/ImageHelpers.cs index 90bde8b3bd..1afc47cd03 100644 --- a/Emby.Drawing/ImageHelpers.cs +++ b/Emby.Drawing.Net/ImageHelpers.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Emby.Drawing +namespace Emby.Drawing.Net { internal static class ImageHelpers { diff --git a/Emby.Drawing/GDI/PercentPlayedDrawer.cs b/Emby.Drawing.Net/PercentPlayedDrawer.cs similarity index 97% rename from Emby.Drawing/GDI/PercentPlayedDrawer.cs rename to Emby.Drawing.Net/PercentPlayedDrawer.cs index c7afda60e4..fac15ba47a 100644 --- a/Emby.Drawing/GDI/PercentPlayedDrawer.cs +++ b/Emby.Drawing.Net/PercentPlayedDrawer.cs @@ -1,7 +1,7 @@ using System; using System.Drawing; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public class PercentPlayedDrawer { diff --git a/Emby.Drawing/GDI/PlayedIndicatorDrawer.cs b/Emby.Drawing.Net/PlayedIndicatorDrawer.cs similarity index 97% rename from Emby.Drawing/GDI/PlayedIndicatorDrawer.cs rename to Emby.Drawing.Net/PlayedIndicatorDrawer.cs index 4428e4cbac..53683e6f45 100644 --- a/Emby.Drawing/GDI/PlayedIndicatorDrawer.cs +++ b/Emby.Drawing.Net/PlayedIndicatorDrawer.cs @@ -1,6 +1,6 @@ using System.Drawing; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public class PlayedIndicatorDrawer { diff --git a/Emby.Drawing.Net/Properties/AssemblyInfo.cs b/Emby.Drawing.Net/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..321c3a297c --- /dev/null +++ b/Emby.Drawing.Net/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Emby.Drawing.Net")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Emby.Drawing.Net")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("c97a239e-a96c-4d64-a844-ccf8cc30aecb")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Emby.Drawing/GDI/UnplayedCountIndicator.cs b/Emby.Drawing.Net/UnplayedCountIndicator.cs similarity index 98% rename from Emby.Drawing/GDI/UnplayedCountIndicator.cs rename to Emby.Drawing.Net/UnplayedCountIndicator.cs index 6420abb27f..a38abeb324 100644 --- a/Emby.Drawing/GDI/UnplayedCountIndicator.cs +++ b/Emby.Drawing.Net/UnplayedCountIndicator.cs @@ -1,6 +1,6 @@ using System.Drawing; -namespace Emby.Drawing.GDI +namespace Emby.Drawing.Net { public class UnplayedCountIndicator { diff --git a/Emby.Drawing/GDI/empty.png b/Emby.Drawing.Net/empty.png similarity index 100% rename from Emby.Drawing/GDI/empty.png rename to Emby.Drawing.Net/empty.png diff --git a/Emby.Drawing/Common/ImageHeader.cs b/Emby.Drawing/Common/ImageHeader.cs index 45a8f0d474..c385779a1e 100644 --- a/Emby.Drawing/Common/ImageHeader.cs +++ b/Emby.Drawing/Common/ImageHeader.cs @@ -48,7 +48,7 @@ namespace Emby.Drawing.Common /// The image was of an unrecognised format. public static ImageSize GetDimensions(string path, ILogger logger, IFileSystem fileSystem) { - using (var fs = File.OpenRead(path)) + using (var fs = fileSystem.OpenRead(path)) { using (var binaryReader = new BinaryReader(fs)) { diff --git a/Emby.Drawing/Emby.Drawing.csproj b/Emby.Drawing/Emby.Drawing.csproj index a883d06495..90418f6317 100644 --- a/Emby.Drawing/Emby.Drawing.csproj +++ b/Emby.Drawing/Emby.Drawing.csproj @@ -9,10 +9,11 @@ Properties Emby.Drawing Emby.Drawing - v4.6 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Profile7 + v4.5 512 ..\ - true @@ -32,18 +33,6 @@ 4 - - False - ..\packages\ImageMagickSharp.1.0.0.18\lib\net45\ImageMagickSharp.dll - - - - - - - - - ..\ThirdParty\taglib\TagLib.Portable.dll @@ -53,25 +42,9 @@ Properties\SharedVersion.cs - - - - - - - - - - - - - - - - @@ -87,13 +60,8 @@ MediaBrowser.Model - - - - - - - + +