Disable native hook for now
[kaka/cakelight.git] / src / kaka / cakelight / CakeLight.java
index c51a534..8156833 100644 (file)
@@ -1,5 +1,13 @@
 package kaka.cakelight;
 
+import kaka.cakelight.mode.Mode;
+import org.jnativehook.GlobalScreen;
+import org.jnativehook.NativeHookException;
+import org.jnativehook.keyboard.NativeKeyAdapter;
+import org.jnativehook.keyboard.NativeKeyEvent;
+import org.jnativehook.mouse.NativeMouseEvent;
+import org.jnativehook.mouse.NativeMouseMotionAdapter;
+
 public class CakeLight {
     private Configuration config;
     private Mode mode;
@@ -20,15 +28,19 @@ public class CakeLight {
 
     public void cleanup() {
         if (this.mode != null) {
+           this.mode.setFrameListener(ledFrame -> {}); // To avoid any frame being sent to the controller while the thread is exiting
             this.mode.exit();
         }
     }
 
     public void startLoop() {
+        Console console = Console.start(this, config);
+        PipeController.start(console);
+//        initNativeHook();
         // TODO
 //        FrameGrabber grabber = FrameGrabber.from(config);
 //        grabber.prepare();
-//        Frame frame = grabber.grabFrame();
+//        VideoFrame frame = grabber.grabFrame();
 //        double time = 0;
 //        for (int i = 0; i < 100; i++) {
 //            time += timeIt("frame", () -> grabber.grabFrame());
@@ -38,4 +50,29 @@ public class CakeLight {
 //     byte[] data = frame.getData();
 //     saveFile(data, "/home/kaka/test.img");
     }
+
+    private void initNativeHook() {
+        try {
+            GlobalScreen.registerNativeHook();
+            GlobalScreen.addNativeKeyListener(new NativeKeyAdapter() {
+                @Override
+                public void nativeKeyPressed(NativeKeyEvent e) {
+                    System.out.println("key code = " + e.getKeyCode() + ", key text = '" + NativeKeyEvent.getKeyText(e.getKeyCode()) + "'");
+                }
+            });
+            GlobalScreen.addNativeMouseMotionListener(new NativeMouseMotionAdapter() {
+                @Override
+                public void nativeMouseMoved(NativeMouseEvent e) {
+                    System.out.println("mouse point = " + e.getPoint());
+                }
+            });
+        } catch (NativeHookException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void turnOff() {
+        cleanup();
+        ledController.onFrame(LedFrame.from(config).fillColor(0, 0, 0));
+    }
 }