Bugfix - draw leds black when list is off instead of skipping
authorTomas Wenström <tomas.wenstrom@gmail.com>
Tue, 9 Apr 2019 18:05:43 +0000 (20:05 +0200)
committerTomas Wenström <tomas.wenstrom@gmail.com>
Tue, 9 Apr 2019 18:05:43 +0000 (20:05 +0200)
src/kaka/cakelight/Color.java
src/kaka/cakelight/VideoFrame.java

index fe010c7..c3f782f 100644 (file)
@@ -1,6 +1,8 @@
 package kaka.cakelight;
 
 public class Color {
+    public static final Color BLACK = Color.rgb(0, 0, 0);
+
     private static int[] gammaCorrection = new int[256];
 
     public static void calculateGammaCorrection(double gamma) {
index e77dcd9..6435242 100644 (file)
@@ -172,10 +172,27 @@ public class VideoFrame {
     public LedFrame getLedFrame() {
         LedFrame frame = LedFrame.from(config);
         int led = 0;
-        if (config.video.list.bottom) for (int i = 0; i < config.leds.cols; i++)      frame.setLedColor(led++, wrappedGetLedColor(ListPosition.BOTTOM, i));
-        if (config.video.list.right)  for (int i = config.leds.rows - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.RIGHT, i));
-        if (config.video.list.top)    for (int i = config.leds.cols - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.TOP, i));
-        if (config.video.list.left)   for (int i = 0; i < config.leds.rows; i++)      frame.setLedColor(led++, wrappedGetLedColor(ListPosition.LEFT, i));
+
+        if (config.video.list.bottom)
+            for (int i = 0; i < config.leds.cols; i++)      frame.setLedColor(led++, wrappedGetLedColor(ListPosition.BOTTOM, i));
+       else
+           for (int i = 0; i < config.leds.cols; i++)      frame.setLedColor(led++, Color.BLACK);
+
+        if (config.video.list.right)
+            for (int i = config.leds.rows - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.RIGHT, i));
+        else
+            for (int i = config.leds.rows - 1; i >= 0; i--) frame.setLedColor(led++, Color.BLACK);
+
+        if (config.video.list.top)
+            for (int i = config.leds.cols - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.TOP, i));
+        else
+            for (int i = config.leds.cols - 1; i >= 0; i--) frame.setLedColor(led++, Color.BLACK);
+
+        if (config.video.list.left)
+            for (int i = 0; i < config.leds.rows; i++)      frame.setLedColor(led++, wrappedGetLedColor(ListPosition.LEFT, i));
+        else
+            for (int i = 0; i < config.leds.rows; i++)      frame.setLedColor(led++, Color.BLACK);
+
         return frame;
     }
 }