summaryrefslogtreecommitdiffstats
path: root/plugins/linux/src/native/jinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/linux/src/native/jinput.cpp')
-rw-r--r--plugins/linux/src/native/jinput.cpp44
1 files changed, 35 insertions, 9 deletions
diff --git a/plugins/linux/src/native/jinput.cpp b/plugins/linux/src/native/jinput.cpp
index 3ce6c6a..5f78535 100644
--- a/plugins/linux/src/native/jinput.cpp
+++ b/plugins/linux/src/native/jinput.cpp
@@ -39,6 +39,7 @@
#include "MixedDevice.h"
#include "eventInterface.h"
#include "joystickInterface.h"
+#include "logger.h"
Device **jinputDeviceList;
int jinputNumDevices;
@@ -51,22 +52,28 @@ int jinputNumDevices;
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_init
(JNIEnv *, jobject) {
+ LOG_TRACE("Initing event interface\n");
if(evInit()!=0) {
- fprintf(stderr, "Failed to init native event interface\n");
- return -1;
+ fprintf(stderr, "Could not find any working event devices\n");
+// return -1;
}
+ LOG_TRACE("Initing joystick interface\n");
if(jsInit()!=0) {
- fprintf(stderr, "Failed to init native joystick interface\n");
- return -1;
+ fprintf(stderr, "Could not find any working joystick devices\n");
+// return -1;
}
+ LOG_TRACE("Getting the number of event devices\n");
int numEventDevices = evGetNumberDevices();
EventDevice *eventDevices[numEventDevices];
+ LOG_TRACE("Getting %d event devices\n", numEventDevices);
evGetDevices((Device **)eventDevices);
+ LOG_TRACE("Getting the number of joystick devices\n");
int numJoysticks = jsGetNumberDevices();
JoystickDevice *jsDevices[numJoysticks];
+ LOG_TRACE("Getting %d joystick devices\n", numJoysticks);
jsGetDevices((Device **)jsDevices);
@@ -80,12 +87,14 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_init
for(j=joystickPtr;j<numJoysticks;j++) {
JoystickDevice *jsDevice = jsDevices[j];
+ LOG_TRACE("Getting device information for event device %d and joystick %d\n", i, j);
if((jsDevice->getNumberButtons() == eventDevice->getNumberButtons()) && (jsDevice->getNumberAbsAxes() == (eventDevice->getNumberAbsAxes() + eventDevice->getNumberRelAxes()))) {
const char *jsName = jsDevice->getName();
const char *eventDeviceName = eventDevice->getName();
if(strcmp(jsName, eventDeviceName) == 0) {
// The current event device is the curre joystick device too
+ LOG_TRACE("Creating a mixed device with id %d, combining event device %d and joystick device %d\n", jinputNumDevices, i, j);
jinputDeviceList[jinputNumDevices] = new MixedDevice(jsDevice, eventDevice);
jinputNumDevices++;
joystickPtr = j;
@@ -93,12 +102,12 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_init
}
}
/*if(jinputNumDevices == deviceCountCache) {
- //fprintf(stderr, "event device \"%s\" doesn't match js \"%s\"\n", eventDevice->getName(), jsDevice->getName());
- //fprintf(stderr, "event device has %d rel axes, %d abs axis and %d buttons\n", eventDevice->getNumberRelAxes(), eventDevice->getNumberAbsAxes(), eventDevice->getNumberButtons());
- //fprintf(stderr, "js device has %d axes and %d buttons\n", jsDevice->getNumberAbsAxes(), jsDevice->getNumberButtons());
+ fprintf(stderr, "event device \"%s\" doesn't match js \"%s\"\n", eventDevice->getName(), jsDevice->getName());
+ fprintf(stderr, "event device has %d rel axes, %d abs axis and %d buttons\n", eventDevice->getNumberRelAxes(), eventDevice->getNumberAbsAxes(), eventDevice->getNumberButtons());
+ fprintf(stderr, "js device has %d axes and %d buttons\n", jsDevice->getNumberAbsAxes(), jsDevice->getNumberButtons());
} else {
- //fprintf(stderr, "event device %s did match js %s\n", eventDevice->getName(), jsDevice->getName());
- } */
+ fprintf(stderr, "event device %s did match js %s\n", eventDevice->getName(), jsDevice->getName());
+ }*/
}
@@ -122,6 +131,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_init
JNIEXPORT jstring JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getDeviceName
(JNIEnv *env, jobject, jint deviceID) {
+ LOG_TRACE("Gettign device name for jinput device %d\n", deviceID);
return env->NewStringUTF(jinputDeviceList[deviceID]->getName());
}
@@ -133,6 +143,7 @@ JNIEXPORT jstring JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getDe
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getNumAbsAxes
(JNIEnv *env, jobject, jint deviceID) {
+ LOG_TRACE("Gettign number of absolute axes for jinput device %d\n", deviceID);
return jinputDeviceList[deviceID]->getNumberAbsAxes();
}
@@ -144,6 +155,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getNumAb
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getNumRelAxes
(JNIEnv *env, jobject, jint deviceID) {
+ LOG_TRACE("Gettign number of relative axes for jinput device %d\n", deviceID);
return jinputDeviceList[deviceID]->getNumberRelAxes();
}
@@ -155,6 +167,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getNumRe
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxEnvironmentPlugin_getNumButtons
(JNIEnv *, jobject, jint deviceID) {
+ LOG_TRACE("Gettign number of buttons for jinput device %d\n", deviceID);
return jinputDeviceList[deviceID]->getNumberButtons();
}
@@ -179,6 +192,7 @@ JNIEXPORT void JNICALL Java_net_java_games_input_LinuxDevice_getNativeSupportedA
jint *axisReturns = env->GetIntArrayElements(axesData, 0);
+ LOG_TRACE("Getting suported absolute axes for jinput device %d\n", deviceID);
jinputDeviceList[deviceID]->getSupportedAbsAxes(axisReturns);
env->ReleaseIntArrayElements(axesData, axisReturns, 0);
@@ -194,6 +208,7 @@ JNIEXPORT void JNICALL Java_net_java_games_input_LinuxDevice_getNativeSupportedR
jint *axisReturns = env->GetIntArrayElements(axesData, 0);
+ LOG_TRACE("Getting suported relative axes for jinput device %d\n", deviceID);
jinputDeviceList[deviceID]->getSupportedRelAxes(axisReturns);
env->ReleaseIntArrayElements(axesData, axisReturns, 0);
@@ -209,6 +224,7 @@ JNIEXPORT void JNICALL Java_net_java_games_input_LinuxDevice_getNativeSupportedB
jint *buttonDataElements = env->GetIntArrayElements(buttonData, 0);
+ LOG_TRACE("Getting suported buttons for jinput device %d\n", deviceID);
jinputDeviceList[deviceID]->getSupportedButtons(buttonDataElements);
env->ReleaseIntArrayElements(buttonData, buttonDataElements, 0);
@@ -226,7 +242,9 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_nativePoll
jint *relAxesElements = env->GetIntArrayElements(relAxes, 0);
jint *absAxesElements = env->GetIntArrayElements(absAxes, 0);
+ LOG_POLL_TRACE("Polling jinput device %d\n", deviceID);
int retval = jinputDeviceList[deviceID]->poll();
+ LOG_POLL_TRACE("Getting polled data for device %d\n", deviceID);
jinputDeviceList[deviceID]->getPolledData(relAxesElements, absAxesElements, buttonElements);
env->ReleaseIntArrayElements(buttons, buttonElements, 0);
@@ -244,6 +262,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_nativePoll
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisFuzz
(JNIEnv *, jobject, jint deviceID, jint axisID) {
+ LOG_TRACE("Getting fuzz data for axis %d on device %d\n", axisID, deviceID);
return jinputDeviceList[deviceID]->getAbsAxisFuzz(axisID);
}
@@ -255,6 +274,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisFuz
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisMaximum
(JNIEnv *, jobject, jint deviceID, jint axisID) {
+ LOG_TRACE("Getting absolute axes maximum value data for axis %d on device %d\n", axisID, deviceID);
return jinputDeviceList[deviceID]->getAbsAxisMaximum(axisID);
}
@@ -267,6 +287,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisMax
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisMinimum
(JNIEnv *, jobject, jint deviceID, jint axisID) {
+ LOG_TRACE("Getting absolute axes minimum value data for axis %d on device %d\n", axisID, deviceID);
return jinputDeviceList[deviceID]->getAbsAxisMinimum(axisID);
}
@@ -278,6 +299,7 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativeAbsAxisMin
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxDevice_getNativePortType
(JNIEnv *, jobject, jint deviceID) {
+ LOG_TRACE("Getting bus type for device %d\n", deviceID);
jinputDeviceList[deviceID]->getBusType();
}
@@ -294,6 +316,7 @@ JNIEXPORT void JNICALL Java_net_java_games_input_LinuxKeyboard_getNativeSupporte
jint *buttonDataElements = env->GetIntArrayElements(buttons, 0);
+ LOG_TRACE("Gettign number of buttons for jinput keyboard device %d\n", deviceID);
jinputDeviceList[deviceID]->getSupportedButtons(buttonDataElements);
env->ReleaseIntArrayElements(buttons, buttonDataElements, 0);
@@ -311,7 +334,9 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxKeyboard_nativePoll
jint *relAxesElements = env->GetIntArrayElements(relAxes, 0);
jint *absAxesElements = env->GetIntArrayElements(absAxes, 0);
+ LOG_POLL_TRACE("Polling jinput keyboard device %d\n", deviceID);
int retval = jinputDeviceList[deviceID]->poll();
+ LOG_POLL_TRACE("Getting polled data for keyboard device %d\n", deviceID);
jinputDeviceList[deviceID]->getPolledData(relAxesElements, absAxesElements, buttonElements);
env->ReleaseIntArrayElements(buttons, buttonElements, 0);
@@ -329,5 +354,6 @@ JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxKeyboard_nativePoll
JNIEXPORT jint JNICALL Java_net_java_games_input_LinuxKeyboard_getNativePortType
(JNIEnv *, jobject, jint deviceID) {
+ LOG_TRACE("Getting bus type for keyboard device %d\n", deviceID);
jinputDeviceList[deviceID]->getBusType();
}