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:
parent
f090246c2b
commit
e8467ddf58
@ -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" />
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -14,6 +14,7 @@ namespace Artemis.InjectionModules
|
||||
Bind<PreviewManager>().ToSelf().InSingletonScope();
|
||||
Bind<LuaManager>().ToSelf().InSingletonScope();
|
||||
Bind<AudioCaptureManager>().ToSelf().InSingletonScope();
|
||||
Bind<MigrationManager>().ToSelf().InSingletonScope();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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));
|
||||
|
||||
40
Artemis/Artemis/Managers/MigrationManager.cs
Normal file
40
Artemis/Artemis/Managers/MigrationManager.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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")]
|
||||
|
||||
|
||||
Binary file not shown.
@ -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;
|
||||
|
||||
@ -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>
|
||||
Loading…
x
Reference in New Issue
Block a user