Bugfixes
[kaka/cakelight.git] / src / kaka / cakelight / CakeLight.java
index 9b32c02..95a3be1 100644 (file)
@@ -5,9 +5,10 @@ public class CakeLight {
     private Mode mode;
     private LedController ledController;
 
-    public CakeLight(Configuration config) {
+    public CakeLight(Configuration config, LedController ledController) {
         this.config = config;
-        this.ledController = new LedController(config);
+        this.ledController = ledController;
+        Color.calculateGammaCorrection(config.gamma);
     }
 
     public void setMode(Mode mode) {
@@ -19,11 +20,13 @@ public class CakeLight {
 
     public void cleanup() {
         if (this.mode != null) {
+           this.mode.setFrameListener(ledFrame -> {}); // To avoid any frame being sent to the controller while the thread is exiting
             this.mode.exit();
         }
     }
 
     public void startLoop() {
+        Console.start(this, config);
         // TODO
 //        FrameGrabber grabber = FrameGrabber.from(config);
 //        grabber.prepare();
@@ -37,4 +40,9 @@ public class CakeLight {
 //     byte[] data = frame.getData();
 //     saveFile(data, "/home/kaka/test.img");
     }
+
+    public void turnOff() {
+        cleanup();
+        ledController.onFrame(LedFrame.from(config).fillColor(0, 0, 0));
+    }
 }