summaryrefslogtreecommitdiffstats
path: root/Android/jni/app-android.cpp
diff options
context:
space:
mode:
authorfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-19 18:43:47 +0200
committerfaketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6>2012-08-19 18:43:47 +0200
commit01a4ab77266016278b0c192574718b2e04406161 (patch)
tree0d8c0d527b66f329eb6d446b56f81506a909d7d1 /Android/jni/app-android.cpp
parentAndroid: Go away gen folder! You're nothing but trouble (for now) (diff)
downloadcuberite-01a4ab77266016278b0c192574718b2e04406161.tar
cuberite-01a4ab77266016278b0c192574718b2e04406161.tar.gz
cuberite-01a4ab77266016278b0c192574718b2e04406161.tar.bz2
cuberite-01a4ab77266016278b0c192574718b2e04406161.tar.lz
cuberite-01a4ab77266016278b0c192574718b2e04406161.tar.xz
cuberite-01a4ab77266016278b0c192574718b2e04406161.tar.zst
cuberite-01a4ab77266016278b0c192574718b2e04406161.zip
Diffstat (limited to 'Android/jni/app-android.cpp')
-rw-r--r--Android/jni/app-android.cpp119
1 files changed, 119 insertions, 0 deletions
diff --git a/Android/jni/app-android.cpp b/Android/jni/app-android.cpp
new file mode 100644
index 000000000..a6fb1baf2
--- /dev/null
+++ b/Android/jni/app-android.cpp
@@ -0,0 +1,119 @@
+#include "Globals.h"
+
+#include <jni.h>
+#include <sys/time.h>
+#include <time.h>
+#include <stdint.h>
+
+#include <stdlib.h>
+#include <math.h>
+#include <float.h>
+#include <assert.h>
+
+#include "cCriticalSection.h"
+#include "cRoot.h"
+#include "cMakeDir.h"
+#include "ToJava.h"
+
+#include <android/log.h>
+
+cCriticalSection g_CriticalSection;
+
+JNIEnv* g_CurrentJNIEnv = 0;
+jobject g_JavaThread = 0;
+JavaVM* g_JavaVM = 0;
+//jobject g_JavaActivity = 0;
+
+cRoot * pRoot = NULL;
+
+
+class cMainThread :
+ public cIsThread
+{
+public:
+ cMainThread() :
+ cIsThread("cMainThread")
+ {
+ //Start();
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "cMainThread");
+ }
+
+ void Stop(void)
+ {
+ m_ShouldTerminate = true;
+ Wait();
+ }
+
+protected:
+
+ virtual void Execute(void) override
+ {
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Execute");
+ pRoot = new cRoot();
+ pRoot->Start();
+ delete pRoot;
+ }
+
+} ;
+
+cMainThread * pMainThread = NULL;
+
+jint JNI_OnLoad(JavaVM* vm, void* reserved)
+{
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "JNI_OnLoad JNI_OnLoad JNI_OnLoad JNI_OnLoad");
+ g_JavaVM = vm;
+ return JNI_VERSION_1_4;
+}
+
+/* Called when program/activity is created */
+extern "C" void Java_com_mcserver_MCServerActivity_NativeOnCreate( JNIEnv* env, jobject thiz )
+{
+ g_CriticalSection.Lock();
+ g_CurrentJNIEnv = env;
+ g_JavaThread = thiz;
+ //if( !cLogger::GetSingletonPtr() ) new cLogger();
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Logging from C++!");
+ g_CriticalSection.Unlock();
+
+ //CallJavaFunction_Void_Void(g_JavaActivity, "TestTest" );
+ //CallJavaFunction_Void_String(g_JavaThread, "AddToLog", "herpderpderp!!" );
+
+ mkdir("/sdcard/mcserver", S_IRWXU | S_IRWXG | S_IRWXO);
+
+// __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Before mainthread");
+// pMainThread = new cMainThread();
+// pMainThread->Start();
+// __android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "AFter mainthread");
+
+ pRoot = new cRoot();
+ pRoot->Start();
+ delete pRoot; pRoot = NULL;
+}
+
+
+
+
+
+extern "C" void Java_com_mcserver_MCServerActivity_NativeCleanUp( JNIEnv* env, jobject thiz )
+{
+ g_CriticalSection.Lock();
+ g_CurrentJNIEnv = env;
+ g_JavaThread = thiz;
+ g_CriticalSection.Unlock();
+
+ __android_log_print(ANDROID_LOG_ERROR,"MCServer", "pRoot: %p", pRoot);
+ if( pRoot != NULL )
+ {
+ pRoot->ServerCommand("stop");
+ }
+// pMainThread->Stop();
+// delete pMainThread; pMainThread = NULL;
+}
+
+
+
+
+extern "C" jboolean Java_com_mcserver_MCServerActivity_NativeIsServerRunning( JNIEnv* env, jobject thiz )
+{
+ return pRoot != NULL;
+} \ No newline at end of file