1 package kaka.cakelight;
3 public class CakeLight {
4 private Configuration config;
6 private LedController ledController;
8 public CakeLight(Configuration config, LedController ledController) {
10 this.ledController = ledController;
11 Color.calculateGammaCorrection(config.gamma);
14 public void setMode(Mode mode) {
17 mode.setFrameListener(ledController::onFrame);
21 public void cleanup() {
22 if (this.mode != null) {
23 this.mode.setFrameListener(ledFrame -> {}); // To avoid any frame being sent to the controller while the thread is exiting
28 public void startLoop() {
29 Console.start(this, config);
31 // FrameGrabber grabber = FrameGrabber.from(config);
33 // VideoFrame frame = grabber.grabFrame();
35 // for (int i = 0; i < 100; i++) {
36 // time += timeIt("frame", () -> grabber.grabFrame());
38 // System.out.println("time = " + time);
40 // byte[] data = frame.getData();
41 // saveFile(data, "/home/kaka/test.img");
44 public void turnOff() {
46 ledController.onFrame(LedFrame.from(config).fillColor(0, 0, 0));