X-Git-Url: http://dolda2000.com/gitweb/?p=kaka%2Fcakelight.git;a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FConsole.java;fp=src%2Fkaka%2Fcakelight%2FConsole.java;h=5dfe091e8935ec6a6f95238acc3c03564374afa4;hp=3f9bce9e42d8a63c93d2fde59ca84008cf16a3ac;hb=c9edf58db4c00b7b95bb7f521063e5ecd79db262;hpb=d0afa6fb625ce2fe77d1ed6f0df8ed34391ddc35 diff --git a/src/kaka/cakelight/Console.java b/src/kaka/cakelight/Console.java index 3f9bce9..5dfe091 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()); @@ -71,14 +75,21 @@ public class Console extends Thread { while (running) { System.out.print("> "); String input = reader.readLine(); - handleInput(input); + internalHandleInput(input); } } catch (IOException e) { System.out.println("Error reading from command line"); } } - void handleInput(String input) { + private void internalHandleInput(String input) { + Object obj = handleInput(input); + if (obj instanceof Mode) { + cakelight.setMode((Mode) obj); + } + } + + Object handleInput(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); } }