.get(new Route("/api/chor") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
String chor = checkNotNull(request.getParam("data"));
int loop = Integer.parseInt(firstNonNull(request.getParam("loop"), "1"));
ChorBuilder chorBuilder = new ChorBuilder(chor, loop);
response.write(chorBuilder.build());
}
})
.get(new Route("/api/chor/ears") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
ChorBuilder chorBuilder = new ChorBuilder();
String left = request.getParam("left");
String right = request.getParam("right");
if (left != null) {
int val = Integer.parseInt(left);
chorBuilder.setEar((byte) 0, (byte) (val > 0 ? 0 : 1), (byte) Math.abs(val));
}
if (right != null) {
int val = Integer.parseInt(right);
chorBuilder.setEar((byte) 1, (byte) (val > 0 ? 0 : 1), (byte) Math.abs(val));
}
response.write(chorBuilder.build());
}
})
.get(new Route("/api/chor/led/:led/:color") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
ChorBuilder chorBuilder = new ChorBuilder();
String color = checkNotNull(map.get("color"));
int led = Integer.parseInt(checkNotNull(map.get("led")));
chorBuilder.setLed((byte) led, color);
response.write(chorBuilder.build());
}
})
.get(new Route("/api/chor/rand/:time") {
@Override
public void handle(Request request, Response response, Map<String, String> map) throws Exception {
int time = Integer.parseInt(map.get("time"));
Random rand = new Random();
ChorBuilder chorBuilder = new ChorBuilder();
for (int t = 0; t < time; t++) {
for (int led = 0; led < 5; led++)
if (rand.nextBoolean()) {
chorBuilder.setLed((byte) led, (byte) rand.nextInt(), (byte) rand.nextInt(), (byte) rand.nextInt());
}
if(t%10 == 0){
if (rand.nextBoolean()) {
chorBuilder.setEar((byte)0, (byte) (rand.nextBoolean()?0:1), (byte)rand.nextInt(0x4));
}
if (rand.nextBoolean()) {
chorBuilder.setEar((byte)1, (byte) (rand.nextBoolean()?0:1), (byte)rand.nextInt(0x4));
}
}
chorBuilder.waitChor(1);
}
chorBuilder.setEar((byte)1, (byte) 0, (byte)0);
chorBuilder.setEar((byte)0, (byte) 0, (byte)0);
response.write(chorBuilder.build());
}
});
}