package com.dronecontrol.leapcontrol.input.leapmotion; import com.google.inject.Inject; import com.leapmotion.leap.Controller; import com.leapmotion.leap.Gesture; import com.dronecontrol.leapcontrol.input.leapmotion.listeners.DetectionListener; import com.dronecontrol.leapcontrol.input.leapmotion.listeners.GestureListener; import org.apache.log4j.Logger; public class LeapMotionController { private final Logger logger = Logger.getLogger(LeapMotionController.class); private final LeapMotionListener listener; private final Controller controller; @Inject public LeapMotionController(LeapMotionListener listener, Controller controller) { this.listener = listener; this.controller = controller; } public void connect() { logger.info("Connecting to leap motion controller"); controller.enableGesture(Gesture.Type.TYPE_CIRCLE); controller.addListener(listener); } public void disconnect() { logger.info("Disconnecting from leap motion controller"); controller.removeListener(listener); } public void addDetectionListener(DetectionListener detectionListener) { listener.addDetectionListener(detectionListener); } public void removeDetectionListener(DetectionListener detectionListener) { listener.removeDetectionListener(detectionListener); } public void addGestureListener(GestureListener gestureListener) { listener.addGestureListener(gestureListener); } public void removeGestureListener(GestureListener gestureListener) { listener.removeGestureListener(gestureListener); } }