From 98c229ef79e1fa8465cea7f31bbaa39c7a722f4f Mon Sep 17 00:00:00 2001 From: visarhoxha Date: Fri, 18 Sep 2026 20:29:36 +0200 Subject: android: add global hotkeys --- Source/Android/jni/Input/EmulatedController.cpp | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'Source/Android/jni/Input/EmulatedController.cpp') diff --git a/Source/Android/jni/Input/EmulatedController.cpp b/Source/Android/jni/Input/EmulatedController.cpp index 495a376f69..341e35d168 100644 --- a/Source/Android/jni/Input/EmulatedController.cpp +++ b/Source/Android/jni/Input/EmulatedController.cpp @@ -3,18 +3,22 @@ #include +#include + #include "Common/FileUtil.h" #include "Common/IniFile.h" #include "Core/HW/GCKeyboard.h" #include "Core/HW/GCPad.h" #include "Core/HW/Wiimote.h" #include "Core/HW/WiimoteEmu/WiimoteEmu.h" +#include "Core/HotkeyManager.h" #include "InputCommon/ControllerEmu/ControlGroup/Attachments.h" #include "InputCommon/ControllerEmu/ControllerEmu.h" #include "InputCommon/ControllerInterface/ControllerInterface.h" #include "InputCommon/InputConfig.h" #include "jni/AndroidCommon/AndroidCommon.h" #include "jni/AndroidCommon/IDCache.h" +#include "jni/HotkeyScheduler.h" #include "jni/Input/Control.h" #include "jni/Input/ControlGroup.h" #include "jni/Input/ControlReference.h" @@ -191,6 +195,36 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro return EmulatedControllerToJava(env, Wiimote::GetConfig()->GetController(controller_index)); } +JNIEXPORT jobject JNICALL +Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getHotkeys( + JNIEnv* env, jclass) +{ + return EmulatedControllerToJava(env, HotkeyManagerEmu::GetConfig()->GetController(0)); +} + +JNIEXPORT jintArray JNICALL +Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getSupportedHotkeyIndices( + JNIEnv* env, jclass) +{ + auto* const hotkeys = + static_cast(HotkeyManagerEmu::GetConfig()->GetController(0)); + const std::vector& supported = HotkeyScheduler::GetSupportedHotkeys(); + + std::vector indices; + indices.reserve(supported.size() * 2); + for (const int hotkey : supported) + { + const int group = hotkeys->FindGroupByID(hotkey); + indices.push_back(group); + indices.push_back(hotkeys->GetIndexForGroup(group, hotkey)); + } + + const jsize size = static_cast(indices.size()); + jintArray result = env->NewIntArray(size); + env->SetIntArrayRegion(result, 0, size, indices.data()); + return result; +} + JNIEXPORT jobject JNICALL Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getWiimoteAttachment( JNIEnv* env, jclass, jint controller_index, jint attachment_index) -- cgit v1.2.3