From e8467ddf589e1bb6231a742ff65ebf830b9c7bec Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Tue, 24 Jan 2017 17:11:39 +0100 Subject: [PATCH] Added WindowsProfile migration to GeneralProfile Added default profiles for OverlayProfile --- Artemis/Artemis/Artemis.csproj | 9 ++-- Artemis/Artemis/DAL/ProfileProvider.cs | 6 +-- .../InjectionModules/ManagerModules.cs | 1 + Artemis/Artemis/Managers/MainManager.cs | 9 ++-- Artemis/Artemis/Managers/MigrationManager.cs | 40 ++++++++++++++++++ Artemis/Artemis/Properties/AssemblyInfo.cs | 4 +- .../Resources/Keyboards/default-profiles.zip | Bin 434888 -> 448148 bytes .../Utilities/Keyboard/KeyboardHook.cs | 11 ++--- Artemis/Artemis/packages.config | 2 +- 9 files changed, 63 insertions(+), 19 deletions(-) create mode 100644 Artemis/Artemis/Managers/MigrationManager.cs diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index 4642e480e..90b14a29b 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -247,6 +247,10 @@ ..\packages\squirrel.windows.1.4.4\lib\Net45\NuGet.Squirrel.dll True + + ..\packages\Open.WinKeyboardHook.1.0.11\lib\net45\Open.WinKeyboardHook.dll + True + ..\packages\Process.NET.1.0.5\lib\Process.NET.dll True @@ -298,10 +302,6 @@ ..\packages\WpfExceptionViewer.1.0.0.0\lib\VioletTape.WpfExceptionViewer.dll True - - ..\packages\VirtualInput.1.0.1\lib\net20\VirtualInput.dll - True - @@ -354,6 +354,7 @@ + diff --git a/Artemis/Artemis/DAL/ProfileProvider.cs b/Artemis/Artemis/DAL/ProfileProvider.cs index 2721ae7d6..b1fc66710 100644 --- a/Artemis/Artemis/DAL/ProfileProvider.cs +++ b/Artemis/Artemis/DAL/ProfileProvider.cs @@ -21,7 +21,7 @@ namespace Artemis.DAL { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - private static readonly string ProfileFolder = + public static readonly string ProfileFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Artemis\profiles"; private static bool _installedDefaults; @@ -33,7 +33,7 @@ namespace Artemis.DAL CheckProfiles(); InstallDefaults(); } - + public static List GetProfileNames(KeyboardProvider keyboard, ModuleModel module) { if (keyboard == null || module == null) @@ -177,7 +177,7 @@ namespace Artemis.DAL } } - private static List ReadProfiles(string subDirectory) + public static List ReadProfiles(string subDirectory) { var profiles = new List(); var directory = ProfileFolder + "/" + subDirectory; diff --git a/Artemis/Artemis/InjectionModules/ManagerModules.cs b/Artemis/Artemis/InjectionModules/ManagerModules.cs index 6f6b1c1b3..c1e788ba7 100644 --- a/Artemis/Artemis/InjectionModules/ManagerModules.cs +++ b/Artemis/Artemis/InjectionModules/ManagerModules.cs @@ -14,6 +14,7 @@ namespace Artemis.InjectionModules Bind().ToSelf().InSingletonScope(); Bind().ToSelf().InSingletonScope(); Bind().ToSelf().InSingletonScope(); + Bind().ToSelf().InSingletonScope(); } } } \ No newline at end of file diff --git a/Artemis/Artemis/Managers/MainManager.cs b/Artemis/Artemis/Managers/MainManager.cs index c266bb4d8..dba3b4657 100644 --- a/Artemis/Artemis/Managers/MainManager.cs +++ b/Artemis/Artemis/Managers/MainManager.cs @@ -19,12 +19,14 @@ namespace Artemis.Managers /// public class MainManager : IDisposable { + private readonly MigrationManager _migrationManager; private readonly Timer _processTimer; public MainManager(ILogger logger, LoopManager loopManager, DeviceManager deviceManager, - ModuleManager moduleManager, PreviewManager previewManager, PipeServer pipeServer, - GameStateWebServer gameStateWebServer) + ModuleManager moduleManager, PreviewManager previewManager, MigrationManager migrationManager, + PipeServer pipeServer, GameStateWebServer gameStateWebServer) { + _migrationManager = migrationManager; Logger = logger; LoopManager = loopManager; DeviceManager = deviceManager; @@ -111,6 +113,7 @@ namespace Artemis.Managers ProgramEnabled = true; await LoopManager.StartAsync(); + _migrationManager.MigrateProfiles(); RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled)); } @@ -121,10 +124,8 @@ namespace Artemis.Managers { Logger.Debug("Disabling program"); foreach (var overlayModule in ModuleManager.OverlayModules) - { if (overlayModule.Settings.IsEnabled) overlayModule.Dispose(); - } LoopManager.Stop(); ProgramEnabled = false; RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled)); diff --git a/Artemis/Artemis/Managers/MigrationManager.cs b/Artemis/Artemis/Managers/MigrationManager.cs new file mode 100644 index 000000000..b314b6952 --- /dev/null +++ b/Artemis/Artemis/Managers/MigrationManager.cs @@ -0,0 +1,40 @@ +using System.IO; +using Artemis.DAL; + +namespace Artemis.Managers +{ + public class MigrationManager + { + private readonly DeviceManager _deviceManager; + + public MigrationManager(DeviceManager deviceManager) + { + _deviceManager = deviceManager; + } + + /// + /// Migrates old versions of profiles to new versions + /// + public void MigrateProfiles() + { + // 1.8.0.0 - Rename WindowsProfile to GeneralProfile + foreach (var keyboardProvider in _deviceManager.KeyboardProviders) + { + var folder = ProfileProvider.ProfileFolder + "/" + keyboardProvider.Slug + "/WindowsProfile"; + if (!Directory.Exists(folder)) + continue; + + // Get all the profiles + var profiles = ProfileProvider.ReadProfiles(keyboardProvider.Slug + "/WindowsProfile"); + foreach (var profile in profiles) + { + // Change their GameName and save, effectively moving them to the new folder + profile.GameName = "GeneralProfile"; + ProfileProvider.AddOrUpdate(profile); + } + // Delete the old profiles + Directory.Delete(folder, true); + } + } + } +} \ No newline at end of file diff --git a/Artemis/Artemis/Properties/AssemblyInfo.cs b/Artemis/Artemis/Properties/AssemblyInfo.cs index 7205a0d2c..b89de5c2b 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.7.1.0")] -[assembly: AssemblyFileVersion("1.7.1.0")] +[assembly: AssemblyVersion("1.8.0.0")] +[assembly: AssemblyFileVersion("1.8.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 a675632a6fb9d7f03d39c03073bb0a56ddaff366..9520a5698ed6ae6c72bd0ecbc286e4d7ed69978f 100644 GIT binary patch delta 12494 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 diff --git a/Artemis/Artemis/Utilities/Keyboard/KeyboardHook.cs b/Artemis/Artemis/Utilities/Keyboard/KeyboardHook.cs index 326552cae..13555234f 100644 --- a/Artemis/Artemis/Utilities/Keyboard/KeyboardHook.cs +++ b/Artemis/Artemis/Utilities/Keyboard/KeyboardHook.cs @@ -1,6 +1,6 @@ using System.Threading.Tasks; using System.Windows.Forms; -using VirtualInput; +using Open.WinKeyboardHook; namespace Artemis.Utilities.Keyboard { @@ -10,13 +10,14 @@ namespace Artemis.Utilities.Keyboard static KeyboardHook() { - VirtualKeyboard.StartInterceptor(); - VirtualKeyboard.KeyDown += VirtualKeyboardOnKeyDown; + var interceptor = new KeyboardInterceptor(); + interceptor.KeyDown += VirtualKeyboardOnKeyDown; + interceptor.StartCapturing(); } - private static void VirtualKeyboardOnKeyDown(object sender, KeyEventArgs keyEventArgs) + private static async void VirtualKeyboardOnKeyDown(object sender, KeyEventArgs keyEventArgs) { - Task.Factory.StartNew(() => { KeyDownCallback?.Invoke(keyEventArgs); }); + await Task.Factory.StartNew(() => { KeyDownCallback?.Invoke(keyEventArgs); }); } public static event KeyDownCallbackHandler KeyDownCallback; diff --git a/Artemis/Artemis/packages.config b/Artemis/Artemis/packages.config index 55b725806..5afbe906d 100644 --- a/Artemis/Artemis/packages.config +++ b/Artemis/Artemis/packages.config @@ -23,12 +23,12 @@ + - \ No newline at end of file