Renamed Frame to VideoFrame
[kaka/cakelight.git] / src / kaka / cakelight / CakeLight.java
1 package kaka.cakelight;
2
3 public class CakeLight {
4     private Configuration config;
5     private Mode mode;
6     private LedController ledController;
7
8     public CakeLight(Configuration config, LedController ledController) {
9         this.config = config;
10         this.ledController = ledController;
11         Color.calculateGammaCorrection(config.gamma);
12     }
13
14     public void setMode(Mode mode) {
15         cleanup();
16         this.mode = mode;
17         mode.setFrameListener(ledController::onFrame);
18         mode.enter(config);
19     }
20
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
24             this.mode.exit();
25         }
26     }
27
28     public void startLoop() {
29         Console.start(this, config);
30         // TODO
31 //        FrameGrabber grabber = FrameGrabber.from(config);
32 //        grabber.prepare();
33 //        VideoFrame frame = grabber.grabFrame();
34 //        double time = 0;
35 //        for (int i = 0; i < 100; i++) {
36 //            time += timeIt("frame", () -> grabber.grabFrame());
37 //        }
38 //        System.out.println("time = " + time);
39 //        grabber.close();
40 //      byte[] data = frame.getData();
41 //      saveFile(data, "/home/kaka/test.img");
42     }
43
44     public void turnOff() {
45         cleanup();
46         ledController.onFrame(LedFrame.from(config).fillColor(0, 0, 0));
47     }
48 }