summaryrefslogtreecommitdiff
path: root/Source/Android/jni/Input/ControlGroup.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2022-01-23 21:47:57 +0100
committerJosJuice <josjuice@gmail.com>2023-03-03 22:28:24 +0100
commit2c529b9db12a60eb3640975f6ea4802237e118fa (patch)
tree4f88817c854ef49828cfab134bb5cdf8186c7306 /Source/Android/jni/Input/ControlGroup.cpp
parentdd8976f18dd5fb0c44fb40f3a24803f6cc5009b2 (diff)
Android: Add new input mapping implementation
Diffstat (limited to 'Source/Android/jni/Input/ControlGroup.cpp')
-rw-r--r--Source/Android/jni/Input/ControlGroup.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/Source/Android/jni/Input/ControlGroup.cpp b/Source/Android/jni/Input/ControlGroup.cpp
new file mode 100644
index 0000000000..0e56774e84
--- /dev/null
+++ b/Source/Android/jni/Input/ControlGroup.cpp
@@ -0,0 +1,51 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "jni/Input/ControlGroup.h"
+
+#include <jni.h>
+
+#include "Common/MsgHandler.h"
+#include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h"
+#include "jni/AndroidCommon/AndroidCommon.h"
+#include "jni/AndroidCommon/IDCache.h"
+#include "jni/Input/Control.h"
+
+static ControllerEmu::ControlGroup* GetPointer(JNIEnv* env, jobject obj)
+{
+ return reinterpret_cast<ControllerEmu::ControlGroup*>(
+ env->GetLongField(obj, IDCache::GetControlGroupPointer()));
+}
+
+jobject ControlGroupToJava(JNIEnv* env, ControllerEmu::ControlGroup* group)
+{
+ if (!group)
+ return nullptr;
+
+ return env->NewObject(IDCache::GetControlGroupClass(), IDCache::GetControlGroupConstructor(),
+ reinterpret_cast<jlong>(group));
+}
+
+extern "C" {
+
+JNIEXPORT jstring JNICALL
+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_ControlGroup_getUiName(
+ JNIEnv* env, jobject obj)
+{
+ return ToJString(env, Common::GetStringT(GetPointer(env, obj)->ui_name.c_str()));
+}
+
+JNIEXPORT jint JNICALL
+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_ControlGroup_getControlCount(
+ JNIEnv* env, jobject obj)
+{
+ return static_cast<jint>(GetPointer(env, obj)->controls.size());
+}
+
+JNIEXPORT jobject JNICALL
+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_ControlGroup_getControl(
+ JNIEnv* env, jobject obj, jint i)
+{
+ return ControlToJava(env, GetPointer(env, obj)->controls[i].get());
+}
+}