aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgregorypierce <[email protected]>2004-02-28 01:26:36 +0000
committergregorypierce <[email protected]>2004-02-28 01:26:36 +0000
commit5ffcc9b176306a52afb2dd4c1aa68d8da22ff2f3 (patch)
treec511805601f2eb660887c3fffb5a8fc887316558
parentc3307002266097cd5345cf848ba2580363ca4f02 (diff)
Updated so that if a key gets enumerated multiple times, only the first enumeration will be accepted. This was done to stop an issue with certain keys in OSX being enumerated more than once - the first being the correct HID code (assumption) and the second being something wrong. It is not clear why those keys were being enumerated more than once to begin with. But this solves the problem.
git-svn-id: file:///home/sven/projects/JOGL/git-svn/svn-server-sync/jinput/trunk@71 e343933a-64c8-49c5-92b1-88f2ce3e89e8
-rw-r--r--plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java29
1 files changed, 20 insertions, 9 deletions
diff --git a/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java b/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java
index 0fdcef3..4809a75 100644
--- a/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java
+++ b/plugins/OSX/src/java/net/java/games/input/OSXKeyboard.java
@@ -168,27 +168,38 @@ public class OSXKeyboard extends StandardKeyboard implements InputController
public void addControllerElement(InputControllerElement element)
{
- //System.out.println("Adding keyboard elements usage page[" + element.getUsagePage() + "] usage [" + element.getUsage() + "] type [" + element.getElementType() + "]" );
+ 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");
+ System.out.println("Found keyboard element");
if ( element.getElementType() == OSXEnvironmentPlugin.HID_ELEMENTTYPE_INPUT_BUTTON )
{
- System.out.println("Adding key [" + element.getUsage() + "]");
-
// register this key with the queue system as all buttons are retrieved from the
// input controllers queue
//
- plugin.registerDeviceElement( lpQueue, element.getHidCookie() );
-
- //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
- keys.put( new Long( element.getUsage()), element );
+ 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: