X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FConsole.java;h=89acbbd1e876f81115556e70ccb7de5274b16d91;hb=054af8b2a7970136ad665dc999cf83c077e17b1a;hp=3f9bce9e42d8a63c93d2fde59ca84008cf16a3ac;hpb=e4738966c601bac22b7f7cbad375bd172913bde9;p=kaka%2Fcakelight.git diff --git a/src/kaka/cakelight/Console.java b/src/kaka/cakelight/Console.java index 3f9bce9..89acbbd 100644 --- a/src/kaka/cakelight/Console.java +++ b/src/kaka/cakelight/Console.java @@ -1,5 +1,7 @@ package kaka.cakelight; +import kaka.cakelight.mode.Mode; + import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -26,6 +28,8 @@ public class Console extends Thread { this.config = config; register(Commands.help()); register(Commands.quit()); + register(Commands.push()); + register(Commands.pop()); register(Commands.video()); register(Commands.color()); register(Commands.brightness()); @@ -79,6 +83,13 @@ public class Console extends Thread { } void handleInput(String input) { + Object obj = internalHandleInput(input); + if (obj instanceof Mode) { + cakelight.setMode((Mode) obj); + } + } + + Object internalHandleInput(String input) { String[] splitInput = input.split("\\s+", 2); String name = splitInput[0]; String[] args = splitInput.length == 2 @@ -87,10 +98,11 @@ public class Console extends Thread { Command cmd = commands.get(name); if (cmd != null) { - cmd.activate(this, args); + return cmd.activate(this, args); } else { out("no command named '" + name + "'"); } + return null; } void out(String text) { @@ -126,6 +138,6 @@ public class Console extends Thread { public interface Command { String[] getNames(); - void activate(Console console, String[] args); + Object activate(Console console, String[] args); } }