From 01a4ab77266016278b0c192574718b2e04406161 Mon Sep 17 00:00:00 2001 From: faketruth Date: Sun, 19 Aug 2012 16:43:47 +0000 Subject: Android: Moved Android stuff to the ~/trunk/Android/ folder! git-svn-id: http://mc-server.googlecode.com/svn/trunk@758 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- Android/jni/app-android.cpp | 119 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Android/jni/app-android.cpp (limited to 'Android/jni/app-android.cpp') 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 +#include +#include +#include + +#include +#include +#include +#include + +#include "cCriticalSection.h" +#include "cRoot.h" +#include "cMakeDir.h" +#include "ToJava.h" + +#include + +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 -- cgit v1.2.3