use of com.nabalive.server.web.ChorBuilder in project NabAlive by jcheype.
the class ChorController method init.
@PostConstruct
void init() {
restHandler.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());
}
});
}
Aggregations