diff --git a/src/Artemis.Core/Models/Surface/Device.cs b/src/Artemis.Core/Models/Surface/Device.cs index 4ca88f17b..85c287cd1 100644 --- a/src/Artemis.Core/Models/Surface/Device.cs +++ b/src/Artemis.Core/Models/Surface/Device.cs @@ -99,9 +99,12 @@ namespace Artemis.Core.Models.Surface (int) Math.Round(RgbDevice.Size.Height * Surface.Scale, MidpointRounding.AwayFromZero) ); + if (!Leds.Any()) + return; + foreach (var led in Leds) led.CalculateRenderRectangle(); - + var path = new GraphicsPath(); path.AddRectangles(Leds.Select(l => l.AbsoluteRenderRectangle).ToArray()); RenderPath = path; diff --git a/src/Artemis.Core/Plugins/Abstract/Device.cs b/src/Artemis.Core/Plugins/Abstract/Device.cs index e48bda8b7..0f2f02f59 100644 --- a/src/Artemis.Core/Plugins/Abstract/Device.cs +++ b/src/Artemis.Core/Plugins/Abstract/Device.cs @@ -1,4 +1,6 @@ using System; +using System.IO; +using Artemis.Core.Extensions; using Artemis.Core.Plugins.Models; using RGB.NET.Core; @@ -16,5 +18,18 @@ namespace Artemis.Core.Plugins.Abstract { DeviceProvider = deviceProvider ?? throw new ArgumentNullException(nameof(deviceProvider)); } + + + protected void ResolveAbsolutePath(Type type, object sender, ResolvePathEventArgs e) + { + if (sender.GetType().IsGenericType(type)) + { + // Start from the plugin directory + if (e.RelativePart != null && e.FileName != null) + e.FinalPath = Path.Combine(PluginInfo.Directory.FullName, e.RelativePart, e.FileName); + else if (e.RelativePath != null) + e.FinalPath = Path.Combine(PluginInfo.Directory.FullName, e.RelativePath); + } + } } } \ No newline at end of file diff --git a/src/Artemis.Core/Services/CoreService.cs b/src/Artemis.Core/Services/CoreService.cs index ca61bdc34..60d80819a 100644 --- a/src/Artemis.Core/Services/CoreService.cs +++ b/src/Artemis.Core/Services/CoreService.cs @@ -30,6 +30,7 @@ namespace Artemis.Core.Services _surfaceService = surfaceService; _rgbService.Surface.Updating += SurfaceOnUpdating; _rgbService.Surface.Updated += SurfaceOnUpdated; + Task.Run(Initialize); } diff --git a/src/Artemis.Core/Services/Interfaces/IPluginService.cs b/src/Artemis.Core/Services/Interfaces/IPluginService.cs index af6b27c5e..c50bec069 100644 --- a/src/Artemis.Core/Services/Interfaces/IPluginService.cs +++ b/src/Artemis.Core/Services/Interfaces/IPluginService.cs @@ -69,8 +69,20 @@ namespace Artemis.Core.Services.Interfaces /// Returns a list of plug instances of type List GetPluginsOfType() where T : Plugin; + Plugin GetDevicePlugin(IRGBDevice device); + #region Events + /// + /// Occurs when built-in plugins are being loaded + /// + event EventHandler CopyingBuildInPlugins; + + /// + /// Occurs when a plugin has started loading + /// + event EventHandler PluginLoading; + /// /// Occurs when a plugin has loaded /// @@ -92,7 +104,5 @@ namespace Artemis.Core.Services.Interfaces event EventHandler PluginDisabled; #endregion - - Plugin GetDevicePlugin(IRGBDevice device); } } \ No newline at end of file diff --git a/src/Artemis.Core/Services/PluginService.cs b/src/Artemis.Core/Services/PluginService.cs index bce9a577b..8ec5da868 100644 --- a/src/Artemis.Core/Services/PluginService.cs +++ b/src/Artemis.Core/Services/PluginService.cs @@ -43,11 +43,12 @@ namespace Artemis.Core.Services /// public void CopyBuiltInPlugins() { + OnCopyingBuildInPlugins(); var pluginDirectory = new DirectoryInfo(Path.Combine(Constants.DataFolder, "plugins")); // Iterate built-in plugins - var varBuiltInPluginDirectory = new DirectoryInfo(Path.Combine(Directory.GetCurrentDirectory(), "Plugins")); - foreach (var subDirectory in varBuiltInPluginDirectory.EnumerateDirectories()) + var builtInPluginDirectory = new DirectoryInfo(Path.Combine(Directory.GetCurrentDirectory(), "Plugins")); + foreach (var subDirectory in builtInPluginDirectory.EnumerateDirectories()) { // Load the metadata var builtInMetadataFile = Path.Combine(subDirectory.FullName, "plugin.json"); @@ -118,6 +119,7 @@ namespace Artemis.Core.Services // Locate the main entry var pluginInfo = JsonConvert.DeserializeObject(File.ReadAllText(metadataFile)); pluginInfo.Directory = subDirectory; + OnPluginLoading(new PluginEventArgs(pluginInfo)); LoadPlugin(pluginInfo); } catch (Exception e) @@ -307,11 +309,23 @@ namespace Artemis.Core.Services #region Events + public event EventHandler CopyingBuildInPlugins; + public event EventHandler PluginLoading; public event EventHandler PluginLoaded; public event EventHandler PluginUnloaded; public event EventHandler PluginEnabled; public event EventHandler PluginDisabled; + protected virtual void OnCopyingBuildInPlugins() + { + CopyingBuildInPlugins?.Invoke(this, EventArgs.Empty); + } + + protected virtual void OnPluginLoading(PluginEventArgs e) + { + PluginLoading?.Invoke(this, e); + } + protected virtual void OnPluginLoaded(PluginEventArgs e) { PluginLoaded?.Invoke(this, e); diff --git a/src/Artemis.Plugins.Devices.Corsair/CorsairDevice.cs b/src/Artemis.Plugins.Devices.Corsair/CorsairDevice.cs index 98e4b0272..610b1233c 100644 --- a/src/Artemis.Plugins.Devices.Corsair/CorsairDevice.cs +++ b/src/Artemis.Plugins.Devices.Corsair/CorsairDevice.cs @@ -20,24 +20,12 @@ namespace Artemis.Plugins.Devices.Corsair public override void EnablePlugin() { - PathHelper.ResolvingAbsolutePath += ResolveCorsairPath; + PathHelper.ResolvingAbsolutePath += (sender, args) => ResolveAbsolutePath(typeof(CorsairRGBDevice<>), sender, args); CorsairDeviceProvider.PossibleX64NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x64", "CUESDK.dll")); CorsairDeviceProvider.PossibleX86NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x86", "CUESDK.dll")); _rgbService.AddDeviceProvider(DeviceProvider); } - - private void ResolveCorsairPath(object sender, ResolvePathEventArgs e) - { - if (sender.GetType().IsGenericType(typeof(CorsairRGBDevice<>))) - { - // Start from the plugin directory - if (e.RelativePart != null && e.FileName != null) - e.FinalPath = Path.Combine(PluginInfo.Directory.FullName, e.RelativePart, e.FileName); - else if (e.RelativePath != null) - e.FinalPath = Path.Combine(PluginInfo.Directory.FullName, e.RelativePath); - } - } - + public override void DisablePlugin() { // TODO: Remove the device provider from the surface diff --git a/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj b/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj new file mode 100644 index 000000000..8bf88eab9 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj @@ -0,0 +1,80 @@ + + + + + Debug + AnyCPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D} + Library + Properties + Artemis.Plugins.Devices.Logitech + Artemis.Plugins.Devices.Logitech + v4.7.2 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll + + + ..\..\..\RGB.NET\bin\net45\RGB.NET.Devices.Logitech.dll + + + + + + + + + + + + + + + + + {9B811F9B-86B9-4771-87AF-72BAE7078A36} + Artemis.Core + + + + + PreserveNewest + + + PreserveNewest + + + + + PreserveNewest + + + + + echo Copying resources to plugin output directory +XCOPY "$(ProjectDir)Images" "$(TargetDir)Images" /s /q /i /y +XCOPY "$(ProjectDir)Layouts" "$(TargetDir)Layouts" /s /q /i /y +echo Copying plugin to Artemis.UI output directory +XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/G910.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/G910.png new file mode 100644 index 000000000..dd4220451 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/G910.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/0_Equals_CurlyBracketRight.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/0_Equals_CurlyBracketRight.png new file mode 100644 index 000000000..e8afa3e2a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/0_Equals_CurlyBracketRight.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/1_ExclamationMark.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/1_ExclamationMark.png new file mode 100644 index 000000000..1beb4e4c6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/1_ExclamationMark.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/2_QuotationMark_Exponent2.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/2_QuotationMark_Exponent2.png new file mode 100644 index 000000000..e424ed93e Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/2_QuotationMark_Exponent2.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/3_SectionSign_Exponent3.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/3_SectionSign_Exponent3.png new file mode 100644 index 000000000..0611817fb Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/3_SectionSign_Exponent3.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/4_Dollar.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/4_Dollar.png new file mode 100644 index 000000000..1c5c7c5ea Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/4_Dollar.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/5_Percent.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/5_Percent.png new file mode 100644 index 000000000..42632546b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/5_Percent.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/6_Ampersand.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/6_Ampersand.png new file mode 100644 index 000000000..b5af4e71a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/6_Ampersand.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/7_Slash_CurlyBracketLeft.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/7_Slash_CurlyBracketLeft.png new file mode 100644 index 000000000..73a3a4691 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/7_Slash_CurlyBracketLeft.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/8_BracketLeft_SquareBracketLeft.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/8_BracketLeft_SquareBracketLeft.png new file mode 100644 index 000000000..e9d9352e4 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/8_BracketLeft_SquareBracketLeft.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/9_BracketRight_SquareBracketRight.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/9_BracketRight_SquareBracketRight.png new file mode 100644 index 000000000..638f59957 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/9_BracketRight_SquareBracketRight.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/A.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/A.png new file mode 100644 index 000000000..925c71c45 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/A.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AE.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AE.png new file mode 100644 index 000000000..5714c5bb9 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AE.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AccentGrave_AccentAcute.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AccentGrave_AccentAcute.png new file mode 100644 index 000000000..2516065dd Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AccentGrave_AccentAcute.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Alt.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Alt.png new file mode 100644 index 000000000..864737ae6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Alt.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AltGr.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AltGr.png new file mode 100644 index 000000000..dfc4b37f0 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/AltGr.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Asterisk.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Asterisk.png new file mode 100644 index 000000000..1d8608b68 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Asterisk.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/B.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/B.png new file mode 100644 index 000000000..296c37319 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/B.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Backspace.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Backspace.png new file mode 100644 index 000000000..5d24401b7 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Backspace.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildDown.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildDown.png new file mode 100644 index 000000000..90de4fb36 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildDown.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildUp.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildUp.png new file mode 100644 index 000000000..31c1e229b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/BildUp.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/C.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/C.png new file mode 100644 index 000000000..3eb305ed3 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/C.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CapsLockA.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CapsLockA.png new file mode 100644 index 000000000..51add26c8 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CapsLockA.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretDown.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretDown.png new file mode 100644 index 000000000..570394938 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretDown.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretLeft.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretLeft.png new file mode 100644 index 000000000..553e6e0ec Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretLeft.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretRight.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretRight.png new file mode 100644 index 000000000..2e067445c Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretRight.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretUp.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretUp.png new file mode 100644 index 000000000..3d72c3807 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/CaretUp.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Circumflex_Degree.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Circumflex_Degree.png new file mode 100644 index 000000000..4e1727508 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Circumflex_Degree.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Entf.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Entf.png new file mode 100644 index 000000000..9659d8938 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Entf.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Semicolon.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Semicolon.png new file mode 100644 index 000000000..ff4f2056d Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Comma_Semicolon.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/D.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/D.png new file mode 100644 index 000000000..ec7475ea8 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/D.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Dot_Colon.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Dot_Colon.png new file mode 100644 index 000000000..4ca7ad577 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Dot_Colon.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Drucken.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Drucken.png new file mode 100644 index 000000000..dd20a5e4e Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Drucken.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/E_Euro.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/E_Euro.png new file mode 100644 index 000000000..7f27c30c8 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/E_Euro.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Einfg.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Einfg.png new file mode 100644 index 000000000..fdcfeee92 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Einfg.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Ende.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Ende.png new file mode 100644 index 000000000..8433a3308 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Ende.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Enter.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Enter.png new file mode 100644 index 000000000..155018330 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Enter.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Entf.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Entf.png new file mode 100644 index 000000000..d6e9deb44 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Entf.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Escape.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Escape.png new file mode 100644 index 000000000..741b24c15 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Escape.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F.png new file mode 100644 index 000000000..fa20fc1c3 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F1.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F1.png new file mode 100644 index 000000000..37495c1ad Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F1.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F10.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F10.png new file mode 100644 index 000000000..fa18ec638 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F10.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F11.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F11.png new file mode 100644 index 000000000..af3aa8a07 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F11.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F12.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F12.png new file mode 100644 index 000000000..f269431dc Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F12.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F2.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F2.png new file mode 100644 index 000000000..b2d82117a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F2.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F3.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F3.png new file mode 100644 index 000000000..31962762f Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F3.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F4.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F4.png new file mode 100644 index 000000000..849a49f82 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F4.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F5.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F5.png new file mode 100644 index 000000000..1251a801d Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F5.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F6.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F6.png new file mode 100644 index 000000000..ef3137cc9 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F6.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F7.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F7.png new file mode 100644 index 000000000..56971fb60 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F7.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F8.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F8.png new file mode 100644 index 000000000..8af4c3ec6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F8.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F9.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F9.png new file mode 100644 index 000000000..44748151e Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/F9.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G.png new file mode 100644 index 000000000..c57c3edee Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G1.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G1.png new file mode 100644 index 000000000..2e00a8e11 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G1.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G2.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G2.png new file mode 100644 index 000000000..f8d3a3322 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G2.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G3.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G3.png new file mode 100644 index 000000000..9ddb3282e Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G3.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G4.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G4.png new file mode 100644 index 000000000..a79a2e929 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G4.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G5.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G5.png new file mode 100644 index 000000000..e7bb655e9 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G5.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G6.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G6.png new file mode 100644 index 000000000..5d569e843 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G6.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G7.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G7.png new file mode 100644 index 000000000..4858d4766 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G7.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G8.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G8.png new file mode 100644 index 000000000..de667d2c3 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G8.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G9.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G9.png new file mode 100644 index 000000000..5988127f5 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/G9.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/H.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/H.png new file mode 100644 index 000000000..3a62b3031 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/H.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hash_Apostrophe.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hash_Apostrophe.png new file mode 100644 index 000000000..1d25a9de6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hash_Apostrophe.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hyphen_Underscore.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hyphen_Underscore.png new file mode 100644 index 000000000..754df53c3 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Hyphen_Underscore.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/I.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/I.png new file mode 100644 index 000000000..78fecd81d Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/I.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/J.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/J.png new file mode 100644 index 000000000..072227dac Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/J.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/K.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/K.png new file mode 100644 index 000000000..fb572cc11 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/K.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/L.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/L.png new file mode 100644 index 000000000..8d878c81b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/L.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/LessThan_GreaterThan_Pipe.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/LessThan_GreaterThan_Pipe.png new file mode 100644 index 000000000..eefd2ac26 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/LessThan_GreaterThan_Pipe.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/M_Mu.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/M_Mu.png new file mode 100644 index 000000000..7d1a93b66 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/M_Mu.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Menu.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Menu.png new file mode 100644 index 000000000..63edb4bd9 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Menu.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Minus.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Minus.png new file mode 100644 index 000000000..7e87e5cea Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Minus.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/N.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/N.png new file mode 100644 index 000000000..9e9955309 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/N.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num.png new file mode 100644 index 000000000..ee26594d5 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num0_Einfg.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num0_Einfg.png new file mode 100644 index 000000000..45d8fe622 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num0_Einfg.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num1_Ende.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num1_Ende.png new file mode 100644 index 000000000..1c7637260 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num1_Ende.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num2_ArrowDown.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num2_ArrowDown.png new file mode 100644 index 000000000..de979d14b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num2_ArrowDown.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num3_BildDown.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num3_BildDown.png new file mode 100644 index 000000000..2229b9679 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num3_BildDown.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num4_ArrowLeft.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num4_ArrowLeft.png new file mode 100644 index 000000000..6ffa5d564 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num4_ArrowLeft.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num5.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num5.png new file mode 100644 index 000000000..2cd2843c0 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num5.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num6_ArrowRight.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num6_ArrowRight.png new file mode 100644 index 000000000..2e2eaa7ad Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num6_ArrowRight.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num7_Pos1.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num7_Pos1.png new file mode 100644 index 000000000..b523d9bfb Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num7_Pos1.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num8_ArrowUp.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num8_ArrowUp.png new file mode 100644 index 000000000..ad683d717 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num8_ArrowUp.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num9_BildUp.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num9_BildUp.png new file mode 100644 index 000000000..f41195d31 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Num9_BildUp.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumEnter.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumEnter.png new file mode 100644 index 000000000..e52f4e65c Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumEnter.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumPlus.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumPlus.png new file mode 100644 index 000000000..db412dc53 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/NumPlus.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/O.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/O.png new file mode 100644 index 000000000..b9c8cef66 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/O.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/OE.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/OE.png new file mode 100644 index 000000000..f5b05a173 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/OE.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/P.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/P.png new file mode 100644 index 000000000..5c918f9ff Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/P.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/PauseUntbr.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/PauseUntbr.png new file mode 100644 index 000000000..efc9f3959 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/PauseUntbr.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Plus_Asterisk_Tilde.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Plus_Asterisk_Tilde.png new file mode 100644 index 000000000..b072a01a6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Plus_Asterisk_Tilde.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Pos1.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Pos1.png new file mode 100644 index 000000000..bf024681e Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Pos1.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Q_At.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Q_At.png new file mode 100644 index 000000000..365b98723 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Q_At.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/QuestionMark_SharpS_Backslash.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/QuestionMark_SharpS_Backslash.png new file mode 100644 index 000000000..91d17bf98 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/QuestionMark_SharpS_Backslash.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/R.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/R.png new file mode 100644 index 000000000..1cdbf0dfa Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/R.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Rollen.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Rollen.png new file mode 100644 index 000000000..f3696df34 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Rollen.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/S.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/S.png new file mode 100644 index 000000000..919121ddb Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/S.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Shift.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Shift.png new file mode 100644 index 000000000..9ac730f1c Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Shift.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/ShiftBig.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/ShiftBig.png new file mode 100644 index 000000000..f5ea3126a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/ShiftBig.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Slash.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Slash.png new file mode 100644 index 000000000..13609b386 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Slash.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Space.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Space.png new file mode 100644 index 000000000..6c09dcd09 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Space.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Strg.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Strg.png new file mode 100644 index 000000000..d3761c87a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Strg.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/T.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/T.png new file mode 100644 index 000000000..00328f2b8 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/T.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Tab.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Tab.png new file mode 100644 index 000000000..c52c503f6 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Tab.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/U.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/U.png new file mode 100644 index 000000000..c015e3bf4 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/U.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/UE.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/UE.png new file mode 100644 index 000000000..8d51805f8 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/UE.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/V.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/V.png new file mode 100644 index 000000000..0155f454f Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/V.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/W.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/W.png new file mode 100644 index 000000000..b99c2da94 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/W.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Windows.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Windows.png new file mode 100644 index 000000000..68198cdbf Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Windows.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/X.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/X.png new file mode 100644 index 000000000..1032b2367 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/X.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Y.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Y.png new file mode 100644 index 000000000..9c6632d8b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Y.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Z.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Z.png new file mode 100644 index 000000000..a05a3ac3b Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Keyboards/Raptor_Keys/Z.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Mice/G403.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Mice/G403.png new file mode 100644 index 000000000..4b0e6c722 Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/Mice/G403.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/empty.png b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/empty.png new file mode 100644 index 000000000..af367b99a Binary files /dev/null and b/src/Artemis.Plugins.Devices.Logitech/Images/Logitech/empty.png differ diff --git a/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G610/UK.xml b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G610/UK.xml new file mode 100644 index 000000000..72023df7a --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G610/UK.xml @@ -0,0 +1,226 @@ + + + Logitech G610 - Physical UK + Physical UK-Layout of Logitech G610 (Logical: ???) + Darth Affe + Keyboard + Key + Logitech + G610 + 442 + 152 + Images\Logitech\Keyboards + + + + + 5 + 28 + + + + +12.667 + + + + + + + +12.667 + + + + + + + +12.667 + + + + + + + +6.75 + + + + + + + 5 + 52 + + + + + + + + + + + + + + + 2 + + + + +6.75 + + + + + + +6.75 + + + + + + + + 5 + + + 1.5 + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + +6.75 + + + + + + +6.75 + + + + + 2 + + + + + 5 + ~ + 1.75 + + + + + + + + + + + + + + + + +94.25 + + + + + + + 5 + + + 1.25 + + + + + + + + + + + + + + 2.75 + + + + +25.75 + + + + +25.75 + + + + + 2 + + + + + 5 + ~ + 1.5 + + + 1.25 + + + 1.25 + + + 5.75 + + + 1.25 + + + 1.25 + + + 1.25 + + + 1.5 + + + + +6.75 + + + + + + +6.75 + 2 + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G810/UK.xml b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G810/UK.xml new file mode 100644 index 000000000..c2e38a4e4 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G810/UK.xml @@ -0,0 +1,226 @@ + + + Logitech G810 - Physical UK + Physical UK-Layout of Logitech G810 (Logical: ???) + Darth Affe + Keyboard + Key + Logitech + G810 + 442 + 152 + Images\Logitech\Keyboards + + + + + 5 + 28 + + + + +12.667 + + + + + + + +12.667 + + + + + + + +12.667 + + + + + + + +6.75 + + + + + + + 5 + 52 + + + + + + + + + + + + + + + 2 + + + + +6.75 + + + + + + +6.75 + + + + + + + + 5 + + + 1.5 + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + +6.75 + + + + + + +6.75 + + + + + 2 + + + + + 5 + ~ + 1.75 + + + + + + + + + + + + + + + + +94.25 + + + + + + + 5 + + + 1.25 + + + + + + + + + + + + + + 2.75 + + + + +25.75 + + + + +25.75 + + + + + 2 + + + + + 5 + ~ + 1.5 + + + 1.25 + + + 1.25 + + + 5.75 + + + 1.25 + + + 1.25 + + + 1.25 + + + 1.5 + + + + +6.75 + + + + + + +6.75 + 2 + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G910/UK.xml b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G910/UK.xml new file mode 100644 index 000000000..f1b94c459 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/G910/UK.xml @@ -0,0 +1,390 @@ + + + Logitech G910 - Physical UK + Physical UK-Layout of Logitech G910 (Logical: ???) + Darth Affe + Keyboard + Key + Logitech + G910 + 491 + 238 + Images\Logitech\Keyboards + G910.png + + + + 42 + 28 + + + + +12.667 + + + + + + + +12.667 + + + + + + + +12.667 + + + + + + + +6.75 + + + + + + + 42 + 52 + + + + + + + + + + + + + + + 2 + + + + +6.75 + + + + + + +6.75 + + + + + + + + 42 + + + 1.5 + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + +6.75 + + + + + + +6.75 + + + + + 2 + + + + + 42 + ~ + 1.75 + + + + + + + + + + + + + + + + +94.25 + + + + + + + 42 + + + 1.25 + + + + + + + + + + + + + + 2.75 + + + + +25.75 + + + + +25.75 + + + + + 2 + + + + + 42 + ~ + 1.5 + + + 1.25 + + + 1.25 + + + 5.75 + + + 1.25 + + + 1.25 + + + 1.25 + + + 1.5 + + + + +6.75 + + + + + + +6.75 + 2 + + + + + + 18 + 52 + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + + 73.667 + 9 + + + + + + + + M 0,0 L0.15,1 0.85,1 L 1,0 Z + 92.5 + 166.5 + 55mm + 9mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/Pro/UK.xml b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/Pro/UK.xml new file mode 100644 index 000000000..4d42f843d --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Keyboards/Pro/UK.xml @@ -0,0 +1,189 @@ + + + Logitech Pro Gaming Keyboard - Physical UK + Physical UK-Layout of Logitech Pro Gaming Keyboard (Logical: ???) + Darth Affe + Keyboard + Key + Logitech + Pro + 360 + 152 + Images\Logitech\Keyboards + + + + + 5 + 28 + + + + +12.667 + + + + + + + +12.667 + + + + + + + +12.667 + + + + + + + +6.75 + + + + + + + 5 + 52 + + + + + + + + + + + + + + + 2 + + + + +6.75 + + + + + + + 5 + + + 1.5 + + + + + + + + + + + + + + + M0,0 L0,0.5 L0.16666666666,0.5 L0.16666666666,1 L1,1 L1,0 Z + 1.5 + 2 + + + + +6.75 + + + + + + + 5 + + + 1.75 + + + + + + + + + + + + + + + + + 5 + + + 1.25 + + + + + + + + + + + + + + 2.75 + + + + +25.75 + + + + + 5 + + + 1.5 + + + 1.25 + + + 1.25 + + + 5.75 + + + 1.25 + + + 1.25 + + + 1.25 + + + 1.5 + + + + +6.75 + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Mice/G403.xml b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Mice/G403.xml new file mode 100644 index 000000000..f60da7443 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Layouts/Logitech/Mice/G403.xml @@ -0,0 +1,23 @@ + + + Logitech G403 + Layout of the Logitech G403 Mouse + Darth Affe + Mouse + Device + Logitech + G403 + 67 + 125 + Images\Logitech\Mice + G403.png + + + m 0.7025,0.00275 -0.15,0 -0,0.26 h 0.15 z m -0.16732,0.7925 c -0.7,0.0159 -0.55,0.19383 -0.006236,0.19067 l 0.001707,-0.0416 c -0.425,-0.0115 -0.225,-0.11 0.005116,-0.10 z m 0.410,0.0779 -0.435,0 0,0.0401 0.225,0 0,0.0437 0.21,0 z + 24 + 15 + 17mm + 81mm + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/LogitechDevice.cs b/src/Artemis.Plugins.Devices.Logitech/LogitechDevice.cs new file mode 100644 index 000000000..937bc5f13 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/LogitechDevice.cs @@ -0,0 +1,37 @@ +using System; +using System.IO; +using Artemis.Core.Extensions; +using Artemis.Core.Plugins.Abstract; +using Artemis.Core.Plugins.Models; +using Artemis.Core.Services.Interfaces; +using RGB.NET.Core; +using RGB.NET.Devices.Logitech; + +namespace Artemis.Plugins.Devices.Logitech +{ + public class LogitechDevice : Device + { + private readonly IRgbService _rgbService; + + public LogitechDevice(PluginInfo pluginInfo, IRgbService rgbService) : base(pluginInfo, LogitechDeviceProvider.Instance) + { + _rgbService = rgbService; + } + + public override void EnablePlugin() + { + PathHelper.ResolvingAbsolutePath += (sender, args) => ResolveAbsolutePath(typeof(LogitechRGBDevice<>), sender, args); + LogitechDeviceProvider.PossibleX64NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x64", "LogitechLedEnginesWrapper.dll")); + LogitechDeviceProvider.PossibleX86NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x86", "LogitechLedEnginesWrapper.dll")); + _rgbService.AddDeviceProvider(DeviceProvider); + } + + public override void DisablePlugin() + { + } + + public override void Dispose() + { + } + } +} \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..79fac2002 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Artemis.Plugins.Devices.Logitech")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Artemis.Plugins.Devices.Logitech")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("235a45c7-24ad-4f47-b9d4-cd67e610a04d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Artemis.Plugins.Devices.Logitech/plugin.json b/src/Artemis.Plugins.Devices.Logitech/plugin.json new file mode 100644 index 000000000..3777d2245 --- /dev/null +++ b/src/Artemis.Plugins.Devices.Logitech/plugin.json @@ -0,0 +1,10 @@ +{ + "Guid": "62a45c0c-884c-4868-9fd7-3c5987fe07ca", + "Name": "Logitech Devices", + "Version": { + "Major": 1, + "Minor": 0, + "Build": 0 + }, + "Main": "Artemis.Plugins.Devices.Logitech.dll" +} diff --git a/src/Artemis.UI/App.xaml b/src/Artemis.UI/App.xaml index 062eb31e9..a64915a29 100644 --- a/src/Artemis.UI/App.xaml +++ b/src/Artemis.UI/App.xaml @@ -6,7 +6,6 @@ - @@ -57,7 +56,39 @@ + + + + + + + + - \ No newline at end of file diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index 68ac8fc6d..05276cf74 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -182,6 +182,7 @@ + @@ -235,6 +236,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + MSBuild:Compile Designer diff --git a/src/Artemis.UI/Bootstrapper.cs b/src/Artemis.UI/Bootstrapper.cs index d52492dd8..16aabc25c 100644 --- a/src/Artemis.UI/Bootstrapper.cs +++ b/src/Artemis.UI/Bootstrapper.cs @@ -1,10 +1,12 @@ -using System.Windows; +using System.Threading.Tasks; +using System.Windows; using Artemis.Core.Ninject; using Artemis.Core.Services.Interfaces; using Artemis.UI.Ninject; using Artemis.UI.Stylet; using Artemis.UI.ViewModels.Screens; using Ninject; +using Stylet; namespace Artemis.UI { @@ -15,11 +17,37 @@ namespace Artemis.UI protected override void OnExit(ExitEventArgs e) { // Stop the Artemis core - _core.Dispose(); + _core?.Dispose(); base.OnExit(e); } + protected override void Launch() + { + var windowManager = (IWindowManager) GetInstance(typeof(IWindowManager)); + var splashViewModel = new SplashViewModel(Kernel); + windowManager.ShowWindow(splashViewModel); + + Task.Run(() => + { + // Start the Artemis core + _core = Kernel.Get(); + // When the core is done, hide the splash and show the main window + _core.Initialized += (sender, args) => ShowMainWindow(windowManager, splashViewModel); + // While the core is instantiated, start listening for events on the splash + splashViewModel.ListenToEvents(); + }); + } + + private void ShowMainWindow(IWindowManager windowManager, SplashViewModel splashViewModel) + { + Execute.OnUIThread(() => + { + windowManager.ShowWindow(RootViewModel); + splashViewModel.RequestClose(); + }); + } + protected override void ConfigureIoC(IKernel kernel) { kernel.Settings.InjectNonPublic = true; @@ -28,10 +56,6 @@ namespace Artemis.UI kernel.Load(); // Load the core assembly's module kernel.Load(); - - // Start the Artemis core, the core's constructor will initialize async - _core = Kernel.Get(); - base.ConfigureIoC(kernel); } } diff --git a/src/Artemis.UI/Stylet/NinjectBootstrapper.cs b/src/Artemis.UI/Stylet/NinjectBootstrapper.cs index a2aa78168..bd448ab5e 100644 --- a/src/Artemis.UI/Stylet/NinjectBootstrapper.cs +++ b/src/Artemis.UI/Stylet/NinjectBootstrapper.cs @@ -36,7 +36,10 @@ namespace Artemis.UI.Stylet kernel.Bind().ToConstant(new ViewManager(viewManagerConfig)); kernel.Bind().ToConstant(this).InTransientScope(); - kernel.Bind().ToMethod(c => new WindowManager(c.Kernel.Get(), () => c.Kernel.Get(), c.Kernel.Get())).InSingletonScope(); + kernel.Bind().ToMethod( + c => new WindowManager(c.Kernel.Get(), () => c.Kernel.Get(), c.Kernel.Get()) + ) + .InSingletonScope(); kernel.Bind().To().InSingletonScope(); kernel.Bind().To(); // Not singleton! } @@ -55,7 +58,6 @@ namespace Artemis.UI.Stylet protected override void Launch() { - DisplayRootView(RootViewModel); } public override void Dispose() diff --git a/src/Artemis.UI/ViewModels/Screens/SplashViewModel.cs b/src/Artemis.UI/ViewModels/Screens/SplashViewModel.cs new file mode 100644 index 000000000..21f396517 --- /dev/null +++ b/src/Artemis.UI/ViewModels/Screens/SplashViewModel.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Artemis.Core.Services.Interfaces; +using Ninject; +using Stylet; + +namespace Artemis.UI.ViewModels.Screens +{ + public class SplashViewModel : Screen + { + private readonly IKernel _kernel; + + public SplashViewModel(IKernel kernel) + { + _kernel = kernel; + Status = "Initializing Core"; + } + + public string Status { get; set; } + + public void ListenToEvents() + { + var pluginService = _kernel.Get(); + pluginService.CopyingBuildInPlugins += (sender, args) => Status = "Updating built-in plugins"; + pluginService.PluginLoading += (sender, args) => Status = "Loading plugin: " + args.PluginInfo.Name; + } + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Views/Screens/RootView.xaml b/src/Artemis.UI/Views/Screens/RootView.xaml index 34f6973c6..6d868fcb9 100644 --- a/src/Artemis.UI/Views/Screens/RootView.xaml +++ b/src/Artemis.UI/Views/Screens/RootView.xaml @@ -16,40 +16,6 @@ d:DesignWidth="1113.251" d:DataContext="{d:DesignInstance screens:RootViewModel}" Icon="/Artemis.UI;component/Resources/logo-512.png"> - - - - - - - - - @@ -62,7 +28,7 @@ Background="Transparent" RenderOptions.BitmapScalingMode="HighQuality" Margin="0,0,-10,0"> - diff --git a/src/Artemis.UI/Views/Screens/SplashView.xaml b/src/Artemis.UI/Views/Screens/SplashView.xaml new file mode 100644 index 000000000..99840301f --- /dev/null +++ b/src/Artemis.UI/Views/Screens/SplashView.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + Artemis is initializing... + + + + \ No newline at end of file diff --git a/src/Artemis.sln b/src/Artemis.sln index 9e17bca28..b4da0e2d6 100644 --- a/src/Artemis.sln +++ b/src/Artemis.sln @@ -7,6 +7,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI", "Artemis.UI\Ar ProjectSection(ProjectDependencies) = postProject {E592F239-FAA0-4840-9C85-46E5867D06D5} = {E592F239-FAA0-4840-9C85-46E5867D06D5} {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} = {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} + {235A45C7-24AD-4F47-B9D4-CD67E610A04D} = {235A45C7-24AD-4F47-B9D4-CD67E610A04D} {A779B2F8-C253-4C4B-8634-6EB8F594E96D} = {A779B2F8-C253-4C4B-8634-6EB8F594E96D} EndProjectSection EndProject @@ -22,6 +23,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.LayerTypes. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.Devices.Corsair", "Artemis.Plugins.Devices.Corsair\Artemis.Plugins.Devices.Corsair.csproj", "{A779B2F8-C253-4C4B-8634-6EB8F594E96D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.Devices.Logitech", "Artemis.Plugins.Devices.Logitech\Artemis.Plugins.Devices.Logitech.csproj", "{235A45C7-24AD-4F47-B9D4-CD67E610A04D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -78,6 +81,14 @@ Global {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|Any CPU.Build.0 = Release|Any CPU {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|x64.ActiveCfg = Release|Any CPU {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|x64.Build.0 = Release|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|x64.ActiveCfg = Debug|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|x64.Build.0 = Debug|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|Any CPU.Build.0 = Release|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|x64.ActiveCfg = Release|Any CPU + {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -86,6 +97,7 @@ Global {E592F239-FAA0-4840-9C85-46E5867D06D5} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} {A779B2F8-C253-4C4B-8634-6EB8F594E96D} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} + {235A45C7-24AD-4F47-B9D4-CD67E610A04D} = {E830A02B-A7E5-4A6B-943F-76B0A542630C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C203080A-4473-4CC2-844B-F552EA43D66A}