package kaka.cakelight;
-import static kaka.cakelight.Main.timeIt;
-
public class CakeLight {
private Configuration config;
private Mode mode;
+ private LedController ledController;
- public CakeLight(Configuration config) {
+ public CakeLight(Configuration config, LedController ledController) {
this.config = config;
+ this.ledController = ledController;
+ Color.calculateGammaCorrection(config.gamma);
}
public void setMode(Mode mode) {
cleanup();
this.mode = mode;
+ mode.setFrameListener(ledController::onFrame);
mode.enter(config);
}
}
public void startLoop() {
+ Console.start(this, config);
// TODO
// FrameGrabber grabber = FrameGrabber.from(config);
// grabber.prepare();
// byte[] data = frame.getData();
// saveFile(data, "/home/kaka/test.img");
}
+
+ public void turnOff() {
+ cleanup();
+ ledController.onFrame(LedFrame.from(config));
+ }
}