예제 #1
0
 private static final Keyboard createKeyboardFromDevice(OSXHIDDevice device, List elements)
     throws IOException {
   List components = new ArrayList();
   OSXHIDQueue queue = device.createQueue(AbstractController.EVENT_QUEUE_DEPTH);
   try {
     addElements(queue, elements, components, false);
   } catch (IOException e) {
     queue.release();
     throw e;
   }
   Component[] components_array = new Component[components.size()];
   components.toArray(components_array);
   Keyboard keyboard =
       new OSXKeyboard(device, queue, components_array, new Controller[] {}, new Rumbler[] {});
   return keyboard;
 }
예제 #2
0
 private static final AbstractController createControllerFromDevice(
     OSXHIDDevice device, List elements, Controller.Type type) throws IOException {
   List components = new ArrayList();
   OSXHIDQueue queue = device.createQueue(AbstractController.EVENT_QUEUE_DEPTH);
   try {
     addElements(queue, elements, components, false);
   } catch (IOException e) {
     queue.release();
     throw e;
   }
   Component[] components_array = new Component[components.size()];
   components.toArray(components_array);
   AbstractController controller =
       new OSXAbstractController(
           device, queue, components_array, new Controller[] {}, new Rumbler[] {}, type);
   return controller;
 }
예제 #3
0
 private static final Mouse createMouseFromDevice(OSXHIDDevice device, List elements)
     throws IOException {
   List components = new ArrayList();
   OSXHIDQueue queue = device.createQueue(AbstractController.EVENT_QUEUE_DEPTH);
   try {
     addElements(queue, elements, components, true);
   } catch (IOException e) {
     queue.release();
     throw e;
   }
   Component[] components_array = new Component[components.size()];
   components.toArray(components_array);
   Mouse mouse =
       new OSXMouse(device, queue, components_array, new Controller[] {}, new Rumbler[] {});
   if (mouse.getPrimaryButton() != null && mouse.getX() != null && mouse.getY() != null) {
     return mouse;
   } else {
     queue.release();
     return null;
   }
 }
예제 #4
0
 private static final void addElements(
     OSXHIDQueue queue, List elements, List components, boolean map_mouse_buttons)
     throws IOException {
   Iterator it = elements.iterator();
   while (it.hasNext()) {
     OSXHIDElement element = (OSXHIDElement) it.next();
     Component.Identifier id = element.getIdentifier();
     if (id == null) continue;
     if (map_mouse_buttons) {
       if (id == Component.Identifier.Button._0) {
         id = Component.Identifier.Button.LEFT;
       } else if (id == Component.Identifier.Button._1) {
         id = Component.Identifier.Button.RIGHT;
       } else if (id == Component.Identifier.Button._2) {
         id = Component.Identifier.Button.MIDDLE;
       }
     }
     OSXComponent component = new OSXComponent(id, element);
     components.add(component);
     queue.addElement(element, component);
   }
 }