diff options
author | Alexander Harkness <bearbin@gmail.com> | 2013-07-29 13:13:03 +0200 |
---|---|---|
committer | Alexander Harkness <bearbin@gmail.com> | 2013-07-29 13:13:03 +0200 |
commit | 53e22b11857fed62e2313d6d84d90f88ed412ffb (patch) | |
tree | c61e56725da7dff0154d566722651e2c39c9d6c6 /Android/jni | |
parent | WebAdmin: Removed the duplicate memory usage querying (diff) | |
download | cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar.gz cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar.bz2 cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar.lz cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar.xz cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.tar.zst cuberite-53e22b11857fed62e2313d6d84d90f88ed412ffb.zip |
Diffstat (limited to '')
-rw-r--r-- | Android/jni/Android.mk | 92 | ||||
-rw-r--r-- | Android/jni/ToJava.cpp | 4 | ||||
-rw-r--r-- | Android/jni/ToJava.h | 116 | ||||
-rw-r--r-- | Android/jni/app-android.cpp | 258 |
4 files changed, 235 insertions, 235 deletions
diff --git a/Android/jni/Android.mk b/Android/jni/Android.mk index 764e57ee8..23488e359 100644 --- a/Android/jni/Android.mk +++ b/Android/jni/Android.mk @@ -1,46 +1,46 @@ -LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := mcserver
-
-
-
-LOCAL_SRC_FILES := $(shell find ../CryptoPP ../lua-5.1.4 ../jsoncpp-src-0.5.0 ../zlib-1.2.7 ../source ../squirrel_3_0_1_stable ../tolua++-1.0.93 ../iniFile ../WebServer ../expat '(' -name '*.cpp' -o -name '*.c' ')')
-LOCAL_SRC_FILES := $(filter-out %SquirrelFunctions.cpp %SquirrelBindings.cpp %cPlugin_Squirrel.cpp %cSquirrelCommandBinder.cpp %minigzip.c %lua.c %tolua.c %toluabind.c %LeakFinder.cpp %StackWalker.cpp %example.c,$(LOCAL_SRC_FILES))
-LOCAL_SRC_FILES := $(patsubst %.cpp,../%.cpp,$(LOCAL_SRC_FILES))
-LOCAL_SRC_FILES := $(patsubst %.c,../%.c,$(LOCAL_SRC_FILES))
-LOCAL_SRC_FILES += app-android.cpp ToJava.cpp
-
-LOCAL_CFLAGS := -DANDROID_NDK \
- -O3 \
- -funroll-loops \
- -mfloat-abi=softfp -mfpu=neon \
- -fexceptions \
-
-
-LOCAL_STATIC_LIBRARIES := cpufeatures
-
-LOCAL_C_INCLUDES := ../source \
- ../source/md5 \
- ../WebServer \
- ../source/packets \
- ../source/items \
- ../source/blocks \
- ../tolua++-1.0.93/src/lib \
- ../lua-5.1.4/src \
- ../zlib-1.2.7 \
- ../iniFile \
- ../tolua++-1.0.93/include \
- ../jsoncpp-src-0.5.0/include \
- ../jsoncpp-src-0.5.0/src/lib_json \
- ../squirrel_3_0_1_stable/include \
- ../squirrel_3_0_1_stable \
- ../squirrel_3_0_1_stable/sqrat \
- ../expat/ \
- .. \
-
-
-LOCAL_LDLIBS := -ldl -llog
-
-include $(BUILD_SHARED_LIBRARY)
-$(call import-module,cpufeatures)
+LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := mcserver + + + +LOCAL_SRC_FILES := $(shell find ../CryptoPP ../lua-5.1.4 ../jsoncpp-src-0.5.0 ../zlib-1.2.7 ../source ../squirrel_3_0_1_stable ../tolua++-1.0.93 ../iniFile ../WebServer ../expat '(' -name '*.cpp' -o -name '*.c' ')') +LOCAL_SRC_FILES := $(filter-out %SquirrelFunctions.cpp %SquirrelBindings.cpp %cPlugin_Squirrel.cpp %cSquirrelCommandBinder.cpp %minigzip.c %lua.c %tolua.c %toluabind.c %LeakFinder.cpp %StackWalker.cpp %example.c,$(LOCAL_SRC_FILES)) +LOCAL_SRC_FILES := $(patsubst %.cpp,../%.cpp,$(LOCAL_SRC_FILES)) +LOCAL_SRC_FILES := $(patsubst %.c,../%.c,$(LOCAL_SRC_FILES)) +LOCAL_SRC_FILES += app-android.cpp ToJava.cpp + +LOCAL_CFLAGS := -DANDROID_NDK \ + -O3 \ + -funroll-loops \ + -mfloat-abi=softfp -mfpu=neon \ + -fexceptions \ + + +LOCAL_STATIC_LIBRARIES := cpufeatures + +LOCAL_C_INCLUDES := ../source \ + ../source/md5 \ + ../WebServer \ + ../source/packets \ + ../source/items \ + ../source/blocks \ + ../tolua++-1.0.93/src/lib \ + ../lua-5.1.4/src \ + ../zlib-1.2.7 \ + ../iniFile \ + ../tolua++-1.0.93/include \ + ../jsoncpp-src-0.5.0/include \ + ../jsoncpp-src-0.5.0/src/lib_json \ + ../squirrel_3_0_1_stable/include \ + ../squirrel_3_0_1_stable \ + ../squirrel_3_0_1_stable/sqrat \ + ../expat/ \ + .. \ + + +LOCAL_LDLIBS := -ldl -llog + +include $(BUILD_SHARED_LIBRARY) +$(call import-module,cpufeatures) diff --git a/Android/jni/ToJava.cpp b/Android/jni/ToJava.cpp index 10d4e84a0..8db22dd1d 100644 --- a/Android/jni/ToJava.cpp +++ b/Android/jni/ToJava.cpp @@ -1,3 +1,3 @@ -#include "Globals.h"
-
+#include "Globals.h" + #include "ToJava.h"
\ No newline at end of file diff --git a/Android/jni/ToJava.h b/Android/jni/ToJava.h index bc10f01e3..11979c847 100644 --- a/Android/jni/ToJava.h +++ b/Android/jni/ToJava.h @@ -1,59 +1,59 @@ -#pragma once
-
-#include <jni.h>
-#include <android/log.h>
-extern JNIEnv* g_CurrentJNIEnv;
-extern JavaVM* g_JavaVM;
-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 )
-{
- JNIEnv * oldEnv = g_CurrentJNIEnv;
- int status = g_JavaVM->AttachCurrentThread(&g_CurrentJNIEnv, NULL);
- __android_log_print(ANDROID_LOG_ERROR,"MCServer", "STATUS: %i old: %p new: %p", status, oldEnv, g_CurrentJNIEnv );
- jstring str = g_CurrentJNIEnv->NewStringUTF( a_StringParam.c_str() );
-
-
- //__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, str );
- }
- else
- {
- __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" );
- }
-
- if( oldEnv != g_CurrentJNIEnv )
- {
- g_JavaVM->DetachCurrentThread();
- }
-}
-
-
-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" );
- }
+#pragma once + +#include <jni.h> +#include <android/log.h> +extern JNIEnv* g_CurrentJNIEnv; +extern JavaVM* g_JavaVM; +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 ) +{ + JNIEnv * oldEnv = g_CurrentJNIEnv; + int status = g_JavaVM->AttachCurrentThread(&g_CurrentJNIEnv, NULL); + __android_log_print(ANDROID_LOG_ERROR,"MCServer", "STATUS: %i old: %p new: %p", status, oldEnv, g_CurrentJNIEnv ); + jstring str = g_CurrentJNIEnv->NewStringUTF( a_StringParam.c_str() ); + + + //__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, str ); + } + else + { + __android_log_print(ANDROID_LOG_ERROR,"MCServer", "It was 0, derp" ); + } + + if( oldEnv != g_CurrentJNIEnv ) + { + g_JavaVM->DetachCurrentThread(); + } +} + + +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 diff --git a/Android/jni/app-android.cpp b/Android/jni/app-android.cpp index b34207344..197df29c4 100644 --- a/Android/jni/app-android.cpp +++ b/Android/jni/app-android.cpp @@ -1,130 +1,130 @@ -#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 "OSSupport/CriticalSection.h"
-#include "OSSupport/MakeDir.h"
-#include "ToJava.h"
-
-#include "Root.h"
-#include "WebAdmin.h"
-
-#include <android/log.h>
-
-#ifdef _WIN32 // For IntelliSense parsing
-typedef void jobject;
-typedef int jint;
-typedef bool jboolean;
-typedef void JavaVM;
-typedef void JNIEnv;
-#endif
-
-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;
- //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Logging from C++!");
- g_CriticalSection.Unlock();
-
- mkdir("/sdcard/mcserver", S_IRWXU | S_IRWXG | S_IRWXO);
-
- 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->ExecuteConsoleCommand("stop");
- }
-}
-
-
-
-
-extern "C" jboolean Java_com_mcserver_MCServerActivity_NativeIsServerRunning( JNIEnv* env, jobject thiz )
-{
- return pRoot != NULL;
-}
-
-
-
-
-extern "C" jint Java_com_mcserver_MCServerActivity_NativeGetWebAdminPort( JNIEnv* env, jobject thiz )
-{
- if( pRoot != NULL && pRoot->GetWebAdmin() != NULL )
- {
- return pRoot->GetWebAdmin()->GetPort();
- }
- return 0;
+#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 "OSSupport/CriticalSection.h" +#include "OSSupport/MakeDir.h" +#include "ToJava.h" + +#include "Root.h" +#include "WebAdmin.h" + +#include <android/log.h> + +#ifdef _WIN32 // For IntelliSense parsing +typedef void jobject; +typedef int jint; +typedef bool jboolean; +typedef void JavaVM; +typedef void JNIEnv; +#endif + +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; + //__android_log_print(ANDROID_LOG_ERROR,"MCServer", "%s", "Logging from C++!"); + g_CriticalSection.Unlock(); + + mkdir("/sdcard/mcserver", S_IRWXU | S_IRWXG | S_IRWXO); + + 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->ExecuteConsoleCommand("stop"); + } +} + + + + +extern "C" jboolean Java_com_mcserver_MCServerActivity_NativeIsServerRunning( JNIEnv* env, jobject thiz ) +{ + return pRoot != NULL; +} + + + + +extern "C" jint Java_com_mcserver_MCServerActivity_NativeGetWebAdminPort( JNIEnv* env, jobject thiz ) +{ + if( pRoot != NULL && pRoot->GetWebAdmin() != NULL ) + { + return pRoot->GetWebAdmin()->GetPort(); + } + return 0; }
\ No newline at end of file |