|
@@ -348,6 +348,7 @@ void android_environment_cb_native(unsigned cmd, void *data) {
|
|
|
);
|
|
|
|
|
|
(*env)->SetObjectArrayElement(env, array, i, bean);
|
|
|
+ (*env)->DeleteLocalRef(env, bean);
|
|
|
(*env)->DeleteLocalRef(env, description);
|
|
|
}
|
|
|
|
|
@@ -427,6 +428,76 @@ void android_environment_cb_native(unsigned cmd, void *data) {
|
|
|
(*env)->DeleteLocalRef(env, jgeometry);
|
|
|
}
|
|
|
break;
|
|
|
+ /*
|
|
|
+ case RETRO_ENVIRONMENT_SET_AUTO_INPUT_BINDS:
|
|
|
+ case RETRO_ENVIRONMENT_SET_INPUT_BINDS: {
|
|
|
+ retro_keybind_set *binds = (retro_keybind_set *) data;
|
|
|
+ int j;
|
|
|
+
|
|
|
+ jobject bind = NULL;
|
|
|
+ jobject bind_set = NULL;
|
|
|
+ jobjectArray bind_array = NULL;
|
|
|
+ jobjectArray bind_set_array = NULL;
|
|
|
+ jstring joy_axis_label = NULL;
|
|
|
+ jstring joy_key_label = NULL;
|
|
|
+
|
|
|
+ bind_set_array = (*env)->NewObjectArray(
|
|
|
+ env, MAX_USERS,
|
|
|
+ app->beans.input_bind_set.clazz,
|
|
|
+ NULL
|
|
|
+ );
|
|
|
+ for (i = 0; i < MAX_USERS; ++i) {
|
|
|
+ bind_array = (*env)->NewObjectArray(
|
|
|
+ env, RARCH_FIRST_CUSTOM_BIND,
|
|
|
+ app->beans.input_bind.clazz,
|
|
|
+ NULL
|
|
|
+ );
|
|
|
+
|
|
|
+ for (j = 0; j < RARCH_FIRST_CUSTOM_BIND; ++j) {
|
|
|
+ joy_axis_label = (*env)->NewStringUTF(env, binds[i][j].joyaxis_label);
|
|
|
+ joy_key_label = (*env)->NewStringUTF(env, binds[i][j].joykey_label);
|
|
|
+ bind = (*env)->NewObject(
|
|
|
+ env,
|
|
|
+ app->beans.input_bind.clazz,
|
|
|
+ app->beans.input_bind.constructor,
|
|
|
+ joy_axis_label,
|
|
|
+ binds[i][j].joyaxis,
|
|
|
+ binds[i][j].def_joyaxis,
|
|
|
+ binds[i][j].orig_joyaxis,
|
|
|
+ joy_key_label,
|
|
|
+ binds[i][j].joykey,
|
|
|
+ binds[i][j].def_joykey
|
|
|
+ );
|
|
|
+
|
|
|
+ (*env)->SetObjectArrayElement(env, bind_array, j, bind);
|
|
|
+
|
|
|
+ (*env)->DeleteLocalRef(env, bind);
|
|
|
+ (*env)->DeleteLocalRef(env, joy_key_label);
|
|
|
+ (*env)->DeleteLocalRef(env, joy_axis_label);
|
|
|
+ }
|
|
|
+
|
|
|
+ bind_set = (*env)->NewObject(
|
|
|
+ env,
|
|
|
+ app->beans.input_bind_set.clazz,
|
|
|
+ app->beans.input_bind_set.constructor,
|
|
|
+ bind_array
|
|
|
+ );
|
|
|
+ (*env)->SetObjectArrayElement(env, bind_set_array, i, bind_set);
|
|
|
+
|
|
|
+ (*env)->DeleteLocalRef(env, bind_array);
|
|
|
+ (*env)->DeleteLocalRef(env, bind_set);
|
|
|
+ }
|
|
|
+
|
|
|
+ CALL_VOID_METHOD_PARAM(
|
|
|
+ env, app->activity->clazz,
|
|
|
+ app->environmentCallback,
|
|
|
+ cmd, bind_set_array
|
|
|
+ );
|
|
|
+
|
|
|
+ (*env)->DeleteLocalRef(env, bind_set_array);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ */
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -725,6 +796,10 @@ Java_com_retroarch_browser_retroactivity_RetroActivityCommon_registerBeans(
|
|
|
GET_CONSTRUCTOR(system_av_info.game_geometry, "(IIIIF)V");
|
|
|
CREATE_CLASS(system_av_info.system_timing, "com/xugame/bean/SystemAVInfo$SystemTiming");
|
|
|
GET_CONSTRUCTOR(system_av_info.system_timing, "(DD)V");
|
|
|
+// CREATE_CLASS(input_bind, "com/xugame/bean/InputBind");
|
|
|
+// GET_CONSTRUCTOR(input_bind, "(Ljava/lang/String;IIILjava/lang/String;II)V");
|
|
|
+// CREATE_CLASS(input_bind_set, "com/xugame/bean/InputBindSet");
|
|
|
+// GET_CONSTRUCTOR(input_bind_set, "([Lcom/xugame/bean/InputBind;)V");
|
|
|
#undef CREATE_CLASS
|
|
|
}
|
|
|
|
|
@@ -741,6 +816,8 @@ Java_com_retroarch_browser_retroactivity_RetroActivityCommon_unregisterBeans(
|
|
|
(*env)->DeleteGlobalRef(env, android_app->beans.system_av_info.clazz);
|
|
|
(*env)->DeleteGlobalRef(env, android_app->beans.system_av_info.game_geometry.clazz);
|
|
|
(*env)->DeleteGlobalRef(env, android_app->beans.system_av_info.system_timing.clazz);
|
|
|
+// (*env)->DeleteGlobalRef(env, android_app->beans.input_bind.clazz);
|
|
|
+// (*env)->DeleteGlobalRef(env, android_app->beans.input_bind_set.clazz);
|
|
|
}
|
|
|
|
|
|
JNIEXPORT void JNICALL
|
|
@@ -843,6 +920,14 @@ JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCom
|
|
|
// command_event(CMD_EVENT_VIDEO_APPLY_STATE_CHANGES, NULL);
|
|
|
}
|
|
|
|
|
|
+JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindValidNative
|
|
|
+ (JNIEnv *env, jobject thiz, jint port, jint id, jboolean valid) {
|
|
|
+ input_config_binds[port][id].valid = valid;
|
|
|
+}
|
|
|
+JNIEXPORT void JNICALL Java_com_retroarch_browser_retroactivity_RetroActivityCommon_setJoystickBindJoyKeyNative
|
|
|
+ (JNIEnv *env, jobject thiz, jint port, jint id, jint joy_key) {
|
|
|
+ input_config_binds[port][id].joykey = joy_key;
|
|
|
+}
|
|
|
/*
|
|
|
* Native activity interaction (called from main thread)
|
|
|
**/
|
|
@@ -3296,3 +3381,4 @@ frontend_ctx_driver_t frontend_ctx_unix = {
|
|
|
|
|
|
|
|
|
|
|
|
+
|