aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/OSX
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/OSX')
-rw-r--r--plugins/OSX/build.xml81
-rw-r--r--plugins/OSX/src/java/net/java/games/input/InputController.java13
-rw-r--r--plugins/OSX/src/java/net/java/games/input/InputControllerElement.java195
-rwxr-xr-xplugins/OSX/src/java/net/java/games/input/OSXEnvironmentPlugin.java484
-rw-r--r--plugins/OSX/src/java/net/java/games/input/OSXGamepad.java82
-rw-r--r--plugins/OSX/src/java/net/java/games/input/OSXJoystick.java83
-rw-r--r--plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java253
-rw-r--r--plugins/OSX/src/java/net/java/games/input/OSXMouse.java251
-rw-r--r--plugins/OSX/src/native/build.xml23
-rw-r--r--plugins/OSX/src/native/jinputjnilib.c839
10 files changed, 0 insertions, 2304 deletions
diff --git a/plugins/OSX/build.xml b/plugins/OSX/build.xml
deleted file mode 100644
index 066c838..0000000
--- a/plugins/OSX/build.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" ?>
-<project basedir="." default="all" name="OSX Plugin">
- <description>OSX JInput 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="classes"/>
- <mkdir dir="dist"/>
- </target>
-
- <target depends="init" name="compile">
- <javac debug="true" deprecation="true" destdir="${build}" source="1.4" srcdir="src/java">
- <classpath>
- <pathelement location="../../coreAPI/bin/jinput.jar"/>
- <pathelement location="../../coreAPI/lib/jutils.jar"/>
- </classpath>
- </javac>
- </target>
-
- <target depends="init,compile" name="jar">
- <jar jarfile="${dist}/HIDWrapper.jar" compress="true" basedir="${build}">
- <exclude name="**/*.java"/>
- <exclude name="HIDWrapper.jar"/>
- <exclude name="apidoc"/>
- </jar>
- <copy file="${dist}/HIDWrapper.jar" todir="../../coreAPI/src/tests/controller" />
- </target>
-
- <target depends="compileNativeJinputLib,jar" description="Build everything." name="all">
- <echo message="Native OSX JInput library built!"/>
- </target>
-
- <target name="javadoc" depends="init" description="Javadoc for OS X plugin for JInput.">
- <mkdir dir="apidocs"/>
- <javadoc packagenames="net.java.games.input.*"
- destdir="apidocs"
- additionalparam="-source 1.4"
- link="../../../coreAPI/apidocs">
- <sourcepath>
- <pathelement location="src/java"/>
- </sourcepath>
- <classpath>
- <pathelement location="../../coreAPI/bin/jinput.jar"/>
- <pathelement location="../../coreAPI/lib/jutils.jar"/>
- </classpath>
- </javadoc>
- </target>
-
- <target description="Clean all build products." name="clean">
- <delete failonerror="no">
- <fileset dir="${build}">
- <include name="**/*.class"/>
- </fileset>
- </delete>
- <delete file="${dist}/HIDWrapper.jar" failonerror="no"/>
- <delete file="${dist}/libjinput.jnilib" failonerror="no"/>
- <delete file="../../coreAPI/src/tests/controller/HIDWrapper.jar" failonerror="no" />
- <delete file="../../coreAPI/src/tests/controller/libjinput.jnilib" failonerror="no"/>
- <delete file="apidoc" failonerror="no"/>
- </target>
-
- <target depends="init,compile" name="createJNIHeaders">
- <javah destdir="src/native">
- <classpath>
- <pathelement path="${build}"/>
- <pathelement location="../../coreAPI/classes"/>
- </classpath>
- <class name="net.java.games.input.OSXEnvironmentPlugin"/>
- </javah>
- </target>
-
-
- <target name="compileNativeJinputLib" depends="init,createJNIHeaders" >
- <ant dir="src/native" target="compileNativeJinputLib"/>
- <copy file="src/native/libjinput.jnilib" todir="${dist}" />
- <copy file="${dist}/libjinput.jnilib" todir="../../coreAPI/src/tests/controller" />
- </target>
-</project>
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 );
- }
-}
-
-
-