mirror of
https://github.com/shadowfacts/jinput-arm64.git
synced 2026-02-19 06:05:52 +01:00
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.
This commit is contained in:
parent
6eb181e4be
commit
06c28ad3da
|
|
@ -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() );
|
||||
System.out.println("Registering button-key (usage page [" + element.getUsagePage() + "], usage[" + element.getUsage() + "], elementType [" + element.getElementType() + "], hidCookie [" + 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 );
|
||||
|
||||
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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue