namespace Artemis.Core.Providers; public class CustomPathLayoutProvider : ILayoutProvider { public static string LayoutType = "CustomPath"; /// public ArtemisLayout? GetDeviceLayout(ArtemisDevice device) { if (device.LayoutSelection.Parameter == null) return null; return new ArtemisLayout(device.LayoutSelection.Parameter); } /// public void ApplyLayout(ArtemisDevice device, ArtemisLayout layout) { device.ApplyLayout(layout, device.DeviceProvider.CreateMissingLedsSupported, device.DeviceProvider.RemoveExcessiveLedsSupported); } /// public bool IsMatch(ArtemisDevice device) { return device.LayoutSelection.Type == LayoutType; } /// /// Configures the provided device to use this layout provider. /// /// The device to apply the provider to. /// The path to the custom layout. public void ConfigureDevice(ArtemisDevice device, string? path) { device.LayoutSelection.Type = LayoutType; device.LayoutSelection.Parameter = path; } }