Added a draft for an ambient mode
[kaka/cakelight.git] / src / kaka / cakelight / Mode.java
index 3a1f5d0..ad9bc8d 100644 (file)
@@ -1,6 +1,19 @@
 package kaka.cakelight;
 
-public interface Mode {
-    void enter(Configuration config);
-    void exit();
+import java.util.function.Consumer;
+
+public abstract class Mode {
+    private Consumer<LedFrame> frameListener;
+
+    public abstract void enter(Configuration config);
+    public abstract void exit();
+
+    public void setFrameListener(Consumer<LedFrame> listener) {
+        frameListener = listener;
+    }
+
+    public void updateWithFrame(LedFrame frame) {
+        assert frameListener != null;
+        frameListener.accept(frame);
+    }
 }