summaryrefslogtreecommitdiffstats
path: root/jni/app-android.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'jni/app-android.cpp')
-rw-r--r--jni/app-android.cpp63
1 files changed, 57 insertions, 6 deletions
diff --git a/jni/app-android.cpp b/jni/app-android.cpp
index 461f433bf..a6fb1baf2 100644
--- a/jni/app-android.cpp
+++ b/jni/app-android.cpp
@@ -21,16 +21,52 @@ 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_MainThread_NativeOnCreate( JNIEnv* env, jobject thiz )
+extern "C" void Java_com_mcserver_MCServerActivity_NativeOnCreate( JNIEnv* env, jobject thiz )
{
g_CriticalSection.Lock();
g_CurrentJNIEnv = env;
@@ -44,25 +80,40 @@ extern "C" void Java_com_mcserver_MainThread_NativeOnCreate( JNIEnv* env, jobje
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;
+ delete pRoot; pRoot = NULL;
}
-extern "C" void Java_com_mcserver_MainThread_NativeCleanUp( JNIEnv* env, jobject thiz )
+extern "C" void Java_com_mcserver_MCServerActivity_NativeCleanUp( JNIEnv* env, jobject thiz )
{
g_CriticalSection.Lock();
g_CurrentJNIEnv = env;
g_JavaThread = thiz;
g_CriticalSection.Unlock();
- pRoot->ServerCommand("stop");
+ __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