summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/GCAdapter_Android.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2018-06-01 09:36:29 +0200
committerJosJuice <josjuice@gmail.com>2018-06-06 17:34:07 +0200
commit1c027bc148574cf0b05cd04f8ce15132e8115170 (patch)
treecf7d352f8cc68bc26b37168f86c8314d448903a7 /Source/Core/InputCommon/GCAdapter_Android.cpp
parentdaee5a4b43e95f50a1b024348a19d7f2bb48bdbc (diff)
Use UICommon's game list code on Android
Deduplicates code, and gets rid of some problems the old code had (such as: bad performance when calling native functions, only one disc showing up for multi-disc games, Wii banners being low-res, unnecessarily much effort being needed for adding more metadata).
Diffstat (limited to 'Source/Core/InputCommon/GCAdapter_Android.cpp')
-rw-r--r--Source/Core/InputCommon/GCAdapter_Android.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/Source/Core/InputCommon/GCAdapter_Android.cpp b/Source/Core/InputCommon/GCAdapter_Android.cpp
index d8628530a3..d71e665015 100644
--- a/Source/Core/InputCommon/GCAdapter_Android.cpp
+++ b/Source/Core/InputCommon/GCAdapter_Android.cpp
@@ -20,8 +20,7 @@
#include "InputCommon/GCAdapter.h"
#include "InputCommon/GCPadStatus.h"
-// Global java_vm class
-extern JavaVM* g_java_vm;
+#include "jni/AndroidCommon/IDCache.h"
namespace GCAdapter
{
@@ -67,7 +66,7 @@ static void ScanThreadFunc()
NOTICE_LOG(SERIALINTERFACE, "GC Adapter scanning thread started");
JNIEnv* env;
- g_java_vm->AttachCurrentThread(&env, NULL);
+ IDCache::GetJavaVM()->AttachCurrentThread(&env, NULL);
jmethodID queryadapter_func = env->GetStaticMethodID(s_adapter_class, "QueryAdapter", "()Z");
@@ -78,7 +77,7 @@ static void ScanThreadFunc()
Setup();
Common::SleepCurrentThread(1000);
}
- g_java_vm->DetachCurrentThread();
+ IDCache::GetJavaVM()->DetachCurrentThread();
NOTICE_LOG(SERIALINTERFACE, "GC Adapter scanning thread stopped");
}
@@ -89,7 +88,7 @@ static void Write()
NOTICE_LOG(SERIALINTERFACE, "GC Adapter write thread started");
JNIEnv* env;
- g_java_vm->AttachCurrentThread(&env, NULL);
+ IDCache::GetJavaVM()->AttachCurrentThread(&env, NULL);
jmethodID output_func = env->GetStaticMethodID(s_adapter_class, "Output", "([B)I");
while (s_write_adapter_thread_running.IsSet())
@@ -119,7 +118,7 @@ static void Write()
Common::YieldCPU();
}
- g_java_vm->DetachCurrentThread();
+ IDCache::GetJavaVM()->DetachCurrentThread();
NOTICE_LOG(SERIALINTERFACE, "GC Adapter write thread stopped");
}
@@ -131,7 +130,7 @@ static void Read()
bool first_read = true;
JNIEnv* env;
- g_java_vm->AttachCurrentThread(&env, NULL);
+ IDCache::GetJavaVM()->AttachCurrentThread(&env, NULL);
jfieldID payload_field = env->GetStaticFieldID(s_adapter_class, "controller_payload", "[B");
jobject payload_object = env->GetStaticObjectField(s_adapter_class, payload_field);
@@ -185,7 +184,7 @@ static void Read()
s_fd = 0;
s_detected = false;
- g_java_vm->DetachCurrentThread();
+ IDCache::GetJavaVM()->DetachCurrentThread();
NOTICE_LOG(SERIALINTERFACE, "GC Adapter read thread stopped");
}
@@ -204,7 +203,7 @@ void Init()
}
JNIEnv* env;
- g_java_vm->AttachCurrentThread(&env, NULL);
+ IDCache::GetJavaVM()->AttachCurrentThread(&env, NULL);
jclass adapter_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Java_GCAdapter");
s_adapter_class = reinterpret_cast<jclass>(env->NewGlobalRef(adapter_class));