summaryrefslogtreecommitdiff
path: root/Source/Android/jni/Input/EmulatedController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/jni/Input/EmulatedController.cpp')
-rw-r--r--Source/Android/jni/Input/EmulatedController.cpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/Source/Android/jni/Input/EmulatedController.cpp b/Source/Android/jni/Input/EmulatedController.cpp
index 8a76240dfd..45f6148f2b 100644
--- a/Source/Android/jni/Input/EmulatedController.cpp
+++ b/Source/Android/jni/Input/EmulatedController.cpp
@@ -20,6 +20,23 @@
#include "jni/Input/ControlReference.h"
#include "jni/Input/NumericSetting.h"
+ControllerEmu::ControlGroupContainer* ControlGroupContainerFromJava(JNIEnv* env, jobject obj)
+{
+ return reinterpret_cast<ControllerEmu::ControlGroupContainer*>(
+ env->GetLongField(obj, IDCache::GetEmulatedControllerPointer()));
+}
+
+static jobject ControlGroupContainerToJava(JNIEnv* env,
+ ControllerEmu::ControlGroupContainer* container)
+{
+ if (!container)
+ return nullptr;
+
+ return env->NewObject(IDCache::GetControlGroupContainerClass(),
+ IDCache::GetControlGroupContainerConstructor(),
+ reinterpret_cast<jlong>(container));
+}
+
ControllerEmu::EmulatedController* EmulatedControllerFromJava(JNIEnv* env, jobject obj)
{
return reinterpret_cast<ControllerEmu::EmulatedController*>(
@@ -53,18 +70,18 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro
}
JNIEXPORT jint JNICALL
-Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getGroupCount(
+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_ControlGroupContainer_getGroupCount(
JNIEnv* env, jobject obj)
{
- return static_cast<jint>(EmulatedControllerFromJava(env, obj)->groups.size());
+ return static_cast<jint>(ControlGroupContainerFromJava(env, obj)->groups.size());
}
JNIEXPORT jobject JNICALL
-Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getGroup(
+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_ControlGroupContainer_getGroup(
JNIEnv* env, jobject obj, jint controller_index)
{
- return ControlGroupToJava(env,
- EmulatedControllerFromJava(env, obj)->groups[controller_index].get());
+ return ControlGroupToJava(
+ env, ControlGroupContainerFromJava(env, obj)->groups[controller_index].get());
}
JNIEXPORT void JNICALL
@@ -175,7 +192,7 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro
{
auto* attachments = static_cast<ControllerEmu::Attachments*>(
Wiimote::GetWiimoteGroup(controller_index, WiimoteEmu::WiimoteGroup::Attachments));
- return EmulatedControllerToJava(env, attachments->GetAttachmentList()[attachment_index].get());
+ return ControlGroupContainerToJava(env, attachments->GetAttachmentList()[attachment_index].get());
}
JNIEXPORT jint JNICALL