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
-
-
-
-
-
-
-
+
+