diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-18 00:20:35 +0200 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-18 00:20:35 +0200 |
commit | c40af4c4ab0541638a6079a97c601a774ed65d02 (patch) | |
tree | 425de85573c9ca79f0216224fa3bbe69d5ea0930 /jni/ToJava.h | |
parent | Fixed an assert in bucket placement (diff) | |
download | cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar.gz cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar.bz2 cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar.lz cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar.xz cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.tar.zst cuberite-c40af4c4ab0541638a6079a97c601a774ed65d02.zip |
Diffstat (limited to 'jni/ToJava.h')
-rw-r--r-- | jni/ToJava.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/jni/ToJava.h b/jni/ToJava.h new file mode 100644 index 000000000..59dc4c366 --- /dev/null +++ b/jni/ToJava.h @@ -0,0 +1,47 @@ +#pragma once
+
+#include <jni.h>
+#include <android/log.h>
+extern JNIEnv* g_CurrentJNIEnv;
+
+extern jobject g_JavaThread;
+//extern jobject g_JavaActivity;
+
+//__android_log_vprint(ANDROID_LOG_ERROR,"MCServer", a_Format, argList);
+
+static void CallJavaFunction_Void_String( jobject a_Object, const std::string & a_FunctionName, const std::string & a_StringParam )
+{
+ //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "JNIEnv: %i Object: %i", g_CurrentJNIEnv, a_Object );
+ jclass cls = g_CurrentJNIEnv->GetObjectClass( a_Object );
+ //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jclass: %i", cls );
+ jmethodID mid = g_CurrentJNIEnv->GetMethodID( cls, a_FunctionName.c_str(), "(Ljava/lang/String;)V"); // void a_FunctionName( String )
+ //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "jmethodID: %i", mid );
+ if (mid != 0)
+ {
+ //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "Going to call right NOW! %s", a_FunctionName.c_str() );
+ g_CurrentJNIEnv->CallVoidMethod( a_Object, mid, g_CurrentJNIEnv->NewStringUTF( a_StringParam.c_str() ) );
+ }
+ else
+ {
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" );
+ }
+}
+
+
+static void CallJavaFunction_Void_Void( jobject a_Object, const std::string & a_FunctionName )
+{
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "JNIEnv: %i Object: %i", g_CurrentJNIEnv, a_Object );
+ jclass cls = g_CurrentJNIEnv->GetObjectClass( a_Object );
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "jclass: %i", cls );
+ jmethodID mid = g_CurrentJNIEnv->GetMethodID( cls, a_FunctionName.c_str(), "()V"); // void a_FunctionName( String )
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "jmethodID: %i", mid );
+ if (mid != 0)
+ {
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "Going to call right NOW! %s", a_FunctionName.c_str() );
+ g_CurrentJNIEnv->CallVoidMethod( a_Object, mid );
+ }
+ else
+ {
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" );
+ }
+}
\ No newline at end of file |