Search in sources :

Example 1 with ChorBuilder

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());
        }
    });
}
Also used : Response(com.nabalive.framework.web.Response) Random(java.util.Random) Request(com.nabalive.framework.web.Request) ChorBuilder(com.nabalive.server.web.ChorBuilder) Map(java.util.Map) Route(com.nabalive.framework.web.Route) PostConstruct(javax.annotation.PostConstruct)

Aggregations

Request (com.nabalive.framework.web.Request)1 Response (com.nabalive.framework.web.Response)1 Route (com.nabalive.framework.web.Route)1 ChorBuilder (com.nabalive.server.web.ChorBuilder)1 Map (java.util.Map)1 Random (java.util.Random)1 PostConstruct (javax.annotation.PostConstruct)1