Move all modes to package kaka.cakelight.mode
[kaka/cakelight.git] / src / kaka / cakelight / mode / Mode.java
diff --git a/src/kaka/cakelight/mode/Mode.java b/src/kaka/cakelight/mode/Mode.java
new file mode 100644 (file)
index 0000000..5ece5ea
--- /dev/null
@@ -0,0 +1,22 @@
+package kaka.cakelight.mode;
+
+import kaka.cakelight.Configuration;
+import kaka.cakelight.LedFrame;
+
+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);
+    }
+}