|
|
@@ -314,7 +314,7 @@ JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(onNativeHat)(
|
|
|
JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(nativeAddJoystick)(
|
|
|
JNIEnv *env, jclass jcls,
|
|
|
jint device_id, jstring device_name, jstring device_desc, jint vendor_id, jint product_id,
|
|
|
- jint button_mask, jint naxes, jint axis_mask, jint nhats, jboolean can_rumble);
|
|
|
+ jint button_mask, jint naxes, jint axis_mask, jint nhats, jboolean can_rumble, jboolean has_rgb_led);
|
|
|
|
|
|
JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(nativeRemoveJoystick)(
|
|
|
JNIEnv *env, jclass jcls,
|
|
|
@@ -334,7 +334,7 @@ static JNINativeMethod SDLControllerManager_tab[] = {
|
|
|
{ "onNativePadUp", "(II)Z", SDL_JAVA_CONTROLLER_INTERFACE(onNativePadUp) },
|
|
|
{ "onNativeJoy", "(IIF)V", SDL_JAVA_CONTROLLER_INTERFACE(onNativeJoy) },
|
|
|
{ "onNativeHat", "(IIII)V", SDL_JAVA_CONTROLLER_INTERFACE(onNativeHat) },
|
|
|
- { "nativeAddJoystick", "(ILjava/lang/String;Ljava/lang/String;IIIIIIZ)V", SDL_JAVA_CONTROLLER_INTERFACE(nativeAddJoystick) },
|
|
|
+ { "nativeAddJoystick", "(ILjava/lang/String;Ljava/lang/String;IIIIIIZZ)V", SDL_JAVA_CONTROLLER_INTERFACE(nativeAddJoystick) },
|
|
|
{ "nativeRemoveJoystick", "(I)V", SDL_JAVA_CONTROLLER_INTERFACE(nativeRemoveJoystick) },
|
|
|
{ "nativeAddHaptic", "(ILjava/lang/String;)V", SDL_JAVA_CONTROLLER_INTERFACE(nativeAddHaptic) },
|
|
|
{ "nativeRemoveHaptic", "(I)V", SDL_JAVA_CONTROLLER_INTERFACE(nativeRemoveHaptic) }
|
|
|
@@ -406,6 +406,7 @@ static jclass mControllerManagerClass;
|
|
|
|
|
|
// method signatures
|
|
|
static jmethodID midPollInputDevices;
|
|
|
+static jmethodID midJoystickSetLED;
|
|
|
static jmethodID midPollHapticDevices;
|
|
|
static jmethodID midHapticRun;
|
|
|
static jmethodID midHapticRumble;
|
|
|
@@ -752,6 +753,8 @@ JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(nativeSetupJNI)(JNIEnv *env
|
|
|
|
|
|
midPollInputDevices = (*env)->GetStaticMethodID(env, mControllerManagerClass,
|
|
|
"pollInputDevices", "()V");
|
|
|
+ midJoystickSetLED = (*env)->GetStaticMethodID(env, mControllerManagerClass,
|
|
|
+ "joystickSetLED", "(IIII)V");
|
|
|
midPollHapticDevices = (*env)->GetStaticMethodID(env, mControllerManagerClass,
|
|
|
"pollHapticDevices", "()V");
|
|
|
midHapticRun = (*env)->GetStaticMethodID(env, mControllerManagerClass,
|
|
|
@@ -761,7 +764,7 @@ JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(nativeSetupJNI)(JNIEnv *env
|
|
|
midHapticStop = (*env)->GetStaticMethodID(env, mControllerManagerClass,
|
|
|
"hapticStop", "(I)V");
|
|
|
|
|
|
- if (!midPollInputDevices || !midPollHapticDevices || !midHapticRun || !midHapticRumble || !midHapticStop) {
|
|
|
+ if (!midPollInputDevices || !midJoystickSetLED || !midPollHapticDevices || !midHapticRun || !midHapticRumble || !midHapticStop) {
|
|
|
__android_log_print(ANDROID_LOG_WARN, "SDL", "Missing some Java callbacks, do you have the latest version of SDLControllerManager.java?");
|
|
|
}
|
|
|
|
|
|
@@ -1191,13 +1194,13 @@ JNIEXPORT void JNICALL SDL_JAVA_CONTROLLER_INTERFACE(nativeAddJoystick)(
|
|
|
JNIEnv *env, jclass jcls,
|
|
|
jint device_id, jstring device_name, jstring device_desc,
|
|
|
jint vendor_id, jint product_id,
|
|
|
- jint button_mask, jint naxes, jint axis_mask, jint nhats, jboolean can_rumble)
|
|
|
+ jint button_mask, jint naxes, jint axis_mask, jint nhats, jboolean can_rumble, jboolean has_rgb_led)
|
|
|
{
|
|
|
#ifdef SDL_JOYSTICK_ANDROID
|
|
|
const char *name = (*env)->GetStringUTFChars(env, device_name, NULL);
|
|
|
const char *desc = (*env)->GetStringUTFChars(env, device_desc, NULL);
|
|
|
|
|
|
- Android_AddJoystick(device_id, name, desc, vendor_id, product_id, button_mask, naxes, axis_mask, nhats, can_rumble);
|
|
|
+ Android_AddJoystick(device_id, name, desc, vendor_id, product_id, button_mask, naxes, axis_mask, nhats, can_rumble, has_rgb_led);
|
|
|
|
|
|
(*env)->ReleaseStringUTFChars(env, device_name, name);
|
|
|
(*env)->ReleaseStringUTFChars(env, device_desc, desc);
|
|
|
@@ -2186,6 +2189,12 @@ void Android_JNI_PollInputDevices(void)
|
|
|
(*env)->CallStaticVoidMethod(env, mControllerManagerClass, midPollInputDevices);
|
|
|
}
|
|
|
|
|
|
+void Android_JNI_JoystickSetLED(int device_id, int red, int green, int blue)
|
|
|
+{
|
|
|
+ JNIEnv *env = Android_JNI_GetEnv();
|
|
|
+ (*env)->CallStaticVoidMethod(env, mControllerManagerClass, midJoystickSetLED, device_id, red, green, blue);
|
|
|
+}
|
|
|
+
|
|
|
void Android_JNI_PollHapticDevices(void)
|
|
|
{
|
|
|
JNIEnv *env = Android_JNI_GetEnv();
|