package kaka.cakelight;
+import kaka.cakelight.mode.AmbientMode;
+import kaka.cakelight.mode.SingleColorMode;
+import kaka.cakelight.mode.TwoColorNoiseMode;
+import kaka.cakelight.mode.VideoMode;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
this.cakelight = cakelight;
this.config = config;
reader = new BufferedReader(new InputStreamReader(System.in));
+
+ public CakeLight getCakelight() {
+ return cakelight;
+ }
+
+ public Configuration getConfig() {
+ return config;
+ }
}
@Override
);
cakelight.setMode(new SingleColorMode(c));
System.out.println("setting color to " + c);
- } else if (input.matches("g|gamma\\s+[0-9.]+")) {
+ } else if (input.matches("(g|gamma)\\s+[0-9.]+")) {
String[] split = input.split("\\s+");
config.gamma = Double.parseDouble(split[1]);
+ Color.calculateGammaCorrection(config.gamma);
System.out.println("setting gamma to " + config.gamma);
- break;
+ } else if (input.matches("(s|saturation)\\s+[0-9.]+")) {
+ String[] split = input.split("\\s+");
+ config.video.saturation = Double.parseDouble(split[1]);
+ System.out.println("setting saturation to " + config.video.saturation);
+ } else if (input.matches("(n|noise)(\\s+[a-z0-9]+){2}")) {
+ TwoColorNoiseMode.getCommand().activate(this, input.split("\\s+"));
+ System.out.println("setting two-color noise mode");
}
} catch (IOException e) {
System.out.println("Error reading from command line");
}
}
}
+
+ public interface Command {
+ String[] getNames();
+ void activate(Console console, String[] args);
+ }
}