diff --git a/Illumilib/IllumilibLighting.cs b/Illumilib/IllumilibLighting.cs index c36a152..bb0390d 100644 --- a/Illumilib/IllumilibLighting.cs +++ b/Illumilib/IllumilibLighting.cs @@ -47,7 +47,8 @@ namespace Illumilib { public static void Dispose() { if (!Initialized) return; - ForEach(s => s.Dispose()); + foreach (var system in systems) + system.Dispose(); systems = null; } @@ -58,7 +59,9 @@ namespace Illumilib { /// The color's green value, between 0 and 1 /// The color's blue value, between 0 and 1 public static void SetAllLighting(float r, float g, float b) { - ForEach(s => s.SetAllLighting(r, g, b)); + EnsureInitialized(); + foreach (var system in systems) + system.SetAllLighting(r, g, b); } /// @@ -68,7 +71,9 @@ namespace Illumilib { /// The color's green value, between 0 and 1 /// The color's blue value, between 0 and 1 public static void SetKeyboardLighting(float r, float g, float b) { - ForEach(s => s.SetKeyboardLighting(r, g, b)); + EnsureInitialized(); + foreach (var system in systems) + system.SetKeyboardLighting(r, g, b); } /// @@ -82,11 +87,13 @@ namespace Illumilib { /// The color's blue value, between 0 and 1 /// Thrown if the positions are out of range in relation to and public static void SetKeyboardLighting(int x, int y, float r, float g, float b) { + EnsureInitialized(); if (x < 0 || x >= KeyboardWidth) throw new ArgumentOutOfRangeException(nameof(x)); if (y < 0 || y >= KeyboardHeight) throw new ArgumentOutOfRangeException(nameof(y)); - ForEach(s => s.SetKeyboardLighting(x, y, r, g, b)); + foreach (var system in systems) + system.SetKeyboardLighting(x, y, r, g, b); } /// @@ -103,11 +110,13 @@ namespace Illumilib { /// The color's blue value, between 0 and 1 /// Thrown if the positions are out of range in relation to and public static void SetKeyboardLighting(int x, int y, int width, int height, float r, float g, float b) { + EnsureInitialized(); if (x < 0 || x + width > KeyboardWidth) throw new ArgumentOutOfRangeException(nameof(x)); if (y < 0 || y + height > KeyboardHeight) throw new ArgumentOutOfRangeException(nameof(y)); - ForEach(s => s.SetKeyboardLighting(x, y, width, height, r, g, b)); + foreach (var system in systems) + system.SetKeyboardLighting(x, y, width, height, r, g, b); } /// @@ -119,7 +128,9 @@ namespace Illumilib { /// The color's green value, between 0 and 1 /// The color's blue value, between 0 and 1 public static void SetKeyboardLighting(KeyboardKeys key, float r, float g, float b) { - ForEach(s => s.SetKeyboardLighting(key, r, g, b)); + EnsureInitialized(); + foreach (var system in systems) + system.SetKeyboardLighting(key, r, g, b); } /// @@ -129,14 +140,14 @@ namespace Illumilib { /// The color's green value, between 0 and 1 /// The color's blue value, between 0 and 1 public static void SetMouseLighting(float r, float g, float b) { - ForEach(s => s.SetMouseLighting(r, g, b)); + EnsureInitialized(); + foreach (var system in systems) + system.SetMouseLighting(r, g, b); } - private static void ForEach(Action action) { + private static void EnsureInitialized() { if (!Initialized) throw new InvalidOperationException("Illumilib has not been initialized yet"); - foreach (var system in systems) - action(system); } }