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>
<Private>True</Private>
</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">
<HintPath>..\packages\Process.NET.1.0.5\lib\Process.NET.dll</HintPath>
<Private>True</Private>
@ -298,10 +302,6 @@
<HintPath>..\packages\WpfExceptionViewer.1.0.0.0\lib\VioletTape.WpfExceptionViewer.dll</HintPath>
<Private>True</Private>
</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="PresentationCore" />
<Reference Include="PresentationFramework" />
@ -354,6 +354,7 @@
<Compile Include="DeviceProviders\Logitech\Utilities\OrionUtilities.cs" />
<Compile Include="DeviceProviders\Razer\BlackWidow.cs" />
<Compile Include="DeviceProviders\Razer\Utilities\RazerUtilities.cs" />
<Compile Include="Managers\MigrationManager.cs" />
<Compile Include="Managers\ModuleManager.cs" />
<Compile Include="Managers\DeviceManager.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 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<string> GetProfileNames(KeyboardProvider keyboard, ModuleModel module)
{
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 directory = ProfileFolder + "/" + subDirectory;

View File

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

View File

@ -19,12 +19,14 @@ namespace Artemis.Managers
/// </summary>
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));

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:
// [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")]

View File

@ -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;

View File

@ -23,12 +23,12 @@
<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.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="SharpDX" 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="SpotifyAPI-NET" version="2.12.0" 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" />
</packages>