diff --git a/src/Artemis.Core/Artemis.Core.csproj b/src/Artemis.Core/Artemis.Core.csproj index 7cecd25e8..80447262a 100644 --- a/src/Artemis.Core/Artemis.Core.csproj +++ b/src/Artemis.Core/Artemis.Core.csproj @@ -32,6 +32,24 @@ prompt 4 + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + ..\packages\Castle.Core.4.2.1\lib\net45\Castle.Core.dll @@ -252,6 +270,7 @@ + diff --git a/src/Artemis.Core/Plugins/Interfaces/ILayerTypeConfiguration.cs b/src/Artemis.Core/Plugins/Interfaces/ILayerTypeConfiguration.cs new file mode 100644 index 000000000..5aec9edad --- /dev/null +++ b/src/Artemis.Core/Plugins/Interfaces/ILayerTypeConfiguration.cs @@ -0,0 +1,7 @@ +namespace Artemis.Core.Plugins.Interfaces +{ + public interface ILayerTypeConfiguration + { + + } +} \ No newline at end of file diff --git a/src/Artemis.Core/ProfileElements/Layer.cs b/src/Artemis.Core/ProfileElements/Layer.cs index 7cd75b832..6ea7f138d 100644 --- a/src/Artemis.Core/ProfileElements/Layer.cs +++ b/src/Artemis.Core/ProfileElements/Layer.cs @@ -18,6 +18,7 @@ namespace Artemis.Core.ProfileElements public Profile Profile { get; } public ILayerType LayerType { get; private set; } + public ILayerTypeConfiguration LayerTypeConfiguration { get; set; } public List Children { get; set; } public int Order { get; set; } public string Name { get; set; } diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index 32e599d65..5cf158829 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -3,17 +3,14 @@ using System.Threading.Tasks; using Artemis.Core.Events; using Artemis.Core.Services.Interfaces; using RGB.NET.Core; -using RGB.NET.Devices.CoolerMaster; using RGB.NET.Devices.Corsair; -using RGB.NET.Devices.DMX; -using RGB.NET.Devices.Logitech; -using RGB.NET.Devices.Novation; -using RGB.NET.Devices.Razer; namespace Artemis.Core.Services { public class RgbService : IRgbService, IDisposable { + private readonly TimerUpdateTrigger _updateTrigger; + public RgbService() { Surface = RGBSurface.Instance; @@ -22,8 +19,8 @@ namespace Artemis.Core.Services // Let's throw these for now Surface.Exception += SurfaceOnException; - var updateTrigger = new TimerUpdateTrigger {UpdateFrequency = 1.0 / 30}; - Surface.RegisterUpdateTrigger(updateTrigger); + _updateTrigger = new TimerUpdateTrigger {UpdateFrequency = 1.0 / 30}; + Surface.RegisterUpdateTrigger(_updateTrigger); } /// @@ -42,13 +39,13 @@ namespace Artemis.Core.Services // TODO SpoinkyNL 8-1-18: Keep settings into account // This one doesn't work well without ASUS devices installed // Surface.LoadDevices(AsusDeviceProvider.Instance); - Surface.LoadDevices(CoolerMasterDeviceProvider.Instance); + // Surface.LoadDevices(CoolerMasterDeviceProvider.Instance); Surface.LoadDevices(CorsairDeviceProvider.Instance); - Surface.LoadDevices(DMXDeviceProvider.Instance); - Surface.LoadDevices(LogitechDeviceProvider.Instance); + // Surface.LoadDevices(DMXDeviceProvider.Instance); + // Surface.LoadDevices(LogitechDeviceProvider.Instance); // Surface.LoadDevices(MsiDeviceProvider.Instance); - Surface.LoadDevices(NovationDeviceProvider.Instance); - Surface.LoadDevices(RazerDeviceProvider.Instance); + // Surface.LoadDevices(NovationDeviceProvider.Instance); + // Surface.LoadDevices(RazerDeviceProvider.Instance); // TODO SpoinkyNL 8-1-18: Load alignment Surface.AlignDevices(); @@ -59,6 +56,9 @@ namespace Artemis.Core.Services public void Dispose() { + Surface.UnregisterUpdateTrigger(_updateTrigger); + + _updateTrigger.Dispose(); Surface.Dispose(); } diff --git a/src/Artemis.Plugins.BuiltIn/Artemis.Plugins.BuiltIn.csproj b/src/Artemis.Plugins.BuiltIn/Artemis.Plugins.BuiltIn.csproj index 66453b0bd..68ec145d8 100644 --- a/src/Artemis.Plugins.BuiltIn/Artemis.Plugins.BuiltIn.csproj +++ b/src/Artemis.Plugins.BuiltIn/Artemis.Plugins.BuiltIn.csproj @@ -32,6 +32,25 @@ prompt 4 + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + 5 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + ..\packages\HidSharp.1.5\lib\net35\HidSharp.dll @@ -92,6 +111,8 @@ + + diff --git a/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushConfiguration.cs b/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushConfiguration.cs new file mode 100644 index 000000000..5bf92678e --- /dev/null +++ b/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushConfiguration.cs @@ -0,0 +1,9 @@ +using Artemis.Core.Plugins.Interfaces; + +namespace Artemis.Plugins.BuiltIn.LayerTypes.Brush +{ + public class BrushConfiguration : ILayerTypeConfiguration + { + public System.Windows.Media.Brush Brush { get; set; } + } +} \ No newline at end of file diff --git a/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushLayerType.cs b/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushLayerType.cs new file mode 100644 index 000000000..fa5ea1305 --- /dev/null +++ b/src/Artemis.Plugins.BuiltIn/LayerTypes/Brush/BrushLayerType.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Artemis.Core.Plugins.Interfaces; +using Artemis.Core.ProfileElements; +using RGB.NET.Core; + +namespace Artemis.Plugins.BuiltIn.LayerTypes.Brush +{ + public class BrushLayerType : ILayerType + { + public void Dispose() + { + throw new NotImplementedException(); + } + + public void LoadPlugin() + { + throw new NotImplementedException(); + } + + public void Update(Layer layer) + { + var config = layer.LayerTypeConfiguration as BrushConfiguration; + if (config == null) + return; + + // Update the brush + } + + public void Render(Layer device, RGBSurface surface) + { + } + } +} diff --git a/src/Artemis.Storage/Artemis.Storage.csproj b/src/Artemis.Storage/Artemis.Storage.csproj index 68559c83e..8632cbe2e 100644 --- a/src/Artemis.Storage/Artemis.Storage.csproj +++ b/src/Artemis.Storage/Artemis.Storage.csproj @@ -2,6 +2,7 @@ net461 + AnyCPU;x64 diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index e8a3b86ad..fb58d2deb 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -36,6 +36,26 @@ 4 + + true + bin\x64\Debug\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + true + + + bin\x64\Release\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + true + ..\packages\Castle.Core.4.2.1\lib\net45\Castle.Core.dll diff --git a/src/Artemis.sln b/src/Artemis.sln index 73aaa67e8..33fc02c72 100644 --- a/src/Artemis.sln +++ b/src/Artemis.sln @@ -14,25 +14,43 @@ 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|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|x64 + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Debug|x64.Build.0 = Debug|x64 {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|x64 + {46B74153-77CF-4489-BDF9-D53FDB1F7ACB}.Release|x64.Build.0 = Release|x64 {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|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|x64 + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Debug|x64.Build.0 = Debug|x64 {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|x64 + {9B811F9B-86B9-4771-87AF-72BAE7078A36}.Release|x64.Build.0 = Release|x64 {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Debug|x64.ActiveCfg = Debug|x64 + {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Debug|x64.Build.0 = Debug|x64 {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Release|Any CPU.ActiveCfg = Release|Any CPU {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Release|Any CPU.Build.0 = Release|Any CPU + {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Release|x64.ActiveCfg = Release|x64 + {106F08AE-5FE8-433E-AA65-64E5219B5FC7}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE