diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index abfc428919..ae806ac0a4 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -381,6 +381,23 @@ void EmulationSession::HaltEmulation() { m_cv.notify_one(); } +void EmulationSession::ReloadInputDevices() { + std::scoped_lock lock(m_mutex); + if (!m_is_running) { + return; + } + m_system.HIDCore().ReloadInputDevices(); +} + +void EmulationSession::ApplySettings() { + std::scoped_lock lock(m_mutex); + if (!m_is_running) { + return; + } + m_system.ApplySettings(); + m_system.HIDCore().ReloadInputDevices(); +} + void EmulationSession::RunEmulation() { { std::scoped_lock lock(m_mutex); @@ -1165,8 +1182,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGpuModel(JNIEnv* env, jobject j } void Java_org_yuzu_yuzu_1emu_NativeLibrary_applySettings(JNIEnv* env, jobject jobj) { - EmulationSession::GetInstance().System().ApplySettings(); - EmulationSession::GetInstance().System().HIDCore().ReloadInputDevices(); + EmulationSession::GetInstance().ApplySettings(); } void Java_org_yuzu_yuzu_1emu_NativeLibrary_logSettings(JNIEnv* env, jobject jobj) { diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h index f2e5c2cfd6..7ba5b90136 100644 --- a/src/android/app/src/main/jni/native.h +++ b/src/android/app/src/main/jni/native.h @@ -45,6 +45,8 @@ public: void HaltEmulation(); void RunEmulation(); void ShutdownEmulation(); + void ReloadInputDevices(); + void ApplySettings(); const Core::PerfStatsResults& PerfStats(); int ShadersBuilding(); diff --git a/src/android/app/src/main/jni/native_input.cpp b/src/android/app/src/main/jni/native_input.cpp index 730d4f0a27..b341e5e632 100644 --- a/src/android/app/src/main/jni/native_input.cpp +++ b/src/android/app/src/main/jni/native_input.cpp @@ -282,7 +282,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onDeviceMotionEvent( void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_reloadInputDevices(JNIEnv* env, jobject j_obj) { - EmulationSession::GetInstance().System().HIDCore().ReloadInputDevices(); + EmulationSession::GetInstance().ReloadInputDevices(); } void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_registerController(JNIEnv* env,