From a79c56eaa111c83a6a95802a454bbd8a0c8d9a79 Mon Sep 17 00:00:00 2001 From: SpoinkyNL Date: Sat, 22 Feb 2020 18:38:32 +0100 Subject: [PATCH] Core port - Targeting .NET Core 3.1! Core port - Updated projects to new project layout Core port - Changed the way devices are identified to be consistent across different frameworks Core port - Updated plugin system to no longer use AppDomain but AssemblyLoadContext (through McMaster.NETCore.Plugins) Core port - Renamed a few events to keep Fody from getting confused --- src/Artemis.Core/Artemis.Core.csproj | 246 +----- .../Extensions/RgbDeviceExtensions.cs | 16 +- src/Artemis.Core/Models/Profile/Layer.cs | 4 +- .../Models/Surface/ArtemisDevice.cs | 2 +- src/Artemis.Core/Plugins/Models/PluginInfo.cs | 13 +- src/Artemis.Core/Properties/AssemblyInfo.cs | 25 - src/Artemis.Core/Services/PluginService.cs | 21 +- .../Storage/Interfaces/ISurfaceService.cs | 2 +- .../Services/Storage/ProfileService.cs | 4 +- .../Services/Storage/SurfaceService.cs | 14 +- src/Artemis.Core/packages.config | 29 - .../Artemis.Plugins.Devices.Corsair.csproj | 76 +- .../Properties/AssemblyInfo.cs | 25 - .../plugin.json | 6 +- .../Artemis.Plugins.Devices.Logitech.csproj | 65 +- .../Properties/AssemblyInfo.cs | 25 - .../plugin.json | 6 +- .../Artemis.Plugins.Devices.Wooting.csproj | 66 +- .../Properties/AssemblyInfo.cs | 25 - .../plugin.json | 6 +- .../Artemis.Plugins.LayerBrushes.Color.csproj | 122 +-- .../Properties/AssemblyInfo.cs | 25 - .../packages.config | 9 - .../plugin.json | 6 +- .../Artemis.Plugins.LayerBrushes.Noise.csproj | 132 +--- .../Properties/AssemblyInfo.cs | 25 - .../packages.config | 9 - .../plugin.json | 6 +- .../Artemis.Plugins.Modules.General.csproj | 116 +-- .../Properties/AssemblyInfo.cs | 25 - .../packages.config | 9 - .../plugin.json | 6 +- src/Artemis.Storage/Artemis.Storage.csproj | 10 +- .../Entities/Profile/LedEntity.cs | 2 +- .../Entities/Surface/DeviceEntity.cs | 4 +- .../Artemis.UI.Shared.csproj | 147 +--- .../Properties/AssemblyInfo.cs | 26 - src/Artemis.UI.Shared/packages.config | 11 - src/Artemis.UI/App.config | 111 --- src/Artemis.UI/Artemis.UI.csproj | 725 +++++------------- .../Behaviors/TreeViewSelectionBehavior.cs | 2 +- .../ColorToDrawingColorConverter.cs | 33 - src/Artemis.UI/Properties/AssemblyInfo.cs | 27 - .../Properties/Resources.Designer.cs | 10 - src/Artemis.UI/Properties/Resources.resx | 3 - src/Artemis.UI/SDK bug | 50 -- .../LayerPropertiesViewModel.cs | 2 +- .../ProfileTree/ProfileTreeView.xaml | 6 +- .../ProfileTree/ProfileTreeViewModel.cs | 8 +- .../Visualization/ProfileLayerViewModel.cs | 6 +- .../Visualization/ProfileViewModel.cs | 12 +- .../Visualization/Tools/EditToolViewModel.cs | 4 +- .../Screens/Settings/Debug/DebugViewModel.cs | 2 +- .../Screens/Settings/SettingsViewModel.cs | 1 - .../Visualization/SurfaceLedViewModel.cs | 4 +- .../Interfaces/IProfileEditorService.cs | 4 +- .../Services/ProfileEditorService.cs | 8 +- src/Artemis.UI/logo-512.ico | Bin 112887 -> 0 bytes src/Artemis.UI/packages.config | 27 - .../packages.config.new.20190410002817 | 25 - src/Artemis.sln | 132 ++-- 61 files changed, 537 insertions(+), 2031 deletions(-) delete mode 100644 src/Artemis.Core/packages.config delete mode 100644 src/Artemis.Plugins.LayerBrushes.Color/packages.config delete mode 100644 src/Artemis.Plugins.LayerBrushes.Noise/packages.config delete mode 100644 src/Artemis.Plugins.Modules.General/packages.config delete mode 100644 src/Artemis.UI.Shared/packages.config delete mode 100644 src/Artemis.UI/App.config delete mode 100644 src/Artemis.UI/Converters/ColorToDrawingColorConverter.cs delete mode 100644 src/Artemis.UI/SDK bug delete mode 100644 src/Artemis.UI/logo-512.ico delete mode 100644 src/Artemis.UI/packages.config delete mode 100644 src/Artemis.UI/packages.config.new.20190410002817 diff --git a/src/Artemis.Core/Artemis.Core.csproj b/src/Artemis.Core/Artemis.Core.csproj index 6732dfd6f..90e552ee4 100644 --- a/src/Artemis.Core/Artemis.Core.csproj +++ b/src/Artemis.Core/Artemis.Core.csproj @@ -1,241 +1,61 @@ - - - - + - Debug - AnyCPU - {9B811F9B-86B9-4771-87AF-72BAE7078A36} - Library - Properties - Artemis.Core - Artemis.Core - v4.7.2 - 512 + netcoreapp3.1 false - - - + Artemis.Core + Artemis + Copyright © Robert Beekman - 2019 + MinimumRecommendedRules.ruleset + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - ..\packages\AppDomainToolkit.1.0.4.3\lib\net\AppDomainToolkit.dll - - - ..\packages\Ben.Demystifier.0.1.6\lib\net45\Ben.Demystifier.dll - - - ..\packages\Castle.Core.4.4.0\lib\net45\Castle.Core.dll - - - ..\packages\LiteDB.5.0.3\lib\net45\LiteDB.dll - - - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - - ..\packages\Ninject.3.3.4\lib\net45\Ninject.dll - - - ..\packages\Ninject.Extensions.ChildKernel.3.3.0\lib\net45\Ninject.Extensions.ChildKernel.dll - - - ..\packages\Ninject.Extensions.Conventions.3.3.0\lib\net45\Ninject.Extensions.Conventions.dll - - - ..\packages\Ninject.Extensions.Factory.3.3.2\lib\net45\Ninject.Extensions.Factory.dll - - - - ..\packages\PropertyChanged.Fody.3.2.6\lib\net40\PropertyChanged.dll - - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Brushes.dll + False - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll + False - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Decorators.dll + False - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Groups.dll + False - - ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll - - - ..\packages\Serilog.Enrichers.Demystify.1.0.0-dev-00019\lib\net45\Serilog.Enrichers.Demystify.dll - - - ..\packages\Serilog.Sinks.Debug.1.0.1\lib\net46\Serilog.Sinks.Debug.dll - - - ..\packages\Serilog.Sinks.File.4.1.0\lib\net45\Serilog.Sinks.File.dll - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - ..\packages\Stylet.1.3.1\lib\net45\Stylet.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.Collections.Immutable.1.7.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Reflection.Metadata.1.8.0\lib\netstandard2.0\System.Reflection.Metadata.dll - - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65} - Artemis.Storage + true - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs b/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs index 8e8a37c38..e4a637e37 100644 --- a/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs +++ b/src/Artemis.Core/Extensions/RgbDeviceExtensions.cs @@ -4,17 +4,13 @@ namespace Artemis.Core.Extensions { public static class RgbDeviceExtensions { - public static int GetDeviceHashCode(this IRGBDevice rgbDevice) + public static string GetDeviceIdentifier(this IRGBDevice rgbDevice) { - unchecked - { - var hashCode = rgbDevice.DeviceInfo.DeviceName?.GetHashCode() ?? 0; - hashCode = (hashCode * 397) ^ (rgbDevice.DeviceInfo.Manufacturer?.GetHashCode() ?? 0); - hashCode = (hashCode * 397) ^ (rgbDevice.DeviceInfo.Model?.GetHashCode() ?? 0); - hashCode = (hashCode * 397) ^ (int) rgbDevice.DeviceInfo.DeviceType; - hashCode = (hashCode * 397) ^ (int) rgbDevice.DeviceInfo.Lighting; - return hashCode; - } + return rgbDevice.DeviceInfo.DeviceName + + "-" + rgbDevice.DeviceInfo.Manufacturer + + "-" + rgbDevice.DeviceInfo.Model + + "-" + rgbDevice.DeviceInfo.DeviceType + + "-" + rgbDevice.DeviceInfo.Lighting; } } } \ No newline at end of file diff --git a/src/Artemis.Core/Models/Profile/Layer.cs b/src/Artemis.Core/Models/Profile/Layer.cs index cd55329db..eea5762ad 100644 --- a/src/Artemis.Core/Models/Profile/Layer.cs +++ b/src/Artemis.Core/Models/Profile/Layer.cs @@ -168,7 +168,7 @@ namespace Artemis.Core.Models.Profile { var ledEntity = new LedEntity { - DeviceHash = artemisLed.Device.RgbDevice.GetDeviceHashCode(), + DeviceIdentifier = artemisLed.Device.RgbDevice.GetDeviceIdentifier(), LedName = artemisLed.RgbLed.Id.ToString() }; LayerEntity.Leds.Add(ledEntity); @@ -406,7 +406,7 @@ namespace Artemis.Core.Models.Profile var availableLeds = surface.Devices.SelectMany(d => d.Leds).ToList(); foreach (var ledEntity in LayerEntity.Leds) { - var match = availableLeds.FirstOrDefault(a => a.Device.RgbDevice.GetDeviceHashCode() == ledEntity.DeviceHash && + var match = availableLeds.FirstOrDefault(a => a.Device.RgbDevice.GetDeviceIdentifier() == ledEntity.DeviceIdentifier && a.RgbLed.Id.ToString() == ledEntity.LedName); if (match != null) leds.Add(match); diff --git a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs index 066d2441d..9e46be114 100644 --- a/src/Artemis.Core/Models/Surface/ArtemisDevice.cs +++ b/src/Artemis.Core/Models/Surface/ArtemisDevice.cs @@ -91,7 +91,7 @@ namespace Artemis.Core.Models.Surface internal void ApplyToEntity() { // Other properties are computed - DeviceEntity.DeviceHashCode = RgbDevice.GetDeviceHashCode(); + DeviceEntity.DeviceIdentifier = RgbDevice.GetDeviceIdentifier(); } internal void ApplyToRgbDevice() diff --git a/src/Artemis.Core/Plugins/Models/PluginInfo.cs b/src/Artemis.Core/Plugins/Models/PluginInfo.cs index 654715475..3c070b2c2 100644 --- a/src/Artemis.Core/Plugins/Models/PluginInfo.cs +++ b/src/Artemis.Core/Plugins/Models/PluginInfo.cs @@ -1,7 +1,8 @@ using System; using System.IO; -using AppDomainToolkit; +using System.Reflection; using Artemis.Core.Plugins.Abstract; +using McMaster.NETCore.Plugins; using Newtonsoft.Json; namespace Artemis.Core.Plugins.Models @@ -55,10 +56,16 @@ namespace Artemis.Core.Plugins.Models public bool Enabled { get; internal set; } /// - /// The AppDomain context of this plugin + /// The PluginLoader backing this plugin /// [JsonIgnore] - internal AppDomainContext Context { get; set; } + internal PluginLoader PluginLoader { get; set; } + + /// + /// The assembly the plugin code lives in + /// + [JsonIgnore] + internal Assembly Assembly { get; set; } public override string ToString() { diff --git a/src/Artemis.Core/Properties/AssemblyInfo.cs b/src/Artemis.Core/Properties/AssemblyInfo.cs index 3c417c4e2..c5012b6bd 100644 --- a/src/Artemis.Core/Properties/AssemblyInfo.cs +++ b/src/Artemis.Core/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.Core")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis")] -[assembly: AssemblyCopyright("Copyright © Robert Beekman - 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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("9b811f9b-86b9-4771-87af-72bae7078a36")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Core/Services/PluginService.cs b/src/Artemis.Core/Services/PluginService.cs index 691c26674..ce6125ae3 100644 --- a/src/Artemis.Core/Services/PluginService.cs +++ b/src/Artemis.Core/Services/PluginService.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using AppDomainToolkit; using Artemis.Core.Events; using Artemis.Core.Exceptions; using Artemis.Core.Extensions; @@ -11,6 +10,7 @@ using Artemis.Core.Plugins.Abstract; using Artemis.Core.Plugins.Exceptions; using Artemis.Core.Plugins.Models; using Artemis.Core.Services.Interfaces; +using McMaster.NETCore.Plugins; using Newtonsoft.Json; using Ninject; using Ninject.Extensions.ChildKernel; @@ -198,17 +198,15 @@ namespace Artemis.Core.Services throw new ArtemisPluginException(pluginInfo, "Couldn't find the plugins main entry at " + mainFile); // Load the plugin, all types implementing Plugin and register them with DI - var setupInfo = new AppDomainSetup + pluginInfo.PluginLoader = PluginLoader.CreateFromAssemblyFile(mainFile, configure => { - ApplicationName = pluginInfo.Guid.ToString(), - ApplicationBase = AppDomain.CurrentDomain.BaseDirectory, - PrivateBinPath = pluginInfo.Directory.FullName - }; - pluginInfo.Context = AppDomainContext.Create(setupInfo); + configure.IsUnloadable = true; + configure.PreferSharedTypes = true; + }); try { - pluginInfo.Context.LoadAssemblyWithReferences(LoadMethod.LoadFrom, mainFile); + pluginInfo.Assembly = pluginInfo.PluginLoader.LoadDefaultAssembly(); } catch (Exception e) { @@ -217,12 +215,9 @@ namespace Artemis.Core.Services // Get the Plugin implementation from the main assembly and if there is only one, instantiate it List pluginTypes; - var mainAssembly = pluginInfo.Context.Domain.GetAssemblies().FirstOrDefault(a => a.Location == mainFile); - if (mainAssembly == null) - throw new ArtemisPluginException(pluginInfo, "Found no supported assembly in the plugins main file"); try { - pluginTypes = mainAssembly.GetTypes().Where(t => typeof(Plugin).IsAssignableFrom(t)).ToList(); + pluginTypes = pluginInfo.Assembly.GetTypes().Where(t => typeof(Plugin).IsAssignableFrom(t)).ToList(); } catch (ReflectionTypeLoadException e) { @@ -275,7 +270,7 @@ namespace Artemis.Core.Services _childKernel.Unbind(pluginInfo.Instance.GetType()); pluginInfo.Instance.Dispose(); - pluginInfo.Context.Dispose(); + pluginInfo.PluginLoader.Dispose(); _plugins.Remove(pluginInfo); OnPluginUnloaded(new PluginEventArgs(pluginInfo)); diff --git a/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs b/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs index e70192d96..d028f84d1 100644 --- a/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs +++ b/src/Artemis.Core/Services/Storage/Interfaces/ISurfaceService.cs @@ -47,7 +47,7 @@ namespace Artemis.Core.Services.Storage.Interfaces /// /// Occurs when the active device entity has been changed /// - event EventHandler ActiveSurfaceConfigurationChanged; + event EventHandler ActiveSurfaceConfigurationSelected; /// /// Occurs when a surface configuration has been updated diff --git a/src/Artemis.Core/Services/Storage/ProfileService.cs b/src/Artemis.Core/Services/Storage/ProfileService.cs index b1a451cae..8434ea02b 100644 --- a/src/Artemis.Core/Services/Storage/ProfileService.cs +++ b/src/Artemis.Core/Services/Storage/ProfileService.cs @@ -33,7 +33,7 @@ namespace Artemis.Core.Services.Storage _layerService = layerService; _profileRepository = profileRepository; - _surfaceService.ActiveSurfaceConfigurationChanged += OnActiveSurfaceConfigurationChanged; + _surfaceService.ActiveSurfaceConfigurationSelected += OnActiveSurfaceConfigurationSelected; _surfaceService.SurfaceConfigurationUpdated += OnSurfaceConfigurationUpdated; _pluginService.PluginLoaded += OnPluginLoaded; } @@ -196,7 +196,7 @@ namespace Artemis.Core.Services.Storage #region Event handlers - private void OnActiveSurfaceConfigurationChanged(object sender, SurfaceConfigurationEventArgs e) + private void OnActiveSurfaceConfigurationSelected(object sender, SurfaceConfigurationEventArgs e) { ActiveProfilesPopulateLeds(e.Surface); } diff --git a/src/Artemis.Core/Services/Storage/SurfaceService.cs b/src/Artemis.Core/Services/Storage/SurfaceService.cs index 40704edf8..dc4dc2145 100644 --- a/src/Artemis.Core/Services/Storage/SurfaceService.cs +++ b/src/Artemis.Core/Services/Storage/SurfaceService.cs @@ -139,7 +139,7 @@ namespace Artemis.Core.Services.Storage var surfaceConfiguration = new ArtemisSurface(_rgbService.Surface, surfaceEntity, _renderScaleSetting.Value); foreach (var position in surfaceEntity.DeviceEntities) { - var device = _rgbService.Surface.Devices.FirstOrDefault(d => d.GetDeviceHashCode() == position.DeviceHashCode); + var device = _rgbService.Surface.Devices.FirstOrDefault(d => d.GetDeviceIdentifier() == position.DeviceIdentifier); if (device != null) { var plugin = _pluginService.GetDevicePlugin(device); @@ -174,14 +174,14 @@ namespace Artemis.Core.Services.Storage private void AddDeviceIfMissing(IRGBDevice rgbDevice, ArtemisSurface surface) { - var deviceHashCode = rgbDevice.GetDeviceHashCode(); - var device = surface.Devices.FirstOrDefault(d => d.DeviceEntity.DeviceHashCode == deviceHashCode); + var deviceIdentifier = rgbDevice.GetDeviceIdentifier(); + var device = surface.Devices.FirstOrDefault(d => d.DeviceEntity.DeviceIdentifier == deviceIdentifier); if (device != null) return; // Find an existing device config and use that - var existingDeviceConfig = surface.SurfaceEntity.DeviceEntities.FirstOrDefault(d => d.DeviceHashCode == deviceHashCode); + var existingDeviceConfig = surface.SurfaceEntity.DeviceEntities.FirstOrDefault(d => d.DeviceIdentifier == deviceIdentifier); if (existingDeviceConfig != null) { var plugin = _pluginService.GetDevicePlugin(rgbDevice); @@ -193,7 +193,7 @@ namespace Artemis.Core.Services.Storage _logger.Information( "No device config found for {deviceInfo}, device hash: {deviceHashCode}. Adding a new entry.", rgbDevice.DeviceInfo, - deviceHashCode + deviceIdentifier ); var plugin = _pluginService.GetDevicePlugin(rgbDevice); device = new ArtemisDevice(rgbDevice, plugin, surface); @@ -230,12 +230,12 @@ namespace Artemis.Core.Services.Storage #region Events - public event EventHandler ActiveSurfaceConfigurationChanged; + public event EventHandler ActiveSurfaceConfigurationSelected; public event EventHandler SurfaceConfigurationUpdated; protected virtual void OnActiveSurfaceConfigurationChanged(SurfaceConfigurationEventArgs e) { - ActiveSurfaceConfigurationChanged?.Invoke(this, e); + ActiveSurfaceConfigurationSelected?.Invoke(this, e); } protected virtual void OnSurfaceConfigurationUpdated(SurfaceConfigurationEventArgs e) diff --git a/src/Artemis.Core/packages.config b/src/Artemis.Core/packages.config deleted file mode 100644 index 9f6228789..000000000 --- a/src/Artemis.Core/packages.config +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Corsair/Artemis.Plugins.Devices.Corsair.csproj b/src/Artemis.Plugins.Devices.Corsair/Artemis.Plugins.Devices.Corsair.csproj index 91e4da6bd..bbfa5adbb 100644 --- a/src/Artemis.Plugins.Devices.Corsair/Artemis.Plugins.Devices.Corsair.csproj +++ b/src/Artemis.Plugins.Devices.Corsair/Artemis.Plugins.Devices.Corsair.csproj @@ -1,70 +1,35 @@ - - - + - Debug - AnyCPU - {A779B2F8-C253-4C4B-8634-6EB8F594E96D} - Library - Properties - Artemis.Plugins.Devices.Corsair - Artemis.Plugins.Devices.Corsair - v4.7.2 - 512 - true - - + netcoreapp3.1 + Artemis.Plugins.Devices.CorsairDevice + Artemis.Plugins.Devices.CorsairDevice + Copyright © 2019 + MinimumRecommendedRules.ruleset + 7.3 + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset + + + ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Devices.Corsair.dll + False - - - - - - - - - - + - - {9B811F9B-86B9-4771-87AF-72BAE7078A36} - Artemis.Core - False - - - - PreserveNewest @@ -77,16 +42,7 @@ 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.Corsair/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.Devices.Corsair/Properties/AssemblyInfo.cs index e2749984a..5923714b1 100644 --- a/src/Artemis.Plugins.Devices.Corsair/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.Devices.Corsair/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.CorsairDevice")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis.Plugins.Devices.CorsairDevice")] -[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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("a779b2f8-c253-4c4b-8634-6eb8f594e96d")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Corsair/plugin.json b/src/Artemis.Plugins.Devices.Corsair/plugin.json index 9846e0d1f..4e455fd0c 100644 --- a/src/Artemis.Plugins.Devices.Corsair/plugin.json +++ b/src/Artemis.Plugins.Devices.Corsair/plugin.json @@ -1,10 +1,6 @@ { "Guid": "926629ab-8170-42f3-be18-22c694aa91cd", "Name": "Corsair Devices", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.Devices.Corsair.dll" } \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj b/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj index 0ea1a4bf3..fd405c96c 100644 --- a/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj +++ b/src/Artemis.Plugins.Devices.Logitech/Artemis.Plugins.Devices.Logitech.csproj @@ -1,37 +1,18 @@ - - - + - Debug - AnyCPU - {235A45C7-24AD-4F47-B9D4-CD67E610A04D} - Library - Properties - Artemis.Plugins.Devices.Logitech - Artemis.Plugins.Devices.Logitech - v4.7.2 - 512 - true + netcoreapp3.1 + Artemis.Plugins.Devices.Logitech + Artemis.Plugins.Devices.Logitech + Copyright © 2019 + MinimumRecommendedRules.ruleset + 7.3 + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset @@ -40,25 +21,9 @@ ..\..\..\RGB.NET\bin\net45\RGB.NET.Devices.Logitech.dll - - - - - - - - - - - - - - {9B811F9B-86B9-4771-87AF-72BAE7078A36} - Artemis.Core - False - + @@ -69,17 +34,11 @@ - 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/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs index a04c96540..59bea6ed1 100644 --- a/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.Devices.Logitech/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Logitech/plugin.json b/src/Artemis.Plugins.Devices.Logitech/plugin.json index 1ffd798fa..4680d7fed 100644 --- a/src/Artemis.Plugins.Devices.Logitech/plugin.json +++ b/src/Artemis.Plugins.Devices.Logitech/plugin.json @@ -1,10 +1,6 @@ { "Guid": "62a45c0c-884c-4868-9fd7-3c5987fe07ca", "Name": "Logitech Devices", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.Devices.Logitech.dll" } \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Wooting/Artemis.Plugins.Devices.Wooting.csproj b/src/Artemis.Plugins.Devices.Wooting/Artemis.Plugins.Devices.Wooting.csproj index 497643022..ea28096d7 100644 --- a/src/Artemis.Plugins.Devices.Wooting/Artemis.Plugins.Devices.Wooting.csproj +++ b/src/Artemis.Plugins.Devices.Wooting/Artemis.Plugins.Devices.Wooting.csproj @@ -1,37 +1,18 @@ - - - + - Debug - AnyCPU - {C6BDB6D9-062D-4C28-A280-F3BD6197F07F} - Library - Properties - Artemis.Plugins.Devices.Wooting - Artemis.Plugins.Devices.Wooting - v4.7.2 - 512 - true + netcoreapp3.1 + Artemis.Plugins.Devices.Wooting + Artemis.Plugins.Devices.Wooting + Copyright © 2019 + MinimumRecommendedRules.ruleset + 7.3 + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset @@ -40,33 +21,15 @@ ..\..\..\RGB.NET\bin\net45\RGB.NET.Devices.Wooting.dll - - - - - - - - - - - - - PreserveNewest - - {9b811f9b-86b9-4771-87af-72bae7078a36} - Artemis.Core - False - + - PreserveNewest @@ -75,12 +38,7 @@ 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.Wooting/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.Devices.Wooting/Properties/AssemblyInfo.cs index 27fe6aeeb..387240943 100644 --- a/src/Artemis.Plugins.Devices.Wooting/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.Devices.Wooting/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.Wooting")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis.Plugins.Devices.Wooting")] -[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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("c6bdb6d9-062d-4c28-a280-f3bd6197f07f")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.Devices.Wooting/plugin.json b/src/Artemis.Plugins.Devices.Wooting/plugin.json index 6851ed5be..62721a268 100644 --- a/src/Artemis.Plugins.Devices.Wooting/plugin.json +++ b/src/Artemis.Plugins.Devices.Wooting/plugin.json @@ -1,10 +1,6 @@ { "Guid": "e70fd5ba-9881-480a-8ff6-078ed5f747fa", "Name": "Wooting Devices", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.Devices.Wooting.dll" } \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Color/Artemis.Plugins.LayerBrushes.Color.csproj b/src/Artemis.Plugins.LayerBrushes.Color/Artemis.Plugins.LayerBrushes.Color.csproj index 2187950c7..581959106 100644 --- a/src/Artemis.Plugins.LayerBrushes.Color/Artemis.Plugins.LayerBrushes.Color.csproj +++ b/src/Artemis.Plugins.LayerBrushes.Color/Artemis.Plugins.LayerBrushes.Color.csproj @@ -1,119 +1,39 @@ - - - + - Debug - AnyCPU - {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} - Library - Properties - Artemis.Plugins.LayerBrushes.Color - Artemis.Plugins.LayerBrushes.Color - v4.7.2 - 512 - true + netcoreapp3.1 false - - - + Artemis.Plugins.LayerBrushes.Color + Artemis + Copyright © Robert Beekman - 2019 + MinimumRecommendedRules.ruleset + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 7 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 7.3 - prompt - MinimumRecommendedRules.ruleset - - ..\packages\MaterialDesignThemes.2.6.0\lib\net45\MaterialDesignThemes.Wpf.dll - False - - - - - False - ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll - False - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - ..\packages\Stylet.1.3.1\lib\net45\Stylet.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - - - - - - - - - - - {9b811f9b-86b9-4771-87af-72bae7078a36} - Artemis.Core - False - - - {adb357e6-151d-4d0d-87cb-68fd0bc29812} - Artemis.UI.Shared - - - - - PreserveNewest - - - - echo Copying plugin to Artemis.UI output directory -XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Color/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.LayerBrushes.Color/Properties/AssemblyInfo.cs index bdee98c07..a3ad5f4f3 100644 --- a/src/Artemis.Plugins.LayerBrushes.Color/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.LayerBrushes.Color/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.LayerBrushes.Color")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis")] -[assembly: AssemblyCopyright("Copyright © Robert Beekman - 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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("0f288a66-6eb0-4589-8595-e33a3a3eaea2")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Color/packages.config b/src/Artemis.Plugins.LayerBrushes.Color/packages.config deleted file mode 100644 index ad8cefb67..000000000 --- a/src/Artemis.Plugins.LayerBrushes.Color/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Color/plugin.json b/src/Artemis.Plugins.LayerBrushes.Color/plugin.json index 72b94b411..09791069e 100644 --- a/src/Artemis.Plugins.LayerBrushes.Color/plugin.json +++ b/src/Artemis.Plugins.LayerBrushes.Color/plugin.json @@ -1,10 +1,6 @@ { "Guid": "92a9d6ba-6f7a-4937-94d5-c1d715b4141a", "Name": "Color layer brush", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.LayerBrushes.Color.dll" } \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Noise/Artemis.Plugins.LayerBrushes.Noise.csproj b/src/Artemis.Plugins.LayerBrushes.Noise/Artemis.Plugins.LayerBrushes.Noise.csproj index 1dd8085d2..6572acd4b 100644 --- a/src/Artemis.Plugins.LayerBrushes.Noise/Artemis.Plugins.LayerBrushes.Noise.csproj +++ b/src/Artemis.Plugins.LayerBrushes.Noise/Artemis.Plugins.LayerBrushes.Noise.csproj @@ -1,128 +1,40 @@ - - - + - Debug - AnyCPU - {7F4C7AB0-4C9B-452D-AFED-34544C903DEF} - Library - Properties - Artemis.Plugins.LayerBrushes.Noise - Artemis.Plugins.LayerBrushes.Noise - v4.7.2 - 512 - true + netcoreapp3.1 false - - - + Artemis.Plugins.LayerBrushes.Noise + Artemis.Plugins.LayerBrushes.Noise + Copyright © 2019 + MinimumRecommendedRules.ruleset + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 7 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 7.3 - prompt - MinimumRecommendedRules.ruleset - - ..\packages\MaterialDesignColors.1.2.0\lib\net45\MaterialDesignColors.dll - False - - - ..\packages\MaterialDesignThemes.2.6.0\lib\net45\MaterialDesignThemes.Wpf.dll - False - - - - - False - ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll - False - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - ..\packages\Stylet.1.3.1\lib\net45\Stylet.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - False - - - - - - - - - - - - - - - - - - - - {9b811f9b-86b9-4771-87af-72bae7078a36} - Artemis.Core - False - - - {adb357e6-151d-4d0d-87cb-68fd0bc29812} - Artemis.UI.Shared - - - - - PreserveNewest - - - - echo Copying plugin to Artemis.UI output directory -XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Noise/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.LayerBrushes.Noise/Properties/AssemblyInfo.cs index e02904abd..c730cc822 100644 --- a/src/Artemis.Plugins.LayerBrushes.Noise/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.LayerBrushes.Noise/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.LayerBrushes.Noise")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis.Plugins.LayerBrushes.Noise")] -[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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("7f4c7ab0-4c9b-452d-afed-34544c903def")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Noise/packages.config b/src/Artemis.Plugins.LayerBrushes.Noise/packages.config deleted file mode 100644 index ad8cefb67..000000000 --- a/src/Artemis.Plugins.LayerBrushes.Noise/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.Plugins.LayerBrushes.Noise/plugin.json b/src/Artemis.Plugins.LayerBrushes.Noise/plugin.json index 361bd77b4..d148030d1 100644 --- a/src/Artemis.Plugins.LayerBrushes.Noise/plugin.json +++ b/src/Artemis.Plugins.LayerBrushes.Noise/plugin.json @@ -1,10 +1,6 @@ { "Guid": "61cbbf01-8d69-4ede-a972-f3f269da66d9", "Name": "Noise layer brush", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.LayerBrushes.Noise.dll" } \ No newline at end of file diff --git a/src/Artemis.Plugins.Modules.General/Artemis.Plugins.Modules.General.csproj b/src/Artemis.Plugins.Modules.General/Artemis.Plugins.Modules.General.csproj index 545478b81..7f1e54a5e 100644 --- a/src/Artemis.Plugins.Modules.General/Artemis.Plugins.Modules.General.csproj +++ b/src/Artemis.Plugins.Modules.General/Artemis.Plugins.Modules.General.csproj @@ -1,117 +1,47 @@ - - - + - Debug - AnyCPU - {E592F239-FAA0-4840-9C85-46E5867D06D5} - Library - Properties - Artemis.Plugins.Modules.General - Artemis.Plugins.Modules.General - v4.7.2 - 512 - true + netcoreapp3.1 false - - - + Artemis.Plugins.Modules.General + Artemis + Copyright © Robert Beekman - 2019 + MinimumRecommendedRules.ruleset + bin\$(Platform)\$(Configuration)\ - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 7 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 7.3 - prompt - MinimumRecommendedRules.ruleset - - - - False - ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - ..\packages\Stylet.1.3.1\lib\net45\Stylet.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - - - - - - - - - - - PreserveNewest - - - {9b811f9b-86b9-4771-87af-72bae7078a36} - Artemis.Core - False - - Designer MSBuild:Compile - - - - echo Copying plugin to Artemis.UI output directory - XCOPY "$(TargetDir.TrimEnd('\'))" "$(SolutionDir)\Artemis.UI\$(OutDir)Plugins\$(ProjectName)" /s /q /i /y - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.Plugins.Modules.General/Properties/AssemblyInfo.cs b/src/Artemis.Plugins.Modules.General/Properties/AssemblyInfo.cs index 2db588743..f9899c264 100644 --- a/src/Artemis.Plugins.Modules.General/Properties/AssemblyInfo.cs +++ b/src/Artemis.Plugins.Modules.General/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; 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.Modules.General")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis")] -[assembly: AssemblyCopyright("Copyright © Robert Beekman - 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. @@ -20,16 +8,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("e592f239-faa0-4840-9c85-46e5867d06d5")] - -// 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")] \ No newline at end of file diff --git a/src/Artemis.Plugins.Modules.General/packages.config b/src/Artemis.Plugins.Modules.General/packages.config deleted file mode 100644 index ad8cefb67..000000000 --- a/src/Artemis.Plugins.Modules.General/packages.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.Plugins.Modules.General/plugin.json b/src/Artemis.Plugins.Modules.General/plugin.json index bd33a88c6..256e5b80e 100644 --- a/src/Artemis.Plugins.Modules.General/plugin.json +++ b/src/Artemis.Plugins.Modules.General/plugin.json @@ -1,10 +1,6 @@ { "Guid": "0de2991a-d7b8-4f61-ae4e-6623849215b5", "Name": "General module", - "Version": { - "Major": 1, - "Minor": 0, - "Build": 0 - }, + "Version": "1.0.0.0", "Main": "Artemis.Plugins.Modules.General.dll" } \ No newline at end of file diff --git a/src/Artemis.Storage/Artemis.Storage.csproj b/src/Artemis.Storage/Artemis.Storage.csproj index 31e94738e..461e90836 100644 --- a/src/Artemis.Storage/Artemis.Storage.csproj +++ b/src/Artemis.Storage/Artemis.Storage.csproj @@ -1,12 +1,10 @@  - - net472 - x64 + netcoreapp3.1 + x64;AnyCPU 7 - + - - + \ No newline at end of file diff --git a/src/Artemis.Storage/Entities/Profile/LedEntity.cs b/src/Artemis.Storage/Entities/Profile/LedEntity.cs index 74fd2d5dd..1b09e9111 100644 --- a/src/Artemis.Storage/Entities/Profile/LedEntity.cs +++ b/src/Artemis.Storage/Entities/Profile/LedEntity.cs @@ -3,6 +3,6 @@ public class LedEntity { public string LedName { get; set; } - public int DeviceHash { get; set; } + public string DeviceIdentifier { get; set; } } } \ No newline at end of file diff --git a/src/Artemis.Storage/Entities/Surface/DeviceEntity.cs b/src/Artemis.Storage/Entities/Surface/DeviceEntity.cs index e49ab29d1..370aa8e45 100644 --- a/src/Artemis.Storage/Entities/Surface/DeviceEntity.cs +++ b/src/Artemis.Storage/Entities/Surface/DeviceEntity.cs @@ -4,9 +4,7 @@ namespace Artemis.Storage.Entities.Surface { public class DeviceEntity { - public Guid Id { get; set; } - - public int DeviceHashCode { get; set; } + public string DeviceIdentifier { get; set; } public double X { get; set; } public double Y { get; set; } public double Rotation { get; set; } diff --git a/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj b/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj index 85ed55959..2510fabe7 100644 --- a/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj +++ b/src/Artemis.UI.Shared/Artemis.UI.Shared.csproj @@ -1,137 +1,40 @@ - - - + - Debug - AnyCPU - {ADB357E6-151D-4D0D-87CB-68FD0BC29812} - library - Artemis.UI.Shared - Artemis.UI.Shared - v4.7.2 - 512 + netcoreapp3.1 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true false - - + Artemis.UI.Shared + HP Inc. + Artemis.UI.Shared + Copyright © HP Inc. 2019 + MinimumRecommendedRules.ruleset + 7.3 + bin\$(Platform)\$(Configuration)\ + true - true - bin\x64\Debug\ - DEBUG;TRACE full - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - bin\x64\Release\ - TRACE - true pdbonly - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - ..\packages\Humanizer.Core.2.7.9\lib\netstandard2.0\Humanizer.dll - - - ..\packages\MaterialDesignColors.1.2.2\lib\net45\MaterialDesignColors.dll - - - ..\packages\MaterialDesignThemes.3.0.1\lib\net45\MaterialDesignThemes.Wpf.dll - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - - - - - - - 4.0 - - - - + + + + + + - - DraggableFloat.xaml - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - ColorPicker.xaml - - - - + + + + + + + + + - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - \ No newline at end of file diff --git a/src/Artemis.UI.Shared/Properties/AssemblyInfo.cs b/src/Artemis.UI.Shared/Properties/AssemblyInfo.cs index 030e37330..6d2819a7a 100644 --- a/src/Artemis.UI.Shared/Properties/AssemblyInfo.cs +++ b/src/Artemis.UI.Shared/Properties/AssemblyInfo.cs @@ -2,18 +2,6 @@ using System.Runtime.InteropServices; using System.Windows; -// 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.UI.Shared")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("HP Inc.")] -[assembly: AssemblyProduct("Artemis.UI.Shared")] -[assembly: AssemblyCopyright("Copyright © HP Inc. 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. @@ -37,17 +25,3 @@ using System.Windows; //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) )] - - -// 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")] \ No newline at end of file diff --git a/src/Artemis.UI.Shared/packages.config b/src/Artemis.UI.Shared/packages.config deleted file mode 100644 index 545ceab0a..000000000 --- a/src/Artemis.UI.Shared/packages.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.UI/App.config b/src/Artemis.UI/App.config deleted file mode 100644 index e9fe61c5e..000000000 --- a/src/Artemis.UI/App.config +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index 28cb0952f..f30897f93 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -1,513 +1,64 @@ - - - - + - Debug - AnyCPU - {46B74153-77CF-4489-BDF9-D53FDB1F7ACB} WinExe - Artemis.UI - Artemis.UI - v4.7.2 - 512 + netcoreapp3.1 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 true - - - - - - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset + Artemis + Artemis + en-US + Adds third-party support for RGB keyboards to games. + Copyright © Robert Beekman - 2019 + 2.0.0.0 + 2.0.0.0 true + MinimumRecommendedRules.ruleset + bin\$(Platform)\$(Configuration)\ + true + + + + + + full - bin\x64\Release\ - TRACE - true pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - logo-512.ico + Resources\logo-512.ico + + + + + + + + + - - ..\packages\Castle.Core.4.4.0\lib\net45\Castle.Core.dll - - - ..\packages\FluentValidation.8.6.1\lib\net45\FluentValidation.dll - - - ..\packages\gong-wpf-dragdrop.2.2.0\lib\net47\GongSolutions.WPF.DragDrop.dll - - - ..\packages\Humanizer.Core.2.7.9\lib\netstandard2.0\Humanizer.dll - - - ..\packages\MaterialDesignColors.1.2.2\lib\net45\MaterialDesignColors.dll - - - ..\packages\MaterialDesignExtensions.3.0.0\lib\net45\MaterialDesignExtensions.dll - - - ..\packages\MaterialDesignThemes.3.0.1\lib\net45\MaterialDesignThemes.Wpf.dll - - - - ..\packages\System.Windows.Interactivity.WPF.2.0.20525\lib\net40\Microsoft.Expression.Interactions.dll - - - ..\packages\Ninject.3.3.4\lib\net45\Ninject.dll - - - ..\packages\Ninject.Extensions.Conventions.3.3.0\lib\net45\Ninject.Extensions.Conventions.dll - - - ..\packages\Ninject.Extensions.Factory.3.3.2\lib\net45\Ninject.Extensions.Factory.dll - - - ..\packages\PropertyChanged.Fody.3.2.6\lib\net40\PropertyChanged.dll - - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Core.dll + False - False ..\..\..\RGB.NET\bin\net45\RGB.NET.Groups.dll + False - - ..\packages\Serilog.2.9.0\lib\net46\Serilog.dll - - - ..\packages\SkiaSharp.1.68.2-preview.29\lib\net45\SkiaSharp.dll - - - ..\packages\SkiaSharp.Views.Desktop.Common.1.68.2-preview.29\lib\net45\SkiaSharp.Views.Desktop.Common.dll - - - ..\packages\SkiaSharp.Views.WPF.1.68.2-preview.29\lib\net45\SkiaSharp.Views.WPF.dll - - - ..\packages\Stylet.1.3.1\lib\net45\Stylet.dll - - - - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll - - - ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - - - - - - ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - - ..\packages\System.Windows.Interactivity.WPF.2.0.20525\lib\net40\System.Windows.Interactivity.dll - - - - - 4.0 - - - - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - - - - - True - True - Resources.resx - - - - LayerPropertiesView.xaml - - - - - BrushPropertyInputView.xaml - - - - EnumPropertyInputView.xaml - - - - - - - SKColorPropertyInputView.xaml - - - - - - - - - - - - - - - - ProfileLayerView.xaml - - - - - SelectionRemoveToolView.xaml - - - - SelectionToolView.xaml - - - - ViewpointMoveToolView.xaml - - - - - LayerShapeControl.xaml - - - - SidebarView.xaml - - - - - - - - - - - - - - - - - - - ProfileElementRenameView.xaml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - App.xaml - Code - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - Code - - - True - Settings.settings - True - - + ResXFileCodeGenerator Designer Resources.Designer.cs - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - Designer - - - - - {9b811f9b-86b9-4771-87af-72bae7078a36} - Artemis.Core - - - {adb357e6-151d-4d0d-87cb-68fd0bc29812} - Artemis.UI.Shared - + + @@ -518,9 +69,6 @@ - - - @@ -554,42 +102,185 @@ - - - false - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + \ No newline at end of file diff --git a/src/Artemis.UI/Behaviors/TreeViewSelectionBehavior.cs b/src/Artemis.UI/Behaviors/TreeViewSelectionBehavior.cs index 2c05e51bd..f2e333196 100644 --- a/src/Artemis.UI/Behaviors/TreeViewSelectionBehavior.cs +++ b/src/Artemis.UI/Behaviors/TreeViewSelectionBehavior.cs @@ -1,7 +1,7 @@ using System.Collections.Specialized; using System.Windows; using System.Windows.Controls; -using System.Windows.Interactivity; +using Microsoft.Xaml.Behaviors; namespace Artemis.UI.Behaviors { diff --git a/src/Artemis.UI/Converters/ColorToDrawingColorConverter.cs b/src/Artemis.UI/Converters/ColorToDrawingColorConverter.cs deleted file mode 100644 index 4299912ab..000000000 --- a/src/Artemis.UI/Converters/ColorToDrawingColorConverter.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Drawing; -using System.Globalization; -using System.Windows.Data; - -namespace Artemis.UI.Converters -{ - /// - /// - /// Converts into . - /// - [ValueConversion(typeof(Color), typeof(System.Windows.Media.Color))] - public class ColorToDrawingColorConverter : IValueConverter - { - /// - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is Color drawingColor) - return System.Windows.Media.Color.FromArgb(drawingColor.A, drawingColor.R, drawingColor.G, drawingColor.B); - - return default(System.Windows.Media.Color); - } - - /// - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is System.Windows.Media.Color mediaColor) - return Color.FromArgb(mediaColor.A, mediaColor.R, mediaColor.G, mediaColor.B); - - return default(Color); - } - } -} \ No newline at end of file diff --git a/src/Artemis.UI/Properties/AssemblyInfo.cs b/src/Artemis.UI/Properties/AssemblyInfo.cs index bd367b9b2..d91c912d5 100644 --- a/src/Artemis.UI/Properties/AssemblyInfo.cs +++ b/src/Artemis.UI/Properties/AssemblyInfo.cs @@ -3,18 +3,6 @@ using System.Resources; using System.Runtime.InteropServices; using System.Windows; -// 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")] -[assembly: AssemblyDescription("Adds third-party support for RGB keyboards to games.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Artemis")] -[assembly: AssemblyCopyright("Copyright © Robert Beekman - 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. @@ -38,18 +26,3 @@ using System.Windows; //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) )] - - -// 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("2.0.0.0")] -[assembly: AssemblyFileVersion("2.0.0.0")] -[assembly: NeutralResourcesLanguage("en-US")] \ No newline at end of file diff --git a/src/Artemis.UI/Properties/Resources.Designer.cs b/src/Artemis.UI/Properties/Resources.Designer.cs index 39c8ffdae..a0fb0a67b 100644 --- a/src/Artemis.UI/Properties/Resources.Designer.cs +++ b/src/Artemis.UI/Properties/Resources.Designer.cs @@ -200,16 +200,6 @@ namespace Artemis.UI.Properties { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap logo_512 { - get { - object obj = ResourceManager.GetObject("logo_512", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/src/Artemis.UI/Properties/Resources.resx b/src/Artemis.UI/Properties/Resources.resx index e75834b49..d1c0b5941 100644 --- a/src/Artemis.UI/Properties/Resources.resx +++ b/src/Artemis.UI/Properties/Resources.resx @@ -160,9 +160,6 @@ ..\Resources\bow.svg;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\logo-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\RobotoMono-Regular.ttf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 diff --git a/src/Artemis.UI/SDK bug b/src/Artemis.UI/SDK bug deleted file mode 100644 index cbf620a34..000000000 --- a/src/Artemis.UI/SDK bug +++ /dev/null @@ -1,50 +0,0 @@ -Ok so with the following code: - -```cpp -bool errorCheck(const std::string &msg) { - auto error = CorsairGetLastError(); - if (error != CorsairError::CE_Success) { - std::cerr << msg << " (Error: " << toString(error) << ')' << std::endl; - return true; - } - - return false; -} - -int main(int argc, char *argv[]) -{ - CorsairPerformProtocolHandshake(); - if (errorCheck("Handshake error")) { - getchar(); - return -1; - } - - const auto devicesCount = CorsairGetDeviceCount(); - for (int i = 0; i < devicesCount; ++i) { - const auto info = CorsairGetDeviceInfo(i); - if (!info) { - errorCheck("Get device info error"); - continue; - } - - std::cout << "Model: " << info->model << "Logical layout: " << info->logicalLayout << std::endl; - } - - getchar(); - return 0; -} -``` - -I'm getting this output, which is as expected: -``` -Model: K95 RGB PLATINUMLogical layout: 13 -``` - -Then when I put the PC to full stand-by and wake it up again the code returns the following: -``` -Model: K95 RGB PLATINUMLogical layout: 0 -``` - -Windows 10 Home 1903 -iCUE v. 3.22.74 -SDK: 3.0.301 \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/LayerProperties/LayerPropertiesViewModel.cs b/src/Artemis.UI/Screens/Module/ProfileEditor/LayerProperties/LayerPropertiesViewModel.cs index 4a1d2ca94..151b207a4 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/LayerProperties/LayerPropertiesViewModel.cs +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/LayerProperties/LayerPropertiesViewModel.cs @@ -43,7 +43,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.LayerProperties PropertyTimeline = propertyTimelineVmFactory.Create(this); PopulateProperties(_profileEditorService.SelectedProfileElement, null); - _profileEditorService.SelectedProfileElementChanged += (sender, args) => PopulateProperties(args.ProfileElement, args.PreviousProfileElement); + _profileEditorService.ProfileElementSelected += (sender, args) => PopulateProperties(args.ProfileElement, args.PreviousProfileElement); _profileEditorService.CurrentTimeChanged += ProfileEditorServiceOnCurrentTimeChanged; } diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeView.xaml b/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeView.xaml index 49f05863a..7bc5e82cc 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeView.xaml +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeView.xaml @@ -6,10 +6,10 @@ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:s="https://github.com/canton7/Stylet" xmlns:dd="urn:gong-wpf-dragdrop" - xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:profileTree="clr-namespace:Artemis.UI.Screens.Module.ProfileEditor.ProfileTree" xmlns:treeItem="clr-namespace:Artemis.UI.Screens.Module.ProfileEditor.ProfileTree.TreeItem" xmlns:behaviors="clr-namespace:Artemis.UI.Behaviors" + xmlns:b="http://schemas.microsoft.com/xaml/behaviors" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance {x:Type profileTree:ProfileTreeViewModel}}"> @@ -32,9 +32,9 @@ dd:DragDrop.IsDragSource="True" dd:DragDrop.IsDropTarget="True" dd:DragDrop.DropHandler="{Binding}"> - + - + diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeViewModel.cs b/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeViewModel.cs index 484701d94..8bd77cedf 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeViewModel.cs +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/ProfileTree/ProfileTreeViewModel.cs @@ -22,8 +22,8 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.ProfileTree _folderVmFactory = folderVmFactory; CreateRootFolderViewModel(); - _profileEditorService.SelectedProfileChanged += OnSelectedProfileChanged; - _profileEditorService.SelectedProfileElementChanged += OnSelectedElementChanged; + _profileEditorService.ProfileSelected += OnProfileSelected; + _profileEditorService.ProfileElementSelected += OnProfileElementSelected; } public FolderViewModel RootFolder { get; set; } @@ -137,7 +137,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.ProfileTree #region Event handlers - private void OnSelectedElementChanged(object sender, EventArgs e) + private void OnProfileElementSelected(object sender, EventArgs e) { if (_profileEditorService.SelectedProfileElement == SelectedTreeItem?.ProfileElement) return; @@ -161,7 +161,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.ProfileTree } } - private void OnSelectedProfileChanged(object sender, EventArgs e) + private void OnProfileSelected(object sender, EventArgs e) { CreateRootFolderViewModel(); } diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileLayerViewModel.cs b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileLayerViewModel.cs index 39697831f..4def7f477 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileLayerViewModel.cs +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileLayerViewModel.cs @@ -26,7 +26,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization Update(); Layer.RenderPropertiesUpdated += LayerOnRenderPropertiesUpdated; - _profileEditorService.SelectedProfileElementChanged += OnSelectedProfileElementChanged; + _profileEditorService.ProfileElementSelected += OnProfileElementSelected; _profileEditorService.SelectedProfileElementUpdated += OnSelectedProfileElementUpdated; _profileEditorService.ProfilePreviewUpdated += ProfileEditorServiceOnProfilePreviewUpdated; } @@ -42,7 +42,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization public void Dispose() { Layer.RenderPropertiesUpdated -= LayerOnRenderPropertiesUpdated; - _profileEditorService.SelectedProfileElementChanged -= OnSelectedProfileElementChanged; + _profileEditorService.ProfileElementSelected -= OnProfileElementSelected; _profileEditorService.SelectedProfileElementUpdated -= OnSelectedProfileElementUpdated; _profileEditorService.ProfilePreviewUpdated -= ProfileEditorServiceOnProfilePreviewUpdated; } @@ -186,7 +186,7 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization Update(); } - private void OnSelectedProfileElementChanged(object sender, EventArgs e) + private void OnProfileElementSelected(object sender, EventArgs e) { IsSelected = _profileEditorService.SelectedProfileElement == Layer; } diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileViewModel.cs b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileViewModel.cs index 8f01eae1c..3c2e20506 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileViewModel.cs +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/ProfileViewModel.cs @@ -57,8 +57,8 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization CreateUpdateTrigger(); ActivateToolByIndex(0); - _profileEditorService.SelectedProfileChanged += OnSelectedProfileChanged; - _profileEditorService.SelectedProfileElementChanged += OnSelectedProfileElementChanged; + _profileEditorService.ProfileSelected += OnProfileSelected; + _profileEditorService.ProfileElementSelected += OnProfileElementSelected; _profileEditorService.SelectedProfileElementUpdated += OnSelectedProfileElementUpdated; eventAggregator.Subscribe(this); } @@ -151,10 +151,10 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization _updateTrigger = new TimerUpdateTrigger {UpdateFrequency = 1.0 / targetFps}; _updateTrigger.Update += UpdateLeds; - _surfaceService.ActiveSurfaceConfigurationChanged += OnActiveSurfaceConfigurationChanged; + _surfaceService.ActiveSurfaceConfigurationSelected += OnActiveSurfaceConfigurationSelected; } - private void OnActiveSurfaceConfigurationChanged(object sender, SurfaceConfigurationEventArgs e) + private void OnActiveSurfaceConfigurationSelected(object sender, SurfaceConfigurationEventArgs e) { ApplySurfaceConfiguration(e.Surface); } @@ -349,12 +349,12 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization UpdateLedsDimStatus(); } - private void OnSelectedProfileChanged(object sender, EventArgs e) + private void OnProfileSelected(object sender, EventArgs e) { ApplyActiveProfile(); } - private void OnSelectedProfileElementChanged(object sender, EventArgs e) + private void OnProfileElementSelected(object sender, EventArgs e) { UpdateLedsDimStatus(); CanApplyToLayer = _profileEditorService.SelectedProfileElement is Layer; diff --git a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/Tools/EditToolViewModel.cs b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/Tools/EditToolViewModel.cs index 828bf59c2..5a75152e8 100644 --- a/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/Tools/EditToolViewModel.cs +++ b/src/Artemis.UI/Screens/Module/ProfileEditor/Visualization/Tools/EditToolViewModel.cs @@ -25,8 +25,8 @@ namespace Artemis.UI.Screens.Module.ProfileEditor.Visualization.Tools Cursor = Cursors.Arrow; Update(); - profileEditorService.SelectedProfileChanged += (sender, args) => Update(); - profileEditorService.SelectedProfileElementChanged += (sender, args) => Update(); + profileEditorService.ProfileSelected += (sender, args) => Update(); + profileEditorService.ProfileElementSelected += (sender, args) => Update(); profileEditorService.SelectedProfileElementUpdated += (sender, args) => Update(); profileEditorService.ProfilePreviewUpdated += (sender, args) => Update(); } diff --git a/src/Artemis.UI/Screens/Settings/Debug/DebugViewModel.cs b/src/Artemis.UI/Screens/Settings/Debug/DebugViewModel.cs index ffe2b9329..2b348789a 100644 --- a/src/Artemis.UI/Screens/Settings/Debug/DebugViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Debug/DebugViewModel.cs @@ -22,7 +22,7 @@ namespace Artemis.UI.Screens.Settings.Debug _rgbService = rgbService; surfaceService.SurfaceConfigurationUpdated += (sender, args) => Execute.PostToUIThread(() => CurrentFrame = null); - surfaceService.ActiveSurfaceConfigurationChanged += (sender, args) => Execute.PostToUIThread(() => CurrentFrame = null); + surfaceService.ActiveSurfaceConfigurationSelected += (sender, args) => Execute.PostToUIThread(() => CurrentFrame = null); } public ImageSource CurrentFrame { get; set; } diff --git a/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs index 06c247d1e..988ba4cb6 100644 --- a/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs @@ -28,7 +28,6 @@ namespace Artemis.UI.Screens.Settings private readonly ISettingsService _settingsService; private readonly ISurfaceService _surfaceService; private readonly IWindowManager _windowManager; - private object _test; public SettingsViewModel(IKernel kernel, ISurfaceService surfaceService, diff --git a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceLedViewModel.cs b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceLedViewModel.cs index 668626e8f..74f261fc9 100644 --- a/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceLedViewModel.cs +++ b/src/Artemis.UI/Screens/SurfaceEditor/Visualization/SurfaceLedViewModel.cs @@ -11,7 +11,7 @@ namespace Artemis.UI.Screens.SurfaceEditor.Visualization Led = led; ApplyLedToViewModel(); - Led.PropertyChanged += OnLedOnPropertyChanged; + Led.PropertyChanged += ApplyViewModelOnLedChange; } public Led Led { get; set; } @@ -30,7 +30,7 @@ namespace Artemis.UI.Screens.SurfaceEditor.Visualization Height = Led.ActualSize.Height; } - private void OnLedOnPropertyChanged(object sender, PropertyChangedEventArgs args) + private void ApplyViewModelOnLedChange(object sender, PropertyChangedEventArgs args) { if (args.PropertyName == "Location" || args.PropertyName == "ActualSize") ApplyLedToViewModel(); } diff --git a/src/Artemis.UI/Services/Interfaces/IProfileEditorService.cs b/src/Artemis.UI/Services/Interfaces/IProfileEditorService.cs index 01d389a45..453979079 100644 --- a/src/Artemis.UI/Services/Interfaces/IProfileEditorService.cs +++ b/src/Artemis.UI/Services/Interfaces/IProfileEditorService.cs @@ -22,7 +22,7 @@ namespace Artemis.UI.Services.Interfaces /// /// Occurs when a new profile is selected /// - event EventHandler SelectedProfileChanged; + event EventHandler ProfileSelected; /// /// Occurs then the currently selected profile is updated @@ -32,7 +32,7 @@ namespace Artemis.UI.Services.Interfaces /// /// Occurs when a new profile element is selected /// - event EventHandler SelectedProfileElementChanged; + event EventHandler ProfileElementSelected; /// /// Occurs when the currently selected profile element is updated diff --git a/src/Artemis.UI/Services/ProfileEditorService.cs b/src/Artemis.UI/Services/ProfileEditorService.cs index e9e6262f9..f552f8ac2 100644 --- a/src/Artemis.UI/Services/ProfileEditorService.cs +++ b/src/Artemis.UI/Services/ProfileEditorService.cs @@ -125,9 +125,9 @@ namespace Artemis.UI.Services UpdateProfilePreview(); } - public event EventHandler SelectedProfileChanged; + public event EventHandler ProfileSelected; public event EventHandler SelectedProfileUpdated; - public event EventHandler SelectedProfileElementChanged; + public event EventHandler ProfileElementSelected; public event EventHandler SelectedProfileElementUpdated; public event EventHandler CurrentTimeChanged; public event EventHandler ProfilePreviewUpdated; @@ -144,7 +144,7 @@ namespace Artemis.UI.Services protected virtual void OnSelectedProfileChanged(ProfileElementEventArgs e) { - SelectedProfileChanged?.Invoke(this, e); + ProfileSelected?.Invoke(this, e); } protected virtual void OnSelectedProfileUpdated(ProfileElementEventArgs e) @@ -154,7 +154,7 @@ namespace Artemis.UI.Services protected virtual void OnSelectedProfileElementChanged(ProfileElementEventArgs e) { - SelectedProfileElementChanged?.Invoke(this, e); + ProfileElementSelected?.Invoke(this, e); } protected virtual void OnSelectedProfileElementUpdated(ProfileElementEventArgs e) diff --git a/src/Artemis.UI/logo-512.ico b/src/Artemis.UI/logo-512.ico deleted file mode 100644 index 015d1ffa8531e7e0a01ff368edb15cec40428223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112887 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 O3_AG^`RsI+)ZYP5w$HZ! diff --git a/src/Artemis.UI/packages.config b/src/Artemis.UI/packages.config deleted file mode 100644 index 903d94bda..000000000 --- a/src/Artemis.UI/packages.config +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.UI/packages.config.new.20190410002817 b/src/Artemis.UI/packages.config.new.20190410002817 deleted file mode 100644 index 92f751e98..000000000 --- a/src/Artemis.UI/packages.config.new.20190410002817 +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Artemis.sln b/src/Artemis.sln index 0c35a0086..ced090c6d 100644 --- a/src/Artemis.sln +++ b/src/Artemis.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28729.10 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI", "Artemis.UI\Artemis.UI.csproj", "{46B74153-77CF-4489-BDF9-D53FDB1F7ACB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI", "Artemis.UI\Artemis.UI.csproj", "{46B74153-77CF-4489-BDF9-D53FDB1F7ACB}" ProjectSection(ProjectDependencies) = postProject {E592F239-FAA0-4840-9C85-46E5867D06D5} = {E592F239-FAA0-4840-9C85-46E5867D06D5} {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} = {0F288A66-6EB0-4589-8595-E33A3A3EAEA2} @@ -15,70 +15,112 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI", "Artemis.UI\Ar EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Storage", "Artemis.Storage\Artemis.Storage.csproj", "{E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Core", "Artemis.Core\Artemis.Core.csproj", "{9B811F9B-86B9-4771-87AF-72BAE7078A36}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Core", "Artemis.Core\Artemis.Core.csproj", "{9B811F9B-86B9-4771-87AF-72BAE7078A36}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{E830A02B-A7E5-4A6B-943F-76B0A542630C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.Modules.General", "Artemis.Plugins.Modules.General\Artemis.Plugins.Modules.General.csproj", "{E592F239-FAA0-4840-9C85-46E5867D06D5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.Modules.General", "Artemis.Plugins.Modules.General\Artemis.Plugins.Modules.General.csproj", "{E592F239-FAA0-4840-9C85-46E5867D06D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.LayerBrushes.Color", "Artemis.Plugins.LayerBrushes.Color\Artemis.Plugins.LayerBrushes.Color.csproj", "{0F288A66-6EB0-4589-8595-E33A3A3EAEA2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.LayerBrushes.Color", "Artemis.Plugins.LayerBrushes.Color\Artemis.Plugins.LayerBrushes.Color.csproj", "{0F288A66-6EB0-4589-8595-E33A3A3EAEA2}" 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}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "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}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.Devices.Logitech", "Artemis.Plugins.Devices.Logitech\Artemis.Plugins.Devices.Logitech.csproj", "{235A45C7-24AD-4F47-B9D4-CD67E610A04D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.LayerBrushes.Noise", "Artemis.Plugins.LayerBrushes.Noise\Artemis.Plugins.LayerBrushes.Noise.csproj", "{7F4C7AB0-4C9B-452D-AFED-34544C903DEF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.LayerBrushes.Noise", "Artemis.Plugins.LayerBrushes.Noise\Artemis.Plugins.LayerBrushes.Noise.csproj", "{7F4C7AB0-4C9B-452D-AFED-34544C903DEF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.UI.Shared", "Artemis.UI.Shared\Artemis.UI.Shared.csproj", "{ADB357E6-151D-4D0D-87CB-68FD0BC29812}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.UI.Shared", "Artemis.UI.Shared\Artemis.UI.Shared.csproj", "{ADB357E6-151D-4D0D-87CB-68FD0BC29812}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artemis.Plugins.Devices.Wooting", "Artemis.Plugins.Devices.Wooting\Artemis.Plugins.Devices.Wooting.csproj", "{C6BDB6D9-062D-4C28-A280-F3BD6197F07F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Artemis.Plugins.Devices.Wooting", "Artemis.Plugins.Devices.Wooting\Artemis.Plugins.Devices.Wooting.csproj", "{C6BDB6D9-062D-4C28-A280-F3BD6197F07F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|x64.ActiveCfg = Debug|x64 - {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|x64.Build.0 = Debug|x64 - {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|x64.ActiveCfg = Release|x64 - {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|x64.Build.0 = Release|x64 + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|x64.ActiveCfg = Debug|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|x64.Build.0 = Debug|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|Any CPU.Build.0 = Release|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|x64.ActiveCfg = Release|Any CPU + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|x64.Build.0 = Release|Any CPU + {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Debug|Any CPU.Build.0 = Debug|Any CPU {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Debug|x64.ActiveCfg = Debug|x64 {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Debug|x64.Build.0 = Debug|x64 + {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Release|Any CPU.Build.0 = Release|Any CPU {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Release|x64.ActiveCfg = Release|x64 {E489E5E3-1A65-4AF5-A1EA-F9805FD19A65}.Release|x64.Build.0 = Release|x64 - {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|x64.ActiveCfg = Debug|x64 - {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|x64.Build.0 = Debug|x64 - {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|x64.ActiveCfg = Release|x64 - {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|x64.Build.0 = Release|x64 - {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|x64.ActiveCfg = Debug|x64 - {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|x64.Build.0 = Debug|x64 - {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|x64.ActiveCfg = Release|x64 - {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|x64.Build.0 = Release|x64 - {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|x64.ActiveCfg = Debug|x64 - {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|x64.Build.0 = Debug|x64 - {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|x64.ActiveCfg = Release|x64 - {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|x64.Build.0 = Release|x64 - {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|x64.ActiveCfg = Debug|x64 - {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|x64.Build.0 = Debug|x64 - {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|x64.ActiveCfg = Release|x64 - {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|x64.Build.0 = Release|x64 - {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|x64.ActiveCfg = Debug|x64 - {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Debug|x64.Build.0 = Debug|x64 - {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|x64.ActiveCfg = Release|x64 - {235A45C7-24AD-4F47-B9D4-CD67E610A04D}.Release|x64.Build.0 = Release|x64 - {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|x64.ActiveCfg = Debug|x64 - {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|x64.Build.0 = Debug|x64 - {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|x64.ActiveCfg = Release|x64 - {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|x64.Build.0 = Release|x64 - {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|x64.ActiveCfg = Debug|x64 - {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|x64.Build.0 = Debug|x64 - {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|x64.ActiveCfg = Release|x64 - {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|x64.Build.0 = Release|x64 - {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|x64.ActiveCfg = Debug|x64 - {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|x64.Build.0 = Debug|x64 - {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|x64.ActiveCfg = Release|x64 - {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|x64.Build.0 = Release|x64 + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|x64.ActiveCfg = Debug|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|x64.Build.0 = Debug|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|Any CPU.Build.0 = Release|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|x64.ActiveCfg = Release|Any CPU + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|x64.Build.0 = Release|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|x64.ActiveCfg = Debug|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Debug|x64.Build.0 = Debug|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|Any CPU.Build.0 = Release|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|x64.ActiveCfg = Release|Any CPU + {E592F239-FAA0-4840-9C85-46E5867D06D5}.Release|x64.Build.0 = Release|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|x64.ActiveCfg = Debug|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Debug|x64.Build.0 = Debug|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|Any CPU.Build.0 = Release|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|x64.ActiveCfg = Release|Any CPU + {0F288A66-6EB0-4589-8595-E33A3A3EAEA2}.Release|x64.Build.0 = Release|Any CPU + {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|x64.ActiveCfg = Debug|Any CPU + {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Debug|x64.Build.0 = Debug|Any CPU + {A779B2F8-C253-4C4B-8634-6EB8F594E96D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {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 + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|x64.ActiveCfg = Debug|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Debug|x64.Build.0 = Debug|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|Any CPU.Build.0 = Release|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|x64.ActiveCfg = Release|Any CPU + {7F4C7AB0-4C9B-452D-AFED-34544C903DEF}.Release|x64.Build.0 = Release|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|x64.ActiveCfg = Debug|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Debug|x64.Build.0 = Debug|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|Any CPU.Build.0 = Release|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|x64.ActiveCfg = Release|Any CPU + {ADB357E6-151D-4D0D-87CB-68FD0BC29812}.Release|x64.Build.0 = Release|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|x64.ActiveCfg = Debug|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Debug|x64.Build.0 = Debug|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|Any CPU.Build.0 = Release|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|x64.ActiveCfg = Release|Any CPU + {C6BDB6D9-062D-4C28-A280-F3BD6197F07F}.Release|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE