private final Component.Identifier computeIdentifier() { if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP) { return ((GenericDesktopUsage)usage_pair.getUsage()).getIdentifier(); } else if (usage_pair.getUsagePage() == UsagePage.BUTTON) { return ((ButtonUsage)usage_pair.getUsage()).getIdentifier(); } else if (usage_pair.getUsagePage() == UsagePage.KEYBOARD_OR_KEYPAD) { return ((KeyboardUsage)usage_pair.getUsage()).getIdentifier(); } else return null; }
private final static void createControllersFromDevice(OSXHIDDevice device, List controllers) throws IOException { UsagePair usage_pair = device.getUsagePair(); if (usage_pair == null) return; List elements = device.getElements(); if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP && (usage_pair.getUsage() == GenericDesktopUsage.MOUSE || usage_pair.getUsage() == GenericDesktopUsage.POINTER)) { Controller mouse = createMouseFromDevice(device, elements); if (mouse != null) controllers.add(mouse); } else if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP && (usage_pair.getUsage() == GenericDesktopUsage.KEYBOARD || usage_pair.getUsage() == GenericDesktopUsage.KEYPAD)) { Controller keyboard = createKeyboardFromDevice(device, elements); if (keyboard != null) controllers.add(keyboard); } else if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP && usage_pair.getUsage() == GenericDesktopUsage.JOYSTICK) { Controller joystick = createControllerFromDevice(device, elements, Controller.Type.STICK); if (joystick != null) controllers.add(joystick); } else if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP && usage_pair.getUsage() == GenericDesktopUsage.MULTI_AXIS_CONTROLLER) { Controller multiaxis = createControllerFromDevice(device, elements, Controller.Type.STICK); if (multiaxis != null) controllers.add(multiaxis); } else if (usage_pair.getUsagePage() == UsagePage.GENERIC_DESKTOP && usage_pair.getUsage() == GenericDesktopUsage.GAME_PAD) { Controller game_pad = createControllerFromDevice(device, elements, Controller.Type.GAMEPAD); if (game_pad != null) controllers.add(game_pad); } }