1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Added WindowsProfile migration to GeneralProfile

Added default profiles for OverlayProfile
This commit is contained in:
SpoinkyNL 2017-01-24 17:11:39 +01:00
parent f090246c2b
commit e8467ddf58
9 changed files with 63 additions and 19 deletions

View File

@ -247,6 +247,10 @@
<HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\NuGet.Squirrel.dll</HintPath> <HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\NuGet.Squirrel.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Open.WinKeyboardHook, Version=1.0.11.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Open.WinKeyboardHook.1.0.11\lib\net45\Open.WinKeyboardHook.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Process.NET, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Process.NET, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Process.NET.1.0.5\lib\Process.NET.dll</HintPath> <HintPath>..\packages\Process.NET.1.0.5\lib\Process.NET.dll</HintPath>
<Private>True</Private> <Private>True</Private>
@ -298,10 +302,6 @@
<HintPath>..\packages\WpfExceptionViewer.1.0.0.0\lib\VioletTape.WpfExceptionViewer.dll</HintPath> <HintPath>..\packages\WpfExceptionViewer.1.0.0.0\lib\VioletTape.WpfExceptionViewer.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="VirtualInput, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\VirtualInput.1.0.1\lib\net20\VirtualInput.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
@ -354,6 +354,7 @@
<Compile Include="DeviceProviders\Logitech\Utilities\OrionUtilities.cs" /> <Compile Include="DeviceProviders\Logitech\Utilities\OrionUtilities.cs" />
<Compile Include="DeviceProviders\Razer\BlackWidow.cs" /> <Compile Include="DeviceProviders\Razer\BlackWidow.cs" />
<Compile Include="DeviceProviders\Razer\Utilities\RazerUtilities.cs" /> <Compile Include="DeviceProviders\Razer\Utilities\RazerUtilities.cs" />
<Compile Include="Managers\MigrationManager.cs" />
<Compile Include="Managers\ModuleManager.cs" /> <Compile Include="Managers\ModuleManager.cs" />
<Compile Include="Managers\DeviceManager.cs" /> <Compile Include="Managers\DeviceManager.cs" />
<Compile Include="Managers\LoopManager.cs" /> <Compile Include="Managers\LoopManager.cs" />

View File

@ -21,7 +21,7 @@ namespace Artemis.DAL
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static readonly string ProfileFolder = public static readonly string ProfileFolder =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Artemis\profiles"; Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Artemis\profiles";
private static bool _installedDefaults; private static bool _installedDefaults;
@ -33,7 +33,7 @@ namespace Artemis.DAL
CheckProfiles(); CheckProfiles();
InstallDefaults(); InstallDefaults();
} }
public static List<string> GetProfileNames(KeyboardProvider keyboard, ModuleModel module) public static List<string> GetProfileNames(KeyboardProvider keyboard, ModuleModel module)
{ {
if (keyboard == null || module == null) if (keyboard == null || module == null)
@ -177,7 +177,7 @@ namespace Artemis.DAL
} }
} }
private static List<ProfileModel> ReadProfiles(string subDirectory) public static List<ProfileModel> ReadProfiles(string subDirectory)
{ {
var profiles = new List<ProfileModel>(); var profiles = new List<ProfileModel>();
var directory = ProfileFolder + "/" + subDirectory; var directory = ProfileFolder + "/" + subDirectory;

View File

@ -14,6 +14,7 @@ namespace Artemis.InjectionModules
Bind<PreviewManager>().ToSelf().InSingletonScope(); Bind<PreviewManager>().ToSelf().InSingletonScope();
Bind<LuaManager>().ToSelf().InSingletonScope(); Bind<LuaManager>().ToSelf().InSingletonScope();
Bind<AudioCaptureManager>().ToSelf().InSingletonScope(); Bind<AudioCaptureManager>().ToSelf().InSingletonScope();
Bind<MigrationManager>().ToSelf().InSingletonScope();
} }
} }
} }

View File

@ -19,12 +19,14 @@ namespace Artemis.Managers
/// </summary> /// </summary>
public class MainManager : IDisposable public class MainManager : IDisposable
{ {
private readonly MigrationManager _migrationManager;
private readonly Timer _processTimer; private readonly Timer _processTimer;
public MainManager(ILogger logger, LoopManager loopManager, DeviceManager deviceManager, public MainManager(ILogger logger, LoopManager loopManager, DeviceManager deviceManager,
ModuleManager moduleManager, PreviewManager previewManager, PipeServer pipeServer, ModuleManager moduleManager, PreviewManager previewManager, MigrationManager migrationManager,
GameStateWebServer gameStateWebServer) PipeServer pipeServer, GameStateWebServer gameStateWebServer)
{ {
_migrationManager = migrationManager;
Logger = logger; Logger = logger;
LoopManager = loopManager; LoopManager = loopManager;
DeviceManager = deviceManager; DeviceManager = deviceManager;
@ -111,6 +113,7 @@ namespace Artemis.Managers
ProgramEnabled = true; ProgramEnabled = true;
await LoopManager.StartAsync(); await LoopManager.StartAsync();
_migrationManager.MigrateProfiles();
RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled)); RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled));
} }
@ -121,10 +124,8 @@ namespace Artemis.Managers
{ {
Logger.Debug("Disabling program"); Logger.Debug("Disabling program");
foreach (var overlayModule in ModuleManager.OverlayModules) foreach (var overlayModule in ModuleManager.OverlayModules)
{
if (overlayModule.Settings.IsEnabled) if (overlayModule.Settings.IsEnabled)
overlayModule.Dispose(); overlayModule.Dispose();
}
LoopManager.Stop(); LoopManager.Stop();
ProgramEnabled = false; ProgramEnabled = false;
RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled)); RaiseEnabledChangedEvent(new EnabledChangedEventArgs(ProgramEnabled));

View File

@ -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;
}
/// <summary>
/// Migrates old versions of profiles to new versions
/// </summary>
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);
}
}
}
}

View File

@ -53,7 +53,7 @@ using System.Windows;
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.7.1.0")] [assembly: AssemblyVersion("1.8.0.0")]
[assembly: AssemblyFileVersion("1.7.1.0")] [assembly: AssemblyFileVersion("1.8.0.0")]
[assembly: InternalsVisibleTo("Artemis.Explorables")] [assembly: InternalsVisibleTo("Artemis.Explorables")]

View File

@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using VirtualInput; using Open.WinKeyboardHook;
namespace Artemis.Utilities.Keyboard namespace Artemis.Utilities.Keyboard
{ {
@ -10,13 +10,14 @@ namespace Artemis.Utilities.Keyboard
static KeyboardHook() static KeyboardHook()
{ {
VirtualKeyboard.StartInterceptor(); var interceptor = new KeyboardInterceptor();
VirtualKeyboard.KeyDown += VirtualKeyboardOnKeyDown; 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; public static event KeyDownCallbackHandler KeyDownCallback;

View File

@ -23,12 +23,12 @@
<package id="Ninject.Extensions.Logging.nlog4" version="3.2.3.0" targetFramework="net452" /> <package id="Ninject.Extensions.Logging.nlog4" version="3.2.3.0" targetFramework="net452" />
<package id="NLog" version="4.4.1" targetFramework="net461" /> <package id="NLog" version="4.4.1" targetFramework="net461" />
<package id="NLog.Schema" version="4.4.1" targetFramework="net461" /> <package id="NLog.Schema" version="4.4.1" targetFramework="net461" />
<package id="Open.WinKeyboardHook" version="1.0.11" targetFramework="net461" />
<package id="Process.NET" version="1.0.5" targetFramework="net461" /> <package id="Process.NET" version="1.0.5" targetFramework="net461" />
<package id="SharpDX" version="3.1.1" targetFramework="net461" /> <package id="SharpDX" version="3.1.1" targetFramework="net461" />
<package id="SharpDX.Direct3D9" version="3.1.1" targetFramework="net461" /> <package id="SharpDX.Direct3D9" version="3.1.1" targetFramework="net461" />
<package id="Splat" version="2.0.0" targetFramework="net461" /> <package id="Splat" version="2.0.0" targetFramework="net461" />
<package id="SpotifyAPI-NET" version="2.12.0" targetFramework="net461" /> <package id="SpotifyAPI-NET" version="2.12.0" targetFramework="net461" />
<package id="squirrel.windows" version="1.4.4" targetFramework="net461" /> <package id="squirrel.windows" version="1.4.4" targetFramework="net461" />
<package id="VirtualInput" version="1.0.1" targetFramework="net452" />
<package id="WpfExceptionViewer" version="1.0.0.0" targetFramework="net452" /> <package id="WpfExceptionViewer" version="1.0.0.0" targetFramework="net452" />
</packages> </packages>