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