diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index 7bfc60802..f68851e2e 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -324,9 +324,9 @@ - - - + + + @@ -344,7 +344,7 @@ - + diff --git a/Artemis/Artemis/ArtemisBootstrapper.cs b/Artemis/Artemis/ArtemisBootstrapper.cs index 7073c0662..30f3b2d3c 100644 --- a/Artemis/Artemis/ArtemisBootstrapper.cs +++ b/Artemis/Artemis/ArtemisBootstrapper.cs @@ -8,6 +8,7 @@ using Artemis.InjectionModules; using Artemis.Settings; using Artemis.Utilities; using Artemis.Utilities.Converters; +using Artemis.Utilities.DataReaders; using Artemis.ViewModels; using Caliburn.Micro; using Newtonsoft.Json; @@ -23,6 +24,8 @@ namespace Artemis { // Start logging before anything else Logging.SetupLogging(SettingsProvider.Load().LogLevel); + // Restore DDLs before interacting with any SDKs + DllManager.RestoreLogitechDll(); Initialize(); BindSpecialValues(); diff --git a/Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadsets.cs b/Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadset.cs similarity index 95% rename from Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadsets.cs rename to Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadset.cs index 7a727f095..f30936674 100644 --- a/Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadsets.cs +++ b/Artemis/Artemis/DeviceProviders/Corsair/CorsairHeadset.cs @@ -8,9 +8,9 @@ using Ninject.Extensions.Logging; namespace Artemis.DeviceProviders.Corsair { - internal class CorsairHeadsets : DeviceProvider + internal class CorsairHeadset : DeviceProvider { - public CorsairHeadsets(ILogger logger) + public CorsairHeadset(ILogger logger) { Logger = logger; Type = DeviceType.Headset; diff --git a/Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboards.cs b/Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboard.cs similarity index 96% rename from Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboards.cs rename to Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboard.cs index 530bc88b4..4494b793d 100644 --- a/Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboards.cs +++ b/Artemis/Artemis/DeviceProviders/Corsair/CorsairKeyboard.cs @@ -10,19 +10,18 @@ using CUE.NET; using CUE.NET.Brushes; using CUE.NET.Devices.Generic; using CUE.NET.Devices.Generic.Enums; -using CUE.NET.Devices.Keyboard; using CUE.NET.Helper; using Ninject.Extensions.Logging; using Point = System.Drawing.Point; namespace Artemis.DeviceProviders.Corsair { - public class CorsairKeyboards : KeyboardProvider + public class CorsairKeyboard : KeyboardProvider { - private CorsairKeyboard _keyboard; + private CUE.NET.Devices.Keyboard.CorsairKeyboard _keyboard; private ImageBrush _keyboardBrush; - public CorsairKeyboards(ILogger logger) + public CorsairKeyboard(ILogger logger) { Logger = logger; Name = "Corsair RGB Keyboards"; @@ -83,7 +82,6 @@ namespace Artemis.DeviceProviders.Corsair } Logger.Debug("Corsair SDK reported device as: {0}", _keyboard.DeviceInfo.Model); - _keyboard.Brush = _keyboardBrush ?? (_keyboardBrush = new ImageBrush()); } diff --git a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMice.cs b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMouse.cs similarity index 96% rename from Artemis/Artemis/DeviceProviders/Corsair/CorsairMice.cs rename to Artemis/Artemis/DeviceProviders/Corsair/CorsairMouse.cs index 06ba59735..e153be07e 100644 --- a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMice.cs +++ b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMouse.cs @@ -8,9 +8,9 @@ using Ninject.Extensions.Logging; namespace Artemis.DeviceProviders.Corsair { - internal class CorsairMice : DeviceProvider + internal class CorsairMouse : DeviceProvider { - public CorsairMice(ILogger logger) + public CorsairMouse(ILogger logger) { Logger = logger; Type = DeviceType.Mouse; diff --git a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemat.cs similarity index 94% rename from Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs rename to Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemat.cs index 1a24cdd83..badf7b4e4 100644 --- a/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemats.cs +++ b/Artemis/Artemis/DeviceProviders/Corsair/CorsairMousemat.cs @@ -4,14 +4,13 @@ using System.Linq; using System.Threading; using CUE.NET; using CUE.NET.Devices.Generic.Enums; -using CUE.NET.Devices.Mousemat.Enums; using Ninject.Extensions.Logging; namespace Artemis.DeviceProviders.Corsair { - internal class CorsairMousemats : DeviceProvider + internal class CorsairMousemat : DeviceProvider { - public CorsairMousemats(ILogger logger) + public CorsairMousemat(ILogger logger) { Logger = logger; Type = DeviceType.Mousemat; @@ -40,7 +39,7 @@ namespace Artemis.DeviceProviders.Corsair public override void UpdateDevice(Bitmap bitmap) { - if (!CanUse || bitmap == null) + if (!CanUse || (bitmap == null)) return; if (bitmap.Width != bitmap.Height) throw new ArgumentException("Bitmap must be a perfect square"); diff --git a/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs b/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs index 80491a1b1..d31ec3ee0 100644 --- a/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs +++ b/Artemis/Artemis/DeviceProviders/Logitech/LogitechKeyboard.cs @@ -1,6 +1,5 @@ using System.Drawing; using System.Threading; -using System.Windows; using Artemis.DeviceProviders.Logitech.Utilities; using Artemis.Utilities.DataReaders; using Microsoft.Win32; @@ -23,8 +22,17 @@ namespace Artemis.DeviceProviders.Logitech return false; } - if (DllManager.RestoreLogitechDll()) - RestoreDll(); + if (DllManager.DllPlaced()) + { + CantEnableText = + "Artemis couldn't enable your Logitech keyboard, because the required files are not in place.\n\n" + + "This happens when you run The Division or GTA and shut down Artemis before shutting down The Division\n" + + "Artemis tries to fix this automatically on startup but because the files may have been in use it failed.\n\n" + + "To try again, restart Artemis or check out the FAQ."; + + return false; + } + int majorNum = 0, minorNum = 0, buildNum = 0; LogitechGSDK.LogiLedInit(); @@ -42,15 +50,6 @@ namespace Artemis.DeviceProviders.Logitech return version >= 88115; } - private void RestoreDll() - { - MessageBox.Show( - "Artemis couldn't enable your Logitech keyboard, because the required files are not in place.\n\n" + - "This happens when you run The Division and shut down Artemis before shutting down The Division\n" + - "It can be fixed automatically by clicking OK, but to avoid this message in the future please\n" + - "shut down The Division before shutting down Artemis."); - } - public override void Enable() { // Initialize the SDK diff --git a/Artemis/Artemis/InjectionModules/DeviceModules.cs b/Artemis/Artemis/InjectionModules/DeviceModules.cs index bc49d77bc..46839dd26 100644 --- a/Artemis/Artemis/InjectionModules/DeviceModules.cs +++ b/Artemis/Artemis/InjectionModules/DeviceModules.cs @@ -12,7 +12,7 @@ namespace Artemis.InjectionModules public override void Load() { // Keyboards - Bind().To().InSingletonScope(); + Bind().To().InSingletonScope(); Bind().To().InSingletonScope(); Bind().To().InSingletonScope(); Bind().To().InSingletonScope(); @@ -20,13 +20,13 @@ namespace Artemis.InjectionModules Bind().To().InSingletonScope(); // Mice - Bind().To().InSingletonScope(); + Bind().To().InSingletonScope(); // Headsets - Bind().To().InSingletonScope(); + Bind().To().InSingletonScope(); // Mousemats - Bind().To().InSingletonScope(); + Bind().To().InSingletonScope(); // Other Bind().To().InSingletonScope(); diff --git a/Artemis/Artemis/Profiles/Layers/Models/LayerModel.cs b/Artemis/Artemis/Profiles/Layers/Models/LayerModel.cs index 9ee65ab2f..53cee288d 100644 --- a/Artemis/Artemis/Profiles/Layers/Models/LayerModel.cs +++ b/Artemis/Artemis/Profiles/Layers/Models/LayerModel.cs @@ -28,6 +28,7 @@ namespace Artemis.Profiles.Layers.Models [JsonIgnore] public ImageSource LayerImage => LayerType.DrawThumbnail(this); + [JsonIgnore] public TweenModel TweenModel { get; set; } @@ -176,7 +177,13 @@ namespace Artemis.Profiles.Layers.Models Width = 1, X = 0, Y = 0, - Opacity = 1 + Opacity = 1, + HeightEaseTime = 0, + HeightEase = "Linear", + WidthEaseTime = 0, + WidthEase = "Linear", + OpacityEaseTime = 0, + OpacityEase = "Linear" } }; } @@ -236,7 +243,7 @@ namespace Artemis.Profiles.Layers.Models if (height < 0) height = 0; - return new Rect(X * scale, Y * scale, width * scale, height * scale); + return new Rect(X*scale, Y*scale, width*scale, height*scale); } /// diff --git a/Artemis/Artemis/Properties/AssemblyInfo.cs b/Artemis/Artemis/Properties/AssemblyInfo.cs index e104e5cf9..b8b3bc15f 100644 --- a/Artemis/Artemis/Properties/AssemblyInfo.cs +++ b/Artemis/Artemis/Properties/AssemblyInfo.cs @@ -53,7 +53,7 @@ using System.Windows; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.5.0.4")] -[assembly: AssemblyFileVersion("1.5.0.4")] +[assembly: AssemblyVersion("1.6.0.0")] +[assembly: AssemblyFileVersion("1.6.0.0")] [assembly: InternalsVisibleTo("Artemis.Explorables")] diff --git a/Artemis/Artemis/Resources/Keyboards/default-profiles.zip b/Artemis/Artemis/Resources/Keyboards/default-profiles.zip index a06bf1330..c31d8020a 100644 Binary files a/Artemis/Artemis/Resources/Keyboards/default-profiles.zip and b/Artemis/Artemis/Resources/Keyboards/default-profiles.zip differ diff --git a/Artemis/Artemis/Utilities/DataReaders/DllManager.cs b/Artemis/Artemis/Utilities/DataReaders/DllManager.cs index bc64062a4..e803449c6 100644 --- a/Artemis/Artemis/Utilities/DataReaders/DllManager.cs +++ b/Artemis/Artemis/Utilities/DataReaders/DllManager.cs @@ -33,7 +33,7 @@ namespace Artemis.Utilities.DataReaders public static bool RestoreLogitechDll() { - if (!File.Exists(LogitechPath + @"\LogitechLed.dll") || !File.Exists(LogitechPath + @"\artemis.txt")) + if (!DllPlaced()) return false; try