Android: Convert CoreDevice to Kotlin
This commit is contained in:
parent
3011c0dc64
commit
82298dc408
|
@ -1,48 +0,0 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu.features.input.model;
|
|
||||||
|
|
||||||
import androidx.annotation.Keep;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a C++ ciface::Core::Device.
|
|
||||||
*/
|
|
||||||
public final class CoreDevice
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Represents a C++ ciface::Core::Device::Control.
|
|
||||||
*
|
|
||||||
* This class is non-static to ensure that the CoreDevice parent does not get garbage collected
|
|
||||||
* while a Control is still accessible. (CoreDevice's finalizer may delete the native controls.)
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("InnerClassMayBeStatic")
|
|
||||||
public final class Control
|
|
||||||
{
|
|
||||||
@Keep
|
|
||||||
private final long mPointer;
|
|
||||||
|
|
||||||
@Keep
|
|
||||||
private Control(long pointer)
|
|
||||||
{
|
|
||||||
mPointer = pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public native String getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Keep
|
|
||||||
private final long mPointer;
|
|
||||||
|
|
||||||
@Keep
|
|
||||||
private CoreDevice(long pointer)
|
|
||||||
{
|
|
||||||
mPointer = pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected native void finalize();
|
|
||||||
|
|
||||||
public native Control[] getInputs();
|
|
||||||
|
|
||||||
public native Control[] getOutputs();
|
|
||||||
}
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
package org.dolphinemu.dolphinemu.features.input.model
|
||||||
|
|
||||||
|
import androidx.annotation.Keep
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a C++ ciface::Core::Device.
|
||||||
|
*/
|
||||||
|
@Keep
|
||||||
|
class CoreDevice private constructor(private val pointer: Long) {
|
||||||
|
/**
|
||||||
|
* Represents a C++ ciface::Core::Device::Control.
|
||||||
|
*
|
||||||
|
* This class is marked inner to ensure that the CoreDevice parent does not get garbage collected
|
||||||
|
* while a Control is still accessible. (CoreDevice's finalizer may delete the native controls.)
|
||||||
|
*/
|
||||||
|
@Keep
|
||||||
|
inner class Control private constructor(private val pointer: Long) {
|
||||||
|
external fun getName(): String
|
||||||
|
}
|
||||||
|
|
||||||
|
protected external fun finalize()
|
||||||
|
|
||||||
|
external fun getInputs(): Array<Control>
|
||||||
|
|
||||||
|
external fun getOutputs(): Array<Control>
|
||||||
|
}
|
|
@ -739,7 +739,7 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
|
||||||
const jclass core_device_class =
|
const jclass core_device_class =
|
||||||
env->FindClass("org/dolphinemu/dolphinemu/features/input/model/CoreDevice");
|
env->FindClass("org/dolphinemu/dolphinemu/features/input/model/CoreDevice");
|
||||||
s_core_device_class = reinterpret_cast<jclass>(env->NewGlobalRef(core_device_class));
|
s_core_device_class = reinterpret_cast<jclass>(env->NewGlobalRef(core_device_class));
|
||||||
s_core_device_pointer = env->GetFieldID(core_device_class, "mPointer", "J");
|
s_core_device_pointer = env->GetFieldID(core_device_class, "pointer", "J");
|
||||||
s_core_device_constructor = env->GetMethodID(core_device_class, "<init>", "(J)V");
|
s_core_device_constructor = env->GetMethodID(core_device_class, "<init>", "(J)V");
|
||||||
env->DeleteLocalRef(core_device_class);
|
env->DeleteLocalRef(core_device_class);
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
|
||||||
env->FindClass("org/dolphinemu/dolphinemu/features/input/model/CoreDevice$Control");
|
env->FindClass("org/dolphinemu/dolphinemu/features/input/model/CoreDevice$Control");
|
||||||
s_core_device_control_class =
|
s_core_device_control_class =
|
||||||
reinterpret_cast<jclass>(env->NewGlobalRef(core_device_control_class));
|
reinterpret_cast<jclass>(env->NewGlobalRef(core_device_control_class));
|
||||||
s_core_device_control_pointer = env->GetFieldID(core_device_control_class, "mPointer", "J");
|
s_core_device_control_pointer = env->GetFieldID(core_device_control_class, "pointer", "J");
|
||||||
s_core_device_control_constructor =
|
s_core_device_control_constructor =
|
||||||
env->GetMethodID(core_device_control_class, "<init>",
|
env->GetMethodID(core_device_control_class, "<init>",
|
||||||
"(Lorg/dolphinemu/dolphinemu/features/input/model/CoreDevice;J)V");
|
"(Lorg/dolphinemu/dolphinemu/features/input/model/CoreDevice;J)V");
|
||||||
|
|
Loading…
Reference in New Issue