Devices - Added option to disable devices

This commit is contained in:
SpoinkyNL committed 2021-02-01 19:54:28 +01:00
1 parent 25dcb16964
commit bd6c93b292
14 files changed
+118 -52

No files matched your search

+1 -1
View File
@@ -570,7 +570,7 @@ namespace Artemis.Core
List<ArtemisLed> leds = new();
// Get the surface LEDs for this layer
List<ArtemisLed> availableLeds = surface.Devices.SelectMany(d => d.Leds).ToList();
List<ArtemisLed> availableLeds = surface.Devices.Where(d => d.IsEnabled).SelectMany(d => d.Leds).ToList();
foreach (LedEntity ledEntity in LayerEntity.Leds)
{
ArtemisLed? match = availableLeds.FirstOrDefault(a => a.Device.RgbDevice.GetDeviceIdentifier() == ledEntity.DeviceIdentifier &&
@@ -30,7 +30,8 @@ namespace Artemis.Core
RedScale = 1;
GreenScale = 1;
BlueScale = 1;
IsEnabled = true;
deviceProvider.DeviceLayoutPaths.TryGetValue(rgbDevice, out string? layoutPath);
LayoutPath = layoutPath;
@@ -213,6 +214,19 @@ namespace Artemis.Core
}
}
/// <summary>
/// Gets or sets a boolean indicating whether this devices is enabled or not
/// </summary>
public bool IsEnabled
{
get => DeviceEntity.IsEnabled;
set
{
DeviceEntity.IsEnabled = value;
OnPropertyChanged(nameof(IsEnabled));
}
}
/// <summary>
/// Gets the path to where the layout of the device was (attempted to be) loaded from
/// </summary>
@@ -98,7 +98,7 @@ namespace Artemis.Core
internal void UpdateLedMap()
{
LedMap = new ReadOnlyDictionary<Led, ArtemisLed>(
_devices.SelectMany(d => d.Leds.Select(al => new KeyValuePair<Led, ArtemisLed>(al.RgbLed, al))).ToDictionary(kvp => kvp.Key, kvp => kvp.Value)
_devices.Where(d => d.IsEnabled).SelectMany(d => d.Leds.Select(al => new KeyValuePair<Led, ArtemisLed>(al.RgbLed, al))).ToDictionary(kvp => kvp.Key, kvp => kvp.Value)
);
}
+2 -2
View File
@@ -117,7 +117,7 @@ namespace Artemis.Core.Services
{
// Apply the application wide brush and decorator
BitmapBrush = new BitmapBrush(new Scale(_renderScaleSetting.Value), _sampleSizeSetting);
_surfaceLedGroup = new ListLedGroup(Surface.Leds) {Brush = BitmapBrush};
_surfaceLedGroup = new ListLedGroup(artemisSurface.LedMap.Select(l => l.Key)) {Brush = BitmapBrush};
return;
}
@@ -129,7 +129,7 @@ namespace Artemis.Core.Services
// Apply the application wide brush and decorator
BitmapBrush.Scale = new Scale(_renderScaleSetting.Value);
BitmapBrush.Surface = artemisSurface;
_surfaceLedGroup = new ListLedGroup(Surface.Leds) {Brush = BitmapBrush};
_surfaceLedGroup = new ListLedGroup(artemisSurface.LedMap.Select(l => l.Key)) {Brush = BitmapBrush};
}
}