Any number of colors (>1) for noise mode
[kaka/cakelight.git] / src / kaka / cakelight / Commands.java
index 825ebe3..cbd9e38 100644 (file)
@@ -3,6 +3,7 @@ package kaka.cakelight;
 import kaka.cakelight.mode.*;
 
 import java.util.function.BiFunction;
+import java.util.stream.Stream;
 
 class Commands {
     private static Console.Command command(String[] names, BiFunction<Console, String[], Boolean> activate) {
@@ -59,7 +60,7 @@ class Commands {
 
     static Console.Command push() {
         return command(new String[] {"push"}, (console, args) -> {
-            Object obj = console.handleInput(String.join(" ", args));
+            Object obj = console.internalHandleInput(String.join(" ", args));
            if (obj instanceof Mode) { // obj could be anything, which should be fixed
                console.out("pushing mode " + obj.getClass().getSimpleName());
                console.getCakelight().pushMode((Mode) obj);
@@ -156,11 +157,13 @@ class Commands {
 
     static Console.Command twoColorNoiseMode() {
         return modeCommand(new String[] {"n", "noise"}, (console, args) -> {
-           if (args.length == 2) {
-               console.out("setting two-color noise mode");
-               return new TwoColorNoiseMode(
-                       console.parseColor(args[0]),
-                       console.parseColor(args[1])
+           if (args.length > 1) {
+               console.out("setting multi-color noise mode");
+               return new TwoColorNoiseMode(Stream.of(args)
+                                            .map(arg -> console.parseColor(arg))
+                                            .toArray(Color[]::new)
+//                     console.parseColor(args[0]),
+//                     console.parseColor(args[1])
                );
            }
            return null;