diff options
Diffstat (limited to 'plugins/OSX/src')
9 files changed, 0 insertions, 2223 deletions
diff --git a/plugins/OSX/src/java/net/java/games/input/InputController.java b/plugins/OSX/src/java/net/java/games/input/InputController.java deleted file mode 100644 index 2a5442b..0000000 --- a/plugins/OSX/src/java/net/java/games/input/InputController.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.java.games.input; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 2:57:15 PM - * To change this template use Options | File Templates. - */ -public interface InputController -{ - public void addControllerElement( InputControllerElement element ); -} diff --git a/plugins/OSX/src/java/net/java/games/input/InputControllerElement.java b/plugins/OSX/src/java/net/java/games/input/InputControllerElement.java deleted file mode 100644 index 8ba92c3..0000000 --- a/plugins/OSX/src/java/net/java/games/input/InputControllerElement.java +++ /dev/null @@ -1,195 +0,0 @@ -package net.java.games.input; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 2:59:26 PM - * To change this template use Options | File Templates. - */ -public class InputControllerElement -{ - private long hidCookie; - private int elementType; - private int usagePage; - private int usage; - - private int rawMin; - private int rawMax; - private int scaledMin; - private int scaledMax; - - private int dataBitSize; - - private boolean isRelative; - private boolean isWrapping; - private boolean isNonLinear; - private boolean hasPreferredState; - private boolean hasNullState; - - public InputControllerElement() - { - } - - public InputControllerElement(long hidCookie, int elementType, int usage, int usagePage, - int rawMin, int rawMax, int scaledMin, int scaledMax, - int dataBitSize, boolean isRelative, boolean isWrapping, - boolean isNonLinear, boolean hasPreferredState, boolean hasNullState ) - { - this.hidCookie = hidCookie; - this.elementType = elementType; - this.usage = usage; - this.usagePage = usagePage; - this.rawMin = rawMin; - this.rawMax = rawMax; - this.scaledMin = scaledMin; - this.scaledMax = scaledMax; - this.dataBitSize = dataBitSize; - this.isRelative = isRelative; - this.isWrapping = isWrapping; - this.isNonLinear = isNonLinear; - this.hasPreferredState = hasPreferredState; - this.hasNullState = hasNullState; - } - - public long getHidCookie() - { - return hidCookie; - } - - public void setHidCookie(long hidCookie) - { - this.hidCookie = hidCookie; - } - - public int getElementType() - { - return elementType; - } - - public void setElementType(int elementType) - { - this.elementType = elementType; - } - - public int getUsagePage() - { - return usagePage; - } - - public void setUsagePage(int usagePage) - { - this.usagePage = usagePage; - } - - public int getUsage() - { - return usage; - } - - public void setUsage(int usage) - { - this.usage = usage; - } - - public int getRawMin() - { - return rawMin; - } - - public void setRawMin(int rawMin) - { - this.rawMin = rawMin; - } - - public int getRawMax() - { - return rawMax; - } - - public void setRawMax(int rawMax) - { - this.rawMax = rawMax; - } - - public int getScaledMin() - { - return scaledMin; - } - - public void setScaledMin(int scaledMin) - { - this.scaledMin = scaledMin; - } - - public int getScaledMax() - { - return scaledMax; - } - - public void setScaledMax(int scaledMax) - { - this.scaledMax = scaledMax; - } - - public int getDataBitSize() - { - return dataBitSize; - } - - public void setDataBitSize(int dataBitSize) - { - this.dataBitSize = dataBitSize; - } - - public boolean isRelative() - { - return isRelative; - } - - public void setRelative(boolean relative) - { - isRelative = relative; - } - - public boolean isWrapping() - { - return isWrapping; - } - - public void setWrapping(boolean wrapping) - { - isWrapping = wrapping; - } - - public boolean isNonLinear() - { - return isNonLinear; - } - - public void setNonLinear(boolean nonLinear) - { - isNonLinear = nonLinear; - } - - public boolean isHasPreferredState() - { - return hasPreferredState; - } - - public void setHasPreferredState(boolean hasPreferredState) - { - this.hasPreferredState = hasPreferredState; - } - - public boolean isHasNullState() - { - return hasNullState; - } - - public void setHasNullState(boolean hasNullState) - { - this.hasNullState = hasNullState; - } - -} diff --git a/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java b/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java deleted file mode 100755 index 41a28fc..0000000 --- a/plugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java +++ /dev/null @@ -1,484 +0,0 @@ -/* - * %W% %E% - * - * Copyright 2002 Sun Microsystems, Inc. All rights reserved. - * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. - */ -/***************************************************************************** -* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* - Redistribution of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* -* - Redistribution in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materails provided with the distribution. -* -* Neither the name Sun Microsystems, Inc. or the names of the contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* This software is provided "AS IS," without a warranty of any kind. -* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING -* ANY IMPLIED WARRANT OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR -* NON-INFRINGEMEN, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND -* ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS -* A RESULT OF USING, MODIFYING OR DESTRIBUTING THIS SOFTWARE OR ITS -* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST -* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, -* INCIDENTAL OR PUNITIVE DAMAGES. HOWEVER CAUSED AND REGARDLESS OF THE THEORY -* OF LIABILITY, ARISING OUT OF THE USE OF OUR INABILITY TO USE THIS SOFTWARE, -* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* -* You acknowledge that this software is not designed or intended for us in -* the design, construction, operation or maintenance of any nuclear facility -* -*****************************************************************************/ -package net.java.games.input; - -import java.security.AccessController; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.HashMap; - -import net.java.games.input.Controller; -import net.java.games.input.ControllerEnvironment; -import net.java.games.util.plugins.Plugin; - -/** OSX HIDManager implementation of controller environment -* @author gregorypierce -* @version 1.0 -*/ -public class OSXEnvironmentPlugin extends ControllerEnvironment implements Plugin -{ - - - public static final int HID_DEVICE_MOUSE = 0x02; - public static final int HID_DEVICE_JOYSTICK = 0x04; - public static final int HID_DEVICE_GAMEPAD = 0x05; - public static final int HID_DEVICE_KEYBOARD = 0x06; - - - public static final int HID_USAGE_POINTER = 0x01; - public static final int HID_USAGE_XAXIS = 0x30; - public static final int HID_USAGE_YAXIS = 0x31; - public static final int HID_USAGE_ZAXIS = 0x32; - public static final int HID_USAGE_XAXIS_ROTATION = 0x33; - public static final int HID_USAGE_YAXIS_ROTATION = 0x34; - public static final int HID_USAGE_ZAXIS_ROTATION = 0x35; - public static final int HID_USAGE_SLIDER = 0x36; - public static final int HID_USAGE_DIAL = 0x37; - public static final int HID_USAGE_WHEEL = 0x38; - public static final int HID_USAGE_HAT = 0x39; - public static final int HID_USAGE_DPAD_UP = 0x90; - public static final int HID_USAGE_DPAD_DOWN = 0x91; - public static final int HID_USAGE_DPAD_LEFT = 0x92; - public static final int HID_USAGE_DPAD_RIGHT = 0x93; - - - public static final int HID_USAGE_KEYBOARD_ERRORROLLOVER = 0x01; /* ErrorRollOver */ - public static final int HID_USAGE_KEYBOARD_POSTFAIL = 0x02; /* POSTFail */ - public static final int HID_USAGE_KEYBOARD_ERRORUNDEFINED = 0x03; /* ErrorUndefined */ - public static final int HID_USAGE_KEYBOARD_A = 0x04; /* a or A */ - public static final int HID_USAGE_KEYBOARD_B = 0x05; /* b or B */ - public static final int HID_USAGE_KEYBOARD_C = 0x06; /* c or C */ - public static final int HID_USAGE_KEYBOARD_D = 0x07; /* d or D */ - public static final int HID_USAGE_KEYBOARD_E = 0x08; /* e or E */ - public static final int HID_USAGE_KEYBOARD_F = 0x09; /* f or F */ - public static final int HID_USAGE_KEYBOARD_G = 0x0A; /* g or G */ - public static final int HID_USAGE_KEYBOARD_H = 0x0B; /* h or H */ - public static final int HID_USAGE_KEYBOARD_I = 0x0C; /* i or I */ - public static final int HID_USAGE_KEYBOARD_J = 0x0D; /* j or J */ - public static final int HID_USAGE_KEYBOARD_K = 0x0E; /* k or K */ - public static final int HID_USAGE_KEYBOARD_L = 0x0F; /* l or L */ - public static final int HID_USAGE_KEYBOARD_M = 0x10; /* m or M */ - public static final int HID_USAGE_KEYBOARD_N = 0x11; /* n or N */ - public static final int HID_USAGE_KEYBOARD_O = 0x12; /* o or O */ - public static final int HID_USAGE_KEYBOARD_P = 0x13; /* p or P */ - public static final int HID_USAGE_KEYBOARD_Q = 0x14; /* q or Q */ - public static final int HID_USAGE_KEYBOARD_R = 0x15; /* r or R */ - public static final int HID_USAGE_KEYBOARD_S = 0x16; /* s or S */ - public static final int HID_USAGE_KEYBOARD_T = 0x17; /* t or T */ - public static final int HID_USAGE_KEYBOARD_U = 0x18; /* u or U */ - public static final int HID_USAGE_KEYBOARD_V = 0x19; /* v or V */ - public static final int HID_USAGE_KEYBOARD_W = 0x1A; /* w or W */ - public static final int HID_USAGE_KEYBOARD_X = 0x1B; /* x or X */ - public static final int HID_USAGE_KEYBOARD_Y = 0x1C; /* y or Y */ - public static final int HID_USAGE_KEYBOARD_Z = 0x1D; /* z or Z */ - public static final int HID_USAGE_KEYBOARD_1 = 0x1E; /* 1 or ! */ - public static final int HID_USAGE_KEYBOARD_2 = 0x1F; /* 2 or @ */ - public static final int HID_USAGE_KEYBOARD_3 = 0x20; /* 3 or # */ - public static final int HID_USAGE_KEYBOARD_4 = 0x21; /* 4 or $ */ - public static final int HID_USAGE_KEYBOARD_5 = 0x22; /* 5 or % */ - public static final int HID_USAGE_KEYBOARD_6 = 0x23; /* 6 or ^ */ - public static final int HID_USAGE_KEYBOARD_7 = 0x24; /* 7 or & */ - public static final int HID_USAGE_KEYBOARD_8 = 0x25; /* 8 or * */ - public static final int HID_USAGE_KEYBOARD_9 = 0x26; /* 9 or ( */ - public static final int HID_USAGE_KEYBOARD_0 = 0x27; /* 0 or ) */ - public static final int HID_USAGE_KEYBOARD_ENTER = 0x28; /* Return (Enter) */ - public static final int HID_USAGE_KEYBOARD_ESCAPE = 0x29; /* Escape */ - public static final int HID_USAGE_KEYBOARD_BACKSPACE = 0x2A; /* Delete (Backspace) */ - public static final int HID_USAGE_KEYBOARD_TAB = 0x2B; /* Tab */ - public static final int HID_USAGE_KEYBOARD_SPACEBAR = 0x2C; /* Spacebar */ - public static final int HID_USAGE_KEYBOARD_HYPHEN = 0x2D; /* - or _ */ - public static final int HID_USAGE_KEYBOARD_EQUALSIGN = 0x2E; /* = or + */ - public static final int HID_USAGE_KEYBOARD_OPENBRACKET = 0x2F; /* [ or { */ - public static final int HID_USAGE_KEYBOARD_CLOSEBRACKET = 0x30; /* ] or } */ - public static final int HID_USAGE_KEYBOARD_BACKSLASH = 0x31; /* \ or | */ - public static final int HID_USAGE_KEYBOARD_NONUSPOUNT = 0x32; /* Non-US # or _ */ - public static final int HID_USAGE_KEYBOARD_SEMICOLON = 0x33; /* ; or : */ - public static final int HID_USAGE_KEYBOARD_QUOTE = 0x34; /* ' or " */ - public static final int HID_USAGE_KEYBOARD_TILDE = 0x35; /* Grave Accent and Tilde */ - public static final int HID_USAGE_KEYBOARD_COMMA = 0x36; /* , or < */ - public static final int HID_USAGE_KEYBOARD_PERIOD = 0x37; /* . or > */ - public static final int HID_USAGE_KEYBOARD_SLASH = 0x38; /* / or ? */ - public static final int HID_USAGE_KEYBOARD_CAPSLOCK = 0x39; /* Caps Lock */ - public static final int HID_USAGE_KEYBOARD_F1 = 0x3A; /* F1 */ - public static final int HID_USAGE_KEYBOARD_F2 = 0x3B; /* F2 */ - public static final int HID_USAGE_KEYBOARD_F3 = 0x3C; /* F3 */ - public static final int HID_USAGE_KEYBOARD_F4 = 0x3D; /* F4 */ - public static final int HID_USAGE_KEYBOARD_F5 = 0x3E; /* F5 */ - public static final int HID_USAGE_KEYBOARD_F6 = 0x3F; /* F6 */ - public static final int HID_USAGE_KEYBOARD_F7 = 0x40; /* F7 */ - public static final int HID_USAGE_KEYBOARD_F8 = 0x41; /* F8 */ - public static final int HID_USAGE_KEYBOARD_F9 = 0x42; /* F9 */ - public static final int HID_USAGE_KEYBOARD_F10 = 0x43; /* F10 */ - public static final int HID_USAGE_KEYBOARD_F11 = 0x44; /* F11 */ - public static final int HID_USAGE_KEYBOARD_F12 = 0x45; /* F12 */ - public static final int HID_USAGE_KEYBOARD_PRINTSCREEN = 0x46; /* Print Screen */ - public static final int HID_USAGE_KEYBOARD_SCROLLLOCK = 0x47; /* Scroll Lock */ - public static final int HID_USAGE_KEYBOARD_PAUSE = 0x48; /* Pause */ - public static final int HID_USAGE_KEYBOARD_INSERT = 0x49; /* Insert */ - public static final int HID_USAGE_KEYBOARD_HOME = 0x4A; /* Home */ - public static final int HID_USAGE_KEYBOARD_PAGEUP = 0x4B; /* Page Up */ - public static final int HID_USAGE_KEYBOARD_DELETE = 0x4C; /* Delete Forward */ - public static final int HID_USAGE_KEYBOARD_END = 0x4D; /* End */ - public static final int HID_USAGE_KEYBOARD_PAGEDOWN = 0x4E; /* Page Down */ - public static final int HID_USAGE_KEYBOARD_RIGHTARROW = 0x4F; /* Right Arrow */ - public static final int HID_USAGE_KEYBOARD_LEFTARROW = 0x50; /* Left Arrow */ - public static final int HID_USAGE_KEYBOARD_DOWNARROW = 0x51; /* Down Arrow */ - public static final int HID_USAGE_KEYBOARD_UPARROW = 0x52; /* Up Arrow */ - public static final int HID_USAGE_KEYPAD_NUMLOCK = 0x53; /* Keypad NumLock or Clear */ - public static final int HID_USAGE_KEYPAD_SLASH = 0x54; /* Keypad / */ - public static final int HID_USAGE_KEYPAD_ASTERICK = 0x55; /* Keypad * */ - public static final int HID_USAGE_KEYPAD_HYPHEN = 0x56; /* Keypad - */ - public static final int HID_USAGE_KEYPAD_PLUS = 0x57; /* Keypad + */ - public static final int HID_USAGE_KEYPAD_ENTER = 0x58; /* Keypad Enter */ - public static final int HID_USAGE_KEYPAD_1 = 0x59; /* Keypad 1 or End */ - public static final int HID_USAGE_KEYPAD_2 = 0x5A; /* Keypad 2 or Down Arrow */ - public static final int HID_USAGE_KEYPAD_3 = 0x5B; /* Keypad 3 or Page Down */ - public static final int HID_USAGE_KEYPAD_4 = 0x5C; /* Keypad 4 or Left Arrow */ - public static final int HID_USAGE_KEYPAD_5 = 0x5D; /* Keypad 5 */ - public static final int HID_USAGE_KEYPAD_6 = 0x5E; /* Keypad 6 or Right Arrow */ - public static final int HID_USAGE_KEYPAD_7 = 0x5F; /* Keypad 7 or Home */ - public static final int HID_USAGE_KEYPAD_8 = 0x60; /* Keypad 8 or Up Arrow */ - public static final int HID_USAGE_KEYPAD_9 = 0x61; /* Keypad 9 or Page Up */ - public static final int HID_USAGE_KEYPAD_0 = 0x62; /* Keypad 0 or Insert */ - public static final int HID_USAGE_KEYPAD_PERIOD = 0x63; /* Keypad . or Delete */ - public static final int HID_USAGE_KEYBOARD_NONUSBACKSLASH = 0x64; /* Non-US \ or | */ - public static final int HID_USAGE_KEYBOARD_APPLICATION = 0x65; /* Application */ - public static final int HID_USAGE_KEYBOARD_POWER = 0x66; /* Power */ - public static final int HID_USAGE_KEYPAD_EQUALSIGN = 0x67; /* Keypad = */ - public static final int HID_USAGE_KEYBOARD_F13 = 0x68; /* F13 */ - public static final int HID_USAGE_KEYBOARD_F14 = 0x69; /* F14 */ - public static final int HID_USAGE_KEYBOARD_F15 = 0x6A; /* F15 */ - public static final int HID_USAGE_KEYBOARD_F16 = 0x6B; /* F16 */ - public static final int HID_USAGE_KEYBOARD_F17 = 0x6C; /* F17 */ - public static final int HID_USAGE_KEYBOARD_F18 = 0x6D; /* F18 */ - public static final int HID_USAGE_KEYBOARD_F19 = 0x6E; /* F19 */ - public static final int HID_USAGE_KEYBOARD_F20 = 0x6F; /* F20 */ - public static final int HID_USAGE_KEYBOARD_F21 = 0x70; /* F21 */ - public static final int HID_USAGE_KEYBOARD_F22 = 0x71; /* F22 */ - public static final int HID_USAGE_KEYBOARD_F23 = 0x72; /* F23 */ - public static final int HID_USAGE_KEYBOARD_F24 = 0x73; /* F24 */ - public static final int HID_USAGE_KEYBOARD_EXECUTE = 0x74; /* Execute */ - public static final int HID_USAGE_KEYBOARD_HELP = 0x75; /* Help */ - public static final int HID_USAGE_KEYBOARD_MENU = 0x76; /* Menu */ - public static final int HID_USAGE_KEYBOARD_SELECT = 0x77; /* Select */ - public static final int HID_USAGE_KEYBOARD_STOP = 0x78; /* Stop */ - public static final int HID_USAGE_KEYBOARD_AGAIN = 0x79; /* Again */ - public static final int HID_USAGE_KEYBOARD_UNDO = 0x7A; /* Undo */ - public static final int HID_USAGE_KEYBOARD_CUT = 0x7B; /* Cut */ - public static final int HID_USAGE_KEYBOARD_COPY = 0x7C; /* Copy */ - public static final int HID_USAGE_KEYBOARD_PASTE = 0x7D; /* Paste */ - public static final int HID_USAGE_KEYBOARD_FIND = 0x7E; /* Find */ - public static final int HID_USAGE_KEYBOARD_MUTE = 0x7F; /* Mute */ - public static final int HID_USAGE_KEYBOARD_VOLUMEUP = 0x80; /* Volume Up */ - public static final int HID_USAGE_KEYBOARD_VOLUMEDOWN = 0x81; /* Volume Down */ - public static final int HID_USAGE_KEYBOARD_LOCKINGCAPSLOCK = 0x82; /* Locking Caps Lock */ - public static final int HID_USAGE_KEYBOARD_LOCKINGNUMLOCK = 0x83; /* Locking Num Lock */ - public static final int HID_USAGE_KEYBOARD_LOCKINGSCROLLLOCK = 0x84; /* Locking Scroll Lock */ - public static final int HID_USAGE_KEYPAD_COMMA = 0x85; /* Keypad Comma */ - public static final int HID_USAGE_KEYPAD_EQUALSSIGNAS400 = 0x86; /* Keypad Equal Sign for AS/400 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL1 = 0x87; /* International1 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL2 = 0x88; /* International2 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL3 = 0x89; /* International3 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL4 = 0x8A; /* International4 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL5 = 0x8B; /* International5 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL6 = 0x8C; /* International6 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL7 = 0x8D; /* International7 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL8 = 0x8E; /* International8 */ - public static final int HID_USAGE_KEYBOARD_INTERNATIONAL9 = 0x8F; /* International9 */ - public static final int HID_USAGE_KEYBOARD_LANG1 = 0x90; /* LANG1 */ - public static final int HID_USAGE_KEYBOARD_LANG2 = 0x91; /* LANG2 */ - public static final int HID_USAGE_KEYBOARD_LANG3 = 0x92; /* LANG3 */ - public static final int HID_USAGE_KEYBOARD_LANG4 = 0x93; /* LANG4 */ - public static final int HID_USAGE_KEYBOARD_LANG5 = 0x94; /* LANG5 */ - public static final int HID_USAGE_KEYBOARD_LANG6 = 0x95; /* LANG6 */ - public static final int HID_USAGE_KEYBOARD_LANG7 = 0x96; /* LANG7 */ - public static final int HID_USAGE_KEYBOARD_LANG8 = 0x97; /* LANG8 */ - public static final int HID_USAGE_KEYBOARD_LANG9 = 0x98; /* LANG9 */ - public static final int HID_USAGE_KEYBOARD_ALTERNATEERASE = 0x99; /* AlternateErase */ - public static final int HID_USAGE_KEYBOARD_SYSREQORATTENTION = 0x9A; /* SysReq/Attention */ - public static final int HID_USAGE_KEYBOARD_CANCEL = 0x9B; /* Cancel */ - public static final int HID_USAGE_KEYBOARD_CLEAR = 0x9C; /* Clear */ - public static final int HID_USAGE_KEYBOARD_PRIOR = 0x9D; /* Prior */ - public static final int HID_USAGE_KEYBOARD_RETURN = 0x9E; /* Return */ - public static final int HID_USAGE_KEYBOARD_SEPARATOR = 0x9F; /* Separator */ - public static final int HID_USAGE_KEYBOARD_OUT = 0xA0; /* Out */ - public static final int HID_USAGE_KEYBOARD_OPER = 0xA1; /* Oper */ - public static final int HID_USAGE_KEYBOARD_CLEARORAGAIN = 0xA2; /* Clear/Again */ - public static final int HID_USAGE_KEYBOARD_CRSELORPROPS = 0xA3; /* CrSel/Props */ - public static final int HID_USAGE_KEYBOARD_EXSEL = 0xA4; /* ExSel */ - /* 0xA5-0xDF Reserved */ - public static final int HID_USAGE_KEYBOARD_LEFTCONTROL = 0xE0; /* Left Control */ - public static final int HID_USAGE_KEYBOARD_LEFTSHIFT = 0xE1; /* Left Shift */ - public static final int HID_USAGE_KEYBOARD_LEFTALT = 0xE2; /* Left Alt */ - public static final int HID_USAGE_KEYBOARD_LEFTGUI = 0xE3; /* Left GUI */ - public static final int HID_USAGE_KEYBOARD_RIGHTCONTROL = 0xE4; /* Right Control */ - public static final int HID_USAGE_KEYBOARD_RIGHTSHIFT = 0xE5; /* Right Shift */ - public static final int HID_USAGE_KEYBOARD_RIGHTALT = 0xE6; /* Right Alt */ - public static final int HID_USAGE_KEYBOARD_RIGHTGUI = 0xE7; /* Right GUI */ - /* 0xE8-0xFFFF Reserved */ - public static final int HID_USAGE_KEYBOARD__RESERVED = 0xFFFF; - - - public static final int HID_USAGEPAGE_UNDEFINED = 0x00; - public static final int HID_USAGEPAGE_GENERICDESKTOP = 0x01; - public static final int HID_USAGEPAGE_SIMULATION = 0x02; - public static final int HID_USAGEPAGE_VR = 0x03; - public static final int HID_USAGEPAGE_SPORT = 0x04; - public static final int HID_USAGEPAGE_GAME = 0x05; - public static final int HID_USAGEPAGE_KEYBOARD = 0x07; /* USB Device Class Definition for Human Interface Devices (HID). Note: the usage type for all key codes is Selector (Sel). */ - public static final int HID_USAGEPAGE_LED = 0x08; - public static final int HID_USAGEPAGE_BUTTON = 0x09; - public static final int HID_USAGEPAGE_ORDINAL = 0x0A; - public static final int HID_USAGEPAGE_TELEPHONY = 0x0B; - public static final int HID_USAGEPAGE_CONSUMER = 0x0C; - public static final int HID_USAGEPAGE_DIGITIZER = 0x0D; - public static final int HID_USAGEPAGE_PID = 0x0F; /* USB Physical Interface Device definitions for force feedback and related devices. */ - public static final int HID_USAGEPAGE_UNICODE = 0x10; - public static final int HID_USAGEPAGE_ALPHANUMERIC_DISPLAY = 0x14; - public static final int HID_USAGEPAGE_POWERDEVICE = 0x84; /* Power Device Page */ - public static final int HID_USAGEPAGE_BATTERY_SYSTEM = 0x85; /* Battery System Page */ - public static final int HID_USAGEPAGE_BARCODE_SCANNER = 0x8C; /* (Point of Sale) USB Device Class Definition for Bar Code Scanner Devices */ - public static final int HID_USAGEPAGE_SCALE = 0x8D; /* (Point of Sale) USB Device Class Definition for Scale Devices */ - public static final int HID_USAGEPAGE_CAMERA_CONTROL = 0x90; /* USB Device Class Definition for Image Class Devices */ - public static final int HID_USAGEPAGE_ARCADE = 0x91; /* OAAF Definitions for arcade and coinop related Devices */ - public static final int HID_USAGEPAGE_VENDOR_DEFINED_START = 0xFF00; - - - public static final int HID_ELEMENTTYPE_INPUT_MISC = 1; - public static final int HID_ELEMENTTYPE_INPUT_BUTTON = 2; - public static final int HID_ELEMENTTYPE_INPUT_AXIS = 3; - public static final int HID_ELEMENTTYPE_INPUT_SCANCODES = 4; - public static final int HID_ELEMENTTYPE_OUTPUT = 129; - public static final int HID_ELEMENTTYPE_FEATURE = 257; - public static final int HID_ELEMENTTYPE_COLLECTION = 513; - - - - - - - static - { - System.loadLibrary("jinput"); - } - - public native void hidCreate(); - public native void hidDispose(); - public native void enumDevices(); - - /** - * Opens an input device and returns the address of the input queue for that device - */ - public native long openDevice( long lpDevice, int queueDepth ); - public native void closeDevice( long lpDevice, long lpQueue ); - - - /** - * Polls a device and returns the element top most on the input queue. The elements that - * are returned are only those that have had their hidCookies registered with registerDeviceElement. - * @param lpQueue - * @return - */ - public native int pollDevice( long lpQueue ); - public native int pollElement( long lpDevice, long hidCookie ); - public native void registerDeviceElement( long lpQueue, long hidCookie ); - public native void deregisterDeviceElement( long lpQueue, long hidCookie ); - - - private HashMap devices = new HashMap(); - - - public OSXEnvironmentPlugin() - { - System.out.println("net.java.games.input.OSXEnvironmentPlugin instance created"); - - System.out.println("Creating HID engine"); - hidCreate(); - - System.out.println("Enumerating devices"); - enumDevices(); - } - - public void finalize() - { - System.out.println("Disposing HID engine"); - hidDispose(); - } - - public Controller[] getControllers() - { - return (Controller[])(devices.values().toArray( new Controller[0])); - } - - public Controller createController( long lpDevice, String productName, int usage ) - { - - switch (usage) - { - case (HID_DEVICE_MOUSE): - System.out.println("Found mouse [" + productName + "] device address [" + lpDevice + "]"); - return new OSXMouse( this, lpDevice, productName ); - case (HID_DEVICE_JOYSTICK): - System.out.println("Found joystick [" + productName + "] device address [" + lpDevice + "]"); - return new OSXJoystick( this, lpDevice, productName ); - case (HID_DEVICE_GAMEPAD): - System.out.println("Found gamepad [" + productName + "] device address [" + lpDevice + "]"); - return new OSXGamepad( this, lpDevice, productName ); - case (HID_DEVICE_KEYBOARD): - System.out.println("Found keyboard [" + productName + "] device address [" + lpDevice + "]"); - return new OSXKeyboard( this, lpDevice, productName ); - - default: - System.out.println("Found device of unknown or unsupported type. Usage[" + usage + "], ProductName[" + productName + "] - ignoring"); - return null; - } - } - - /** - * Add a controller to the device list - * @param lpDevice - * @param productName - * @param usage - */ - private void addController( long lpDevice, String productName, int usage ) - { - Controller controller = null; - - controller = createController( lpDevice, productName, usage ); - - if ( controller != null ) - { - devices.put( new Long(lpDevice), controller ); - } - } - - /** - * Adds an InputControllerElement to a device. This method is invoked from native code. - * @param lpDevice - * @param elementCookie - * @param elementType - * @param usage - * @param usagePage - * @param rawMin - * @param rawMax - * @param scaledMin - * @param scaledMax - * @param dataBitSize - * @param isRelative - * @param isWrapping - * @param isNonLinear - * @param hasPreferredState - * @param hasNullState - */ - private void addControllerElement( long lpDevice, - long elementCookie, - int elementType, - int usage, - int usagePage, - int rawMin, - int rawMax, - int scaledMin, - int scaledMax, - int dataBitSize, - boolean isRelative, - boolean isWrapping, - boolean isNonLinear, - boolean hasPreferredState, - boolean hasNullState) - { - InputControllerElement element = new InputControllerElement( elementCookie, elementType, usage, usagePage, - rawMin, rawMax, scaledMin, scaledMax, - dataBitSize, isRelative, isWrapping, isNonLinear, - hasPreferredState, hasNullState ); - - - InputController inputController = (InputController)devices.get( new Long( lpDevice) ); - if ( inputController != null ) - { - inputController.addControllerElement( element ); - } - } - - - - public void testDevice( long lpDevice ) - { - System.out.println("Opening device "); - long lpQueue = openDevice( lpDevice, 32 ); - - for ( int i = 0; i < 50; i++ ) - { - try - { - pollDevice( lpQueue ); - Thread.sleep(10); - } - catch( Exception e ) - { - System.out.println("Interrupted" + e ); - } - } - - System.out.println("Closing device"); - closeDevice( lpDevice, lpQueue ); - } - - public static void main (String args[]) - { - System.out.println("Started net.java.games.input.OSXEnvironmentPlugin"); - OSXEnvironmentPlugin newjni = new OSXEnvironmentPlugin(); - - //newjni.hidCreate(); - - //newjni.enumDevices(); - - - Controller[] controllers = newjni.getControllers(); - - for ( int i = 0; i < controllers.length; i++ ) - { - System.out.println("Controller [" + controllers[i].getName() +"] enumerated..."); - } - - //newjni.hidDispose(); - - System.out.println("Done"); - } - -}
\ No newline at end of file diff --git a/plugins/OSX/src/java/net/java/games/input/OSXGamepad.java b/plugins/OSX/src/java/net/java/games/input/OSXGamepad.java deleted file mode 100644 index d739b6c..0000000 --- a/plugins/OSX/src/java/net/java/games/input/OSXGamepad.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.java.games.input; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 3:59:09 PM - * To change this template use Options | File Templates. - */ -public class OSXGamepad extends AbstractController implements InputController -{ - private OSXEnvironmentPlugin plugin; - private long lpDevice; - private long lpQueue; - - public OSXGamepad( OSXEnvironmentPlugin plugin, long lpDevice, String productName ) - { - super( productName ); - - this.plugin = plugin; - this.lpDevice = lpDevice; - - openDevice(); - } - public boolean poll() - { - plugin.pollDevice( lpQueue ); - - return true; - } - - public void openDevice() - { - this.lpQueue = plugin.openDevice( this.lpDevice, 32 ); - } - - public void closeDevice() - { - plugin.closeDevice( this.lpDevice, this.lpQueue ); - } - - public void pollDevice() - { - plugin.pollDevice( this.lpQueue ); - } - - public void addControllerElement(InputControllerElement element) - { - switch ( element.getElementType() ) - { - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_MISC: - System.out.println("*Adding misc component"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_BUTTON: - System.out.println("*Adding button"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_AXIS: - System.out.println("*Adding axis"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_SCANCODES: - System.out.println("*Adding scancode"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_OUTPUT: - System.out.println("*Adding forcefeedback"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_FEATURE: - - System.out.println("*Adding feature"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_COLLECTION: - System.out.println("*Adding collection"); - break; - - } - } -} diff --git a/plugins/OSX/src/java/net/java/games/input/OSXJoystick.java b/plugins/OSX/src/java/net/java/games/input/OSXJoystick.java deleted file mode 100644 index f200514..0000000 --- a/plugins/OSX/src/java/net/java/games/input/OSXJoystick.java +++ /dev/null @@ -1,83 +0,0 @@ -package net.java.games.input; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 3:58:45 PM - * To change this template use Options | File Templates. - */ -public class OSXJoystick extends AbstractController implements InputController -{ - private OSXEnvironmentPlugin plugin; - private long lpDevice; - private long lpQueue; - - public OSXJoystick( OSXEnvironmentPlugin plugin, long lpDevice, String productName ) - { - super( productName ); - - this.plugin = plugin; - this.lpDevice = lpDevice; - - openDevice(); - } - - public boolean poll() - { - plugin.pollDevice( lpQueue ); - - return true; - } - - public void openDevice() - { - this.lpQueue = plugin.openDevice( this.lpDevice, 32 ); - } - - public void closeDevice() - { - plugin.closeDevice( this.lpDevice, this.lpQueue ); - } - - public void pollDevice() - { - plugin.pollDevice( this.lpQueue ); - } - - public void addControllerElement(InputControllerElement element) - { - switch ( element.getElementType() ) - { - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_MISC: - System.out.println("*Adding misc component"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_BUTTON: - System.out.println("*Adding button"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_AXIS: - System.out.println("*Adding axis"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_SCANCODES: - System.out.println("*Adding scancode"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_OUTPUT: - System.out.println("*Adding forcefeedback"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_FEATURE: - - System.out.println("*Adding feature"); - break; - - case OSXEnvironmentPlugin.HID_ELEMENTTYPE_COLLECTION: - System.out.println("*Adding collection"); - break; - - } - } -} diff --git a/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java b/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java deleted file mode 100644 index 4809a75..0000000 --- a/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java +++ /dev/null @@ -1,253 +0,0 @@ -package net.java.games.input; - -import java.util.HashMap; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 3:57:58 PM - * To change this template use Options | File Templates. - */ -public class OSXKeyboard extends StandardKeyboard implements InputController -{ - - private final static int[] CROSSTABLE = { - 0x00, // VOID - 0x29, // ESCAPE - 0x1E, // _1 - 0x1F, // _2 - 0x20, // _3 - 0x21, // _4 - 0x22, // _5 - 0x23, // _6 - 0x24, // _7 - 0x25, // _8 - 0x26, // _9 - 0x27, // _0 - 0x2D, // MINUS - 0x2E, // EQUALS - 0x2A, // BACK - 0x2B, // TAB - 0x14, // Q - 0x1A, // W - 0x08, // E - 0x15, // R - 0x17, // T - 0x1C, // Y - 0x18, // U - 0x0C, // I - 0x12, // O - 0x13, // P - 0x2F, // [ - 0x30, // ] - 0x28, // RETURN - 0xE0, // LEFT CONTROL - 0x04, // A - 0x16, // S - 0x07, // D - 0x09, // F - 0x0A, // G - 0x0B, // H - 0x0D, // J - 0x0E, // K - 0x0F, // L - 0x33, // ; - 0x34, // ' - 0x35, // ~ - 0xE1, // / - 0x31, // BACKSLASH (\) - 0x1D, // Z - 0x1B, // X - 0x06, // C - 0x19, // V - 0x05, // B - 0x11, // N - 0x10, // M - 0x36, // , - 0x37, // . - 0x38, // SLASH (/) - 0xE5, // RSHIFT - 0x55, // MULT (*) - 0xE2, // LEFT ALT - 0x2C, // SPACE - 0x39, // CAPSLOCK - 0x3A, // F1 - 0x3B, // F2 - 0x3C, // F3 - 0x3D, // F4 - 0x3E, // F5 - 0x3F, // F6 - 0x40, // F7 - 0x41, // F8 - 0x42, // F9 - 0x43, // F10 - 0x53, // NUMLOCK - 0x47, // SCROLLLOCK - 0x5F, // NUMPAD7 - 0x60, // NUMPAD8 - 0x61, // NUMPAD9 - 0x56, // SUBTRACT (KEYPAD -) - 0x5C, // NUMPAD4 - 0x5D, // NUMPAD5 - 0x5E, // NUMPAD6 - 0x57, // ADD (KEYPAD +) - 0x59, // NUMPAD1 - 0x5A, // NUMPAD2 - 0x5B, // NUMPAD3 - 0x62, // NUMPAD0 - 0x63, // DECIMAL (KEYPAD .) - 0x44, // F11 - 0x45, // F12 - 0x68, // F13 - 0x69, // F14 - 0x6A, // F15 - 0x87, // KANA - 0x88, // CONVERT - 0x89, // NONCONVERT - 0x8A, // YEN - 0x67, // NUMPAD= - 0x8B, // CIRCUMFLEX - 0x8C, // AT - 0x8D, // COLON - 0x9F, // UNDERLINE - 0x8E, // KANJI - 0x78, // STOP - 0x8F, // AX - 0x90, // UNLABELED - 0x58, // NUMPAD ENTER - 0xE4, // RIGHT CONTROL - 0x85, // NUMPAD COMMA - 0x54, // DIVIDE ( NUMPAD /) - 0x9A, // SYSREQ - 0xE6, // RIGHT ALT - 0x48, // PAUSE - 0x4A, // HOME - 0x52, // UP - 0x9D, // PRIOR - 0x50, // LEFT - 0x4F, // RIGHT - 0x4D, // END - 0x51, // DOWN - 0xA2, // NEXT - 0x49, // INSERT - 0x4C, // DELETE - 0xE3, // LEFT WIN - 0xE7, // RIGHT WIN - 0x65, // APPS - 0x66, // POWER - 0x66 // SLEEP - }; - - private OSXEnvironmentPlugin plugin; - private long lpDevice; - private long lpQueue; - private HashMap keys = new HashMap(); - - private static int[] COOKIETABLE = new int[CROSSTABLE.length ]; - - public OSXKeyboard( OSXEnvironmentPlugin plugin, long lpDevice, String productName ) - { - super( productName ); - - this.plugin = plugin; - this.lpDevice = lpDevice; - - openDevice(); - } - - public void openDevice() - { - this.lpQueue = plugin.openDevice( this.lpDevice, 256 ); - } - - public void closeDevice() - { - plugin.closeDevice( this.lpDevice, this.lpQueue ); - } - - public void addControllerElement(InputControllerElement element) - { - System.out.println("Adding keyboard elements usage page[" + element.getUsagePage() + "] usage [" + element.getUsage() + "] type [" + element.getElementType() + "]" ); - - switch( element.getUsagePage() ) - { - case OSXEnvironmentPlugin.HID_USAGEPAGE_KEYBOARD: - - System.out.println("Found keyboard element"); - - if ( element.getElementType() == OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_BUTTON ) - { - // register this key with the queue system as all buttons are retrieved from the - // input controllers queue - // - System.out.println("Registering button-key (usage page [" + element.getUsagePage() + "], usage[" + element.getUsage() + "], elementType [" + element.getElementType() + "], hidCookie [" + element.getHidCookie() + "])"); - - - if ( keys.get( new Long( element.getUsage() )) == null ) - { - plugin.registerDeviceElement( lpQueue, element.getHidCookie() ); - - keys.put( new Long( element.getUsage() ), element ); - System.out.println("Registered key [" + element.getHidCookie() + "]"); - } - else - { - System.out.println("Ignoring key [" + element.getHidCookie() + "] already enumerated."); - } - } - else - { - System.out.println("Ignoring non-button-key (usage page [" + element.getUsagePage() + "], usage[" + element.getUsage() + "], elementType [" + element.getElementType() + "], hidCookie [" + element.getHidCookie() + "])"); - } - break; - - default: - } - } - - public boolean poll() - { - plugin.pollDevice( lpQueue ); - - - return true; - } - - - /** Returns whether or not the given key has been pressed since the last - * call to poll. - * @param key The key whose state to check. - * @return true if this key has changed state since last read of its state, false otherwise. - */ - protected boolean isKeyPressed(Keyboard.Key key) - { - KeyID id = (KeyID)key.getIdentifier(); - int keyIndex = id.getKeyIndex(); - - // get that key code out of the crosstable and find the proper InputControllerElement/button for that key - // - //TODO: Optimize this - put the usages in another array the same size as the crosstable so the hidCookies - // can be retrieved directly without the Long creation - int usage = CROSSTABLE[keyIndex]; - InputControllerElement element = (InputControllerElement) keys.get( new Long(usage) ); - - - if ( element != null ) - { - int value = plugin.pollElement( lpDevice, element.getHidCookie() ); - - System.out.println("Key Poll result [" + value + "]"); - if ( value == 1 ) - { - return true; - } - else - { - return false; - } - } - - return false; - } -} diff --git a/plugins/OSX/src/java/net/java/games/input/OSXMouse.java b/plugins/OSX/src/java/net/java/games/input/OSXMouse.java deleted file mode 100644 index 31e683e..0000000 --- a/plugins/OSX/src/java/net/java/games/input/OSXMouse.java +++ /dev/null @@ -1,251 +0,0 @@ -package net.java.games.input; - -/** - * Created by IntelliJ IDEA. - * User: gpierce - * Date: Aug 2, 2003 - * Time: 3:57:00 PM - * To change this template use Options | File Templates. - */ -public class OSXMouse extends Mouse implements InputController -{ - private OSXEnvironmentPlugin plugin; - private long lpDevice; - private long lpQueue; - private int buttonCount = 0; - - - public OSXMouse( OSXEnvironmentPlugin plugin, long lpDevice, String productName ) - { - super( productName ); - - this.plugin = plugin; - this.lpDevice = lpDevice; - - openDevice(); - - buttons = new ButtonsImpl(); - ball = new BallImpl(); - } - - public void openDevice() - { - this.lpQueue = plugin.openDevice( this.lpDevice, 32 ); - } - - public void closeDevice() - { - plugin.closeDevice( this.lpDevice, this.lpQueue ); - } - - public boolean poll() - { - plugin.pollDevice( this.lpQueue ); - - return true; - } - - public void addControllerElement(InputControllerElement element) - { - - switch ( element.getUsagePage() ) - { - case OSXEnvironmentPlugin.HID_USAGEPAGE_BUTTON: - buttonCount ++; - System.out.println("Adding button [" + buttonCount + "]"); - ((ButtonsImpl)buttons).addButton(element); - break; - - - case OSXEnvironmentPlugin.HID_USAGEPAGE_GENERICDESKTOP: - switch( element.getUsage() ) - { - case OSXEnvironmentPlugin.HID_USAGE_POINTER: - System.out.println("Adding pointer - this will contain axis"); - break; - - case OSXEnvironmentPlugin.HID_USAGE_XAXIS: - ((BallImpl)ball).addXAxis(element); - System.out.println("Adding X Axis") ; - break; - - case OSXEnvironmentPlugin.HID_USAGE_YAXIS: - ((BallImpl)ball).addYAxis(element); - System.out.println("Adding Y Axis"); - break; - - case OSXEnvironmentPlugin.HID_USAGE_WHEEL: - ((BallImpl)ball).addWheelAxis(element); - System.out.println("Adding wheel"); - break; - - default: - - } - break; - - - default: - - } - } - - /** - * Implementation class representing the mouse ball - */ - class BallImpl extends Ball - { - /** - * Public constructor - */ - public BallImpl() - { - super(OSXMouse.this.getName() + " ball"); - } - - public void addXAxis( InputControllerElement element ) - { - x = new BallAxis( Axis.Identifier.X, element ); - } - - public void addYAxis( InputControllerElement element ) - { - y = new BallAxis( Axis.Identifier.Y, element ); - } - - public void addWheelAxis( InputControllerElement element ) - { - wheel = new BallAxis( Axis.Identifier.SLIDER, element ); - } - } - - - /** - * Implementation class representing the mouse buttons - */ - class ButtonsImpl extends Buttons - { - /** - * Public constructor - */ - public ButtonsImpl() - { - super(OSXMouse.this.getName() + " buttons"); - } - - public void addButton( InputControllerElement element ) - { - if ( left == null ) - { - left = new ButtonImpl( ButtonID.LEFT, element ); - } - else if ( right == null ) - { - right = new ButtonImpl( ButtonID.RIGHT, element ); - } - else if ( middle == null ) - { - middle = new ButtonImpl( ButtonID.MIDDLE, element ); - } - } - } - - /** - * Mouse button axis implementation - */ - class ButtonImpl extends Button - { - - private long hidCookie; - private boolean isRelative; - - - /** Public constructor - * @param id An ID of a button to create an obejct to represent. - * - */ - public ButtonImpl(ButtonID id, InputControllerElement element) - { - super(id.getName(), id); - this.hidCookie = element.getHidCookie(); - this.isRelative = element.isRelative(); - } - - /** Returns the data from the last time the control has been polled. - * If this axis is a button, the value returned will be either 0.0f or 1.0f. - * If this axis is normalized, the value returned will be between -1.0f and - * 1.0f. - * @return state of controller. (Note: DX8 mice actually - * queue state so what is returned is the next state, - * not necessarily the most current one.) - */ - public float getPollData() - { - return (float) plugin.pollElement( lpDevice, hidCookie ); - } - - /** Returns <code>true</code> if data returned from <code>poll</code> - * is relative to the last call, or <code>false</code> if data - * is absolute. - * @return true if data is relative, otherwise false. - */ - public boolean isRelative() - { - return isRelative; - } - } - - - /** - * Mouse ball axis implementation - */ - class BallAxis extends AbstractAxis - { - - private long hidCookie; - private boolean isRelative; - - /** Public constructor - * @param id An ID for a mouse axis to create an object to represent. - */ - public BallAxis(Identifier id, InputControllerElement element) - { - super(id.getName(), id); - - this.hidCookie = element.getHidCookie(); - this.isRelative = element.isRelative(); - } - - /** Returns the data from the last time the control has been polled. - * If this axis is a button, the value returned will be either 0.0f or 1.0f. - * If this axis is normalized, the value returned will be between -1.0f and - * 1.0f. - * @return data. (Note that mice queue state in DX8 so what - * is returned is the next stae in the queue, not - * necessarily the most current one.) - */ - public float getPollData() - { - return (float) plugin.pollElement( lpDevice, hidCookie ); - } - - /** Returns <code>true</code> if data returned from <code>poll</code> - * is relative to the last call, or <code>false</code> if data - * is absolute. - * @return true if relative, otherwise false. - */ - public boolean isRelative() - { - return isRelative; - } - - /** Returns whether or not the axis is analog, or false if it is digital. - * @return true if analog, false if digital - */ - public boolean isAnalog() - { - return true; - } - } - -} diff --git a/plugins/OSX/src/native/build.xml b/plugins/OSX/src/native/build.xml deleted file mode 100644 index b88c856..0000000 --- a/plugins/OSX/src/native/build.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" ?> -<project name="OS X Plugin, Native code" basedir="." default="compileNativeJinputLib"> - <description>OSX JInput Native Plugin</description> - <property name="src" location="src" /> - <property name="build" location="classes" /> - <property name="dist" location="../../dist" /> - <property name="plugins" location="plugins" /> - - <target name="init"> - <mkdir dir="build"/> - </target> - - <target name="compileNativeJinputLib" depends="init"> - <exec dir="." executable="cc" os="Mac OS X"> - - <arg line="-c -I${java.home}/include jinputjnilib.c"/> - </exec> - <exec dir="." executable="cc" os="Mac OS X"> - <arg line="-bundle -o libjinput.jnilib jinputjnilib.o -framework JavaVM -framework CoreFoundation -framework IOKit "/> - </exec> - </target> - -</project> diff --git a/plugins/OSX/src/native/jinputjnilib.c b/plugins/OSX/src/native/jinputjnilib.c deleted file mode 100644 index 86c7347..0000000 --- a/plugins/OSX/src/native/jinputjnilib.c +++ /dev/null @@ -1,839 +0,0 @@ -/* - * %W% %E% - * - * Copyright 2002 Sun Microsystems, Inc. All rights reserved. - * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. - */ -/***************************************************************************** -* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions are met: -* -* - Redistribution of source code must retain the above copyright notice, -* this list of conditions and the following disclaimer. -* -* - Redistribution in binary form must reproduce the above copyright notice, -* this list of conditions and the following disclaimer in the documentation -* and/or other materails provided with the distribution. -* -* Neither the name Sun Microsystems, Inc. or the names of the contributors -* may be used to endorse or promote products derived from this software -* without specific prior written permission. -* -* This software is provided "AS IS," without a warranty of any kind. -* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING -* ANY IMPLIED WARRANT OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR -* NON-INFRINGEMEN, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND -* ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS -* A RESULT OF USING, MODIFYING OR DESTRIBUTING THIS SOFTWARE OR ITS -* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST -* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, -* INCIDENTAL OR PUNITIVE DAMAGES. HOWEVER CAUSED AND REGARDLESS OF THE THEORY -* OF LIABILITY, ARISING OUT OF THE USE OF OUR INABILITY TO USE THIS SOFTWARE, -* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* -* You acknowledge that this software is not designed or intended for us in -* the design, construction, operation or maintenance of any nuclear facility -* -*****************************************************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <ctype.h> -#include <sys/errno.h> -#include <sysexits.h> -#include <mach/mach.h> -#include <mach/mach_error.h> -#include <IOKit/IOKitLib.h> -#include <IOKit/IOCFPlugIn.h> -#include <IOKit/hid/IOHIDLib.h> -#include <IOKit/hid/IOHIDKeys.h> -#include <CoreFoundation/CoreFoundation.h> -#include <Carbon/Carbon.h> -#include "net_java_games_input_OSXEnvironmentPlugin.h" - -Boolean init( JNIEnv * env ); -void createMasterPort(); -void disposeMasterPort(); - - -void createHIDDevice(io_object_t hidDevice, IOHIDDeviceInterface ***hidDeviceInterface); -IOReturn openDevice(IOHIDDeviceInterface ***hidDeviceInterface); -IOReturn closeDevice(IOHIDDeviceInterface ***hidDeviceInterface); - - -Boolean showDictionaryElement (CFDictionaryRef dictionary, CFStringRef key); -void showProperty(const void * key, const void * value); -void displayCFProperty(CFStringRef object, CFTypeRef value); -void CFObjectShow( CFTypeRef value ); -void CFObjectSend( CFTypeRef value ); - -jclass CLASS_JNIWrapper = NULL; -jmethodID MID_AddController = NULL; -jmethodID MID_AddControllerElement = NULL; -mach_port_t masterPort = NULL; -io_iterator_t hidObjectIterator; - -long elementCookie; -long elementType; -long usage; -long usagePage; -long min; -long max; -long scaledMin; -long scaledMax; -long size; -jboolean isRelative; -jboolean isWrapping; -jboolean isNonLinear; - - -JNIEnv * lpEnv; -jlong lpDevice; -jobject lpObj; -jboolean completeElement = JNI_FALSE; - - - - -Boolean showDictionaryElement (CFDictionaryRef dictionary, CFStringRef key) -{ - CFTypeRef value = CFDictionaryGetValue (dictionary, key); - if (value) - { - const char * c = CFStringGetCStringPtr (key, CFStringGetSystemEncoding ()); - if (c) - { - printf ("%s", c); - } - else - { - CFIndex bufferSize = CFStringGetLength (key) + 1; - char * buffer = (char *)malloc (bufferSize); - if (buffer) - { - if (CFStringGetCString (key, buffer, bufferSize, CFStringGetSystemEncoding ())) - printf ("%s", buffer); - free(buffer); - } - } - - printf("="); - - CFObjectShow( value ); - - printf("\n"); - } - return (value != NULL); -} - -static void showCFArray (const void * value, void * parameter) -{ - if (CFGetTypeID (value) != CFDictionaryGetTypeID ()) - { - return; - } - - CFObjectShow(value); -} - -void CFObjectShow( CFTypeRef value ) -{ - CFTypeID type = CFGetTypeID(value); - if (type == CFArrayGetTypeID()) - { - CFRange range = {0, CFArrayGetCount (value)}; - - //Show an element array containing one or more element dictionaries - CFArrayApplyFunction (value, range, showCFArray, 0); - } - else if (type == CFBooleanGetTypeID()) - { - printf(CFBooleanGetValue(value) ? "true" : "false"); - } - else if (type == CFDictionaryGetTypeID()) - { - printf("Map\n"); - - - showDictionaryElement (value, CFSTR(kIOHIDElementCookieKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementCollectionTypeKey)); - - showDictionaryElement (value, CFSTR(kIOHIDElementMinKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementMaxKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementScaledMinKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementScaledMaxKey)); - - showDictionaryElement (value, CFSTR(kIOHIDElementSizeKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementIsRelativeKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementIsWrappingKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementIsNonLinearKey)); -#ifdef kIOHIDElementHasPreferredStateKey - showDictionaryElement (value, CFSTR(kIOHIDElementHasPreferredStateKey)); -#else - showDictionaryElement (value, CFSTR(kIOHIDElementHasPreferedStateKey)); -#endif - showDictionaryElement (value, CFSTR(kIOHIDElementHasNullStateKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementVendorSpecificKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementUnitKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementUnitExponentKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementNameKey)); - showDictionaryElement (value, CFSTR(kIOHIDElementKey)); - - printf("\n\n\n"); - } - else if (type == CFNumberGetTypeID()) - { - long number; - if (CFNumberGetValue (value, kCFNumberLongType, &number)) - { - printf("0x%lx (%ld)", number, number); - } - } - else if (type == CFStringGetTypeID()) - { - const char * c = CFStringGetCStringPtr (value, CFStringGetSystemEncoding ()); - if (c) - { - printf ("%s", c); - } - else - { - CFIndex bufferSize = CFStringGetLength (value) + 1; - char * buffer = (char *)malloc (bufferSize); - if (buffer) - { - if (CFStringGetCString (value, buffer, bufferSize, CFStringGetSystemEncoding ())) - { - printf ("%s", buffer); - } - - free(buffer); - } - } - } -} - -//////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////// - -Boolean init(JNIEnv* env) -{ - CLASS_JNIWrapper = (*env)->FindClass(env,"net/java/games/input/OSXEnvironmentPlugin"); - if ( CLASS_JNIWrapper == NULL ) - { - printf("Class OSXEnvironmentPlugin not found... \n"); - return FALSE; - } - - MID_AddController = (*env)->GetMethodID(env, CLASS_JNIWrapper, "addController", "(JLjava/lang/String;I)V"); - if (MID_AddController == NULL) - { - printf("Method addController not found... \n"); - return FALSE; - } - - MID_AddControllerElement = (*env)->GetMethodID(env, CLASS_JNIWrapper, "addControllerElement", "(JJIIIIIIIIZZZZZ)V"); - if (MID_AddControllerElement == NULL) - { - printf("Method addControllerElement not found... \n"); - return FALSE; - } - - return TRUE; -} - -void createMasterPort() -{ - IOReturn ioReturnValue = kIOReturnSuccess; - - //Get a Mach port to initiate communication with I/O Kit. - // - ioReturnValue = IOMasterPort(bootstrap_port, &masterPort); -} - -void disposeMasterPort() -{ - //Free master port if we created one. - // - if (masterPort) - { - mach_port_deallocate(mach_task_self(), masterPort); - } -} - -void createHIDDevice( io_object_t hidDevice, IOHIDDeviceInterface ***hidDeviceInterface ) -{ - io_name_t className; - IOCFPlugInInterface **plugInInterface = NULL; - HRESULT plugInResult = S_OK; - SInt32 score = 0; - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = IOObjectGetClass(hidDevice, className); - if ( ioReturnValue != kIOReturnSuccess ) - { - printf("Failed to get IOObject class name."); - } - - printf("Found device type [%s]\n", className); - - ioReturnValue = IOCreatePlugInInterfaceForService(hidDevice, - kIOHIDDeviceUserClientTypeID, - kIOCFPlugInInterfaceID, - &plugInInterface, - &score); - - if (ioReturnValue == kIOReturnSuccess) - { - //Call a method of the intermediate plug-in to create the device - //interface - // - plugInResult = (*plugInInterface)->QueryInterface(plugInInterface, - CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID), - (LPVOID) hidDeviceInterface); - if ( plugInResult != S_OK ) - { - printf("Couldn't create HID class device interface"); - } - - (*plugInInterface)->Release(plugInInterface); - } -} - -IOReturn openDevice(IOHIDDeviceInterface ***hidDeviceInterface) -{ - IOReturn ioReturnValue = kIOReturnSuccess; - - //todo, change this to be controlled from the java layer at each device - // - ioReturnValue = (**hidDeviceInterface)->open(*hidDeviceInterface, 0 ); - if ( ioReturnValue != kIOReturnSuccess ) - { - printf("Unable to open device - return [%d]\n", ioReturnValue ); - } - else - { - printf("Successfully opened device \n"); - } - - return ioReturnValue; -} - -IOReturn closeDevice(IOHIDDeviceInterface ***hidDeviceInterface) -{ - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = (**hidDeviceInterface)->close(*hidDeviceInterface); - if ( ioReturnValue != kIOReturnSuccess ) - { - printf("Unable to close device - return [%d]\n", ioReturnValue ); - } - else - { - printf("Successfully closed device \n"); - } - - // release the device interface - // - (**hidDeviceInterface)->Release(*hidDeviceInterface); - - return ioReturnValue; -} - -static void sendCFArray(const void * value, void * parameter) -{ - if (CFGetTypeID (value) != CFDictionaryGetTypeID ()) - { - return; - } - - CFObjectSend(value); -} - -void CFObjectSend( CFTypeRef value ) -{ - CFTypeID type = CFGetTypeID(value); - if (type == CFArrayGetTypeID()) - { - CFRange range = {0, CFArrayGetCount (value)}; - - //Show an element array containing one or more element dictionaries - CFArrayApplyFunction (value, range, sendCFArray, 0); - } - else if (type == CFDictionaryGetTypeID()) - { -// printf("Sending Map\n"); - - - CFTypeRef val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementCookieKey) ); - if ( val ) - { - CFNumberGetValue ( val , kCFNumberLongType, &elementCookie); - printf("ElementCookie - 0x%lx (%ld) \n", elementCookie, elementCookie); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementTypeKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &elementType); - printf("element Type - 0x%lx (%ld) \n", elementType, elementType); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementUsageKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &usage); - printf("usage - 0x%lx (%ld) \n", usage, usage); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementUsagePageKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &usagePage); - printf("usage page- 0x%lx (%ld) \n", usagePage, usagePage); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementMinKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &min); - //printf("min - 0x%lx (%ld) \n", min, min); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementMaxKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &max); - //printf("max - 0x%lx (%ld) \n", max, max); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementScaledMinKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &scaledMin); - //printf("scaledMin - 0x%lx (%ld) \n", scaledMin, scaledMin); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementScaledMaxKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &scaledMax); - //printf("scaledMax - 0x%lx (%ld) \n", scaledMax, scaledMax); - } - - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementSizeKey) ); - if ( val ) - { - CFNumberGetValue ( val, kCFNumberLongType, &size); - //printf("Size - 0x%lx (%ld) \n", size, size); - } - - jboolean isRelative = JNI_FALSE; - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementIsRelativeKey) ); - if ( val ) - { - isRelative = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } - - - jboolean isWrapping = JNI_FALSE; - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementIsWrappingKey) ); - if ( val ) - { - isWrapping = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } - - - jboolean isNonLinear = JNI_FALSE; - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementIsNonLinearKey) ); - if ( val ) - { - isNonLinear = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } - - - jboolean hasPreferredState = JNI_FALSE; -#ifdef kIOHIDElementHasPreferredStateKey - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementHasPreferredStateKey) ); - if ( val ) - { - hasPreferredState = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } -#else - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementHasPreferedStateKey) ); - if ( val ) - { - hasPreferredState = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } -#endif - - jboolean hasNullState = JNI_FALSE; - val = CFDictionaryGetValue( value, CFSTR(kIOHIDElementHasNullStateKey) ); - if ( val ) - { - hasNullState = (CFBooleanGetValue(val) ? JNI_TRUE : JNI_FALSE); - } - - (*lpEnv)->CallVoidMethod(lpEnv, lpObj, MID_AddControllerElement, - (jlong)(long)lpDevice, - (jlong)(long)elementCookie, - (jint)(long)elementType, - (jint)(long)usage, - (jint)(long)usagePage, - (jint)(long)min, - (jint)(long)max, - (jint)(long)scaledMin, - (jint)(long)scaledMax, - (jint)(long)size, - (jboolean)isRelative, - (jboolean)isWrapping, - (jboolean)isNonLinear, - (jboolean)hasPreferredState, - (jboolean)hasNullState); - -// printf("End of element definition \n"); - - - - CFTypeRef object = CFDictionaryGetValue (value, CFSTR(kIOHIDElementKey)); - if (object) - { - CFObjectSend( object ); - } - - printf("\n\n\n"); - } -} - -void addControllerElements( CFMutableDictionaryRef dictionary, CFStringRef key ) -{ - printf("Adding controller elements\n"); - - CFTypeRef value = CFDictionaryGetValue (dictionary, key); - if (value) - { - CFRange range = {0, CFArrayGetCount (value)}; - CFArrayApplyFunction (value, range, sendCFArray, 0); - } -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: hidCreate - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_hidCreate - (JNIEnv * env, jobject obj) -{ - if ( init( env ) ) - { - createMasterPort(); - } -} -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: hidDispose - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_hidDispose - (JNIEnv * env, jobject obj) -{ - disposeMasterPort(); -} - - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: enumDevices - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_enumDevices - (JNIEnv * env, jobject obj) -{ - - lpEnv = env; - lpObj = obj; - - CFMutableDictionaryRef hidMatchDictionary = NULL; - IOReturn ioReturnValue = kIOReturnSuccess; - Boolean noMatchingDevices = false; - - // Set up a matching dictionary to search the I/O Registry by class - // name for all HID class devices - // - hidMatchDictionary = IOServiceMatching(kIOHIDDeviceKey); - - // Now search I/O Registry for matching devices. - // - ioReturnValue = IOServiceGetMatchingServices(masterPort, hidMatchDictionary, &hidObjectIterator); - - noMatchingDevices = ((ioReturnValue != kIOReturnSuccess) | (hidObjectIterator == NULL)); - - // If search is unsuccessful, print message . - // - if (noMatchingDevices) - { - printf("No matching HID class devices found."); - return; - } - - // IOServiceGetMatchingServices consumes a reference to the - // dictionary, so we don't need to release the dictionary ref. - // - hidMatchDictionary = NULL; - - io_object_t hidDevice = NULL; - IOHIDDeviceInterface **hidDeviceInterface = NULL; - CFMutableDictionaryRef properties = 0; - char path[512]; - kern_return_t result; - - - while ((hidDevice = IOIteratorNext(hidObjectIterator))) - { - result = IORegistryEntryGetPath(hidDevice, kIOServicePlane, path); - - if ( result == KERN_SUCCESS ) - { - result = IORegistryEntryCreateCFProperties(hidDevice, - &properties, - kCFAllocatorDefault, - kNilOptions); - } - - if ((result == KERN_SUCCESS) && properties) - { - //showDictionaryElement(properties, CFSTR(kIOHIDTransportKey)); - //showDictionaryElement(properties, CFSTR(kIOHIDVendorKey)); - //printf("ProductID: "); showDictionaryElement(properties, CFSTR(kIOHIDProductIDKey)); - //printf("VersionNumber: "); showDictionaryElement(properties, CFSTR(kIOHIDVersionNumberKey)); - //printf("Manufacturer: "); showDictionaryElement(properties, CFSTR(kIOHIDManufacturerKey)); - //printf("ProductKey: "); showDictionaryElement(properties, CFSTR(kIOHIDProductKey)); - //printf("SerialNumber: "); showDictionaryElement(properties, CFSTR(kIOHIDSerialNumberKey)); - //showDictionaryElement(properties, CFSTR(kIOHIDLocationIDKey)); - //printf("PrimaryUsage: "); showDictionaryElement(properties, CFSTR(kIOHIDPrimaryUsageKey)); - //showDictionaryElement(properties, CFSTR(kIOHIDPrimaryUsagePageKey)); - //showDictionaryElement(properties, CFSTR(kIOHIDElementKey)); - - - - // get the product name - // - CFTypeRef productName = CFDictionaryGetValue (properties, CFSTR(kIOHIDProductKey)); - - // get the usage for this product - // - long usage; - CFNumberGetValue ( CFDictionaryGetValue( properties, CFSTR(kIOHIDPrimaryUsageKey) ), kCFNumberLongType, &usage); - - - createHIDDevice( hidDevice, &hidDeviceInterface ); - - IOObjectRelease( hidDevice ); - - if ( hidDeviceInterface != NULL ) - { - (*env)->CallVoidMethod(env, obj, MID_AddController, - (jlong)(long)hidDeviceInterface, - (*env)->NewStringUTF( env, CFStringGetCStringPtr( productName, CFStringGetSystemEncoding()) ), - (jint)usage ); - lpEnv = env; - lpDevice = (jlong)(long)hidDeviceInterface; - - addControllerElements( properties, CFSTR(kIOHIDElementKey) ); - - - } - - //Release the properties dictionary - CFRelease(properties); - } - - } - - IOObjectRelease(hidObjectIterator); -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: openDevice - * Signature: (JI)J - */ -JNIEXPORT jlong JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_openDevice - (JNIEnv * env, jobject obj, jlong lpDevice, jint queueDepth) -{ - IOHIDDeviceInterface **hidDeviceInterface = NULL; - hidDeviceInterface = (IOHIDDeviceInterface **) (long)lpDevice; - openDevice( &hidDeviceInterface ); - - - IOHIDQueueInterface **queue = NULL; - queue = (*hidDeviceInterface)->allocQueue(hidDeviceInterface); - - if (queue) - { - // create a queue and specify how deep they want the input queue to be - // - (*queue)->create( queue, 0, (int)queueDepth ); - printf("InputQueue created %lx with depth %d \n", (long) queue, (int)queueDepth ); - - // start the input queue - // - (*queue)->start( queue ); - } - else - { - printf("Unable to create queue for device! \n"); - } - - return (jlong)(long)queue; - -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: closeDevice - * Signature: (JJ)V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_closeDevice - (JNIEnv * env, jobject obj, jlong lpDevice, jlong lpQueue) -{ - IOHIDDeviceInterface **hidDeviceInterface = NULL; - hidDeviceInterface = (IOHIDDeviceInterface **) (long)lpDevice; - - IOHIDQueueInterface **queue = NULL; - queue = (IOHIDQueueInterface **)(long)lpQueue; - - // stop the queue - // - (*queue)->stop(queue); - - // dispose of the queue - // - (*queue)->dispose(queue); - - // release the queue - // - (*queue)->Release(queue); - - // close the input device - // - closeDevice( &hidDeviceInterface ); -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: pollDevice - * Signature: (J)I - */ -JNIEXPORT jint JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_pollDevice - (JNIEnv * env, jobject obj, jlong lpQueue) -{ - IOHIDEventStruct event; - - IOHIDQueueInterface **queue = NULL; - queue = (IOHIDQueueInterface **)(long)lpQueue; - - AbsoluteTime zeroTime = {0,0}; - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = (*queue)->getNextEvent(queue, &event, zeroTime, 0); - if ( ioReturnValue == kIOReturnSuccess ) - { - printf("Queue getNextEvent return value: %ld\n", (long)ioReturnValue ); - } - else - { - printf("Queue event[%lx] %ld\n", (unsigned long) event.elementCookie, event.value ); - } - - return (jint) event.value; -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: pollDevice - * Signature: (JJ)I - */ -JNIEXPORT jint JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_pollElement - (JNIEnv * env, jobject obj, jlong lpDevice, jlong hidCookie) -{ - IOHIDDeviceInterface **hidDeviceInterface = NULL; - hidDeviceInterface = (IOHIDDeviceInterface **) (long)lpDevice; - - IOHIDElementCookie cookie = (IOHIDElementCookie)(long)hidCookie; - - IOHIDEventStruct event; - - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = (*hidDeviceInterface)->getElementValue(hidDeviceInterface, cookie, &event); - if ( ioReturnValue == kIOReturnSuccess ) - { - printf("Queue getNextEvent return value: %ld\n", (long)ioReturnValue ); - } - else - { - printf("Queue event[%lx] %ld\n", (unsigned long) event.elementCookie, event.value ); - } - - return (jint) event.value; -} - - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: registerDeviceElement - * Signature: (JJ)V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_registerDeviceElement - (JNIEnv * env, jobject obj, jlong lpQueue, jlong hidCookie) -{ - IOHIDQueueInterface **queue = NULL; - queue = (IOHIDQueueInterface **)(long)lpQueue; - - IOHIDElementCookie cookie = (IOHIDElementCookie)(long)hidCookie; - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = (*queue)->addElement(queue, cookie, 0); - if ( ioReturnValue == kIOReturnSuccess ) - { - printf("Registered pollElement: %ld\n", (long)cookie ); - } - else - { - printf("Failed to add poll element: %ld\n", (long)cookie ); - } -} - -/* - * Class: net_java_games_input_OSXEnvironmentPlugin - * Method: deregisterDeviceElement - * Signature: (JJ)V - */ -JNIEXPORT void JNICALL Java_net_java_games_input_OSXEnvironmentPlugin_deregisterDeviceElement - (JNIEnv * env, jobject obj, jlong lpQueue, jlong hidCookie) -{ - IOHIDQueueInterface **queue = NULL; - queue = (IOHIDQueueInterface **)(long)lpQueue; - - IOHIDElementCookie cookie = (IOHIDElementCookie)(long)hidCookie; - - IOReturn ioReturnValue = kIOReturnSuccess; - - ioReturnValue = (*queue)->removeElement(queue, cookie ); - if ( ioReturnValue == kIOReturnSuccess ) - { - printf("Removed pollElement: %ld\n", (long)cookie ); - } - else - { - printf("Failed to remove poll element: %ld\n", (long)cookie ); - } -} - - - |