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);
+ }
}