diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java index a883cd7b49..6cad8cb3bd 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java @@ -159,11 +159,8 @@ public class DolphinEmulator extends Activity GLview = new NativeGLSurfaceView(this); this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); String backend = NativeLibrary.GetConfig("Dolphin.ini", "Core", "GFXBackend", "Software Renderer"); - if (backend.equals("OGL")) - GLview.SetDimensions(screenHeight, screenWidth); - else - GLview.SetDimensions(screenWidth, screenHeight); - GLview.SetFileName(FileName); + NativeLibrary.SetDimensions((int)screenWidth, (int)screenHeight); + NativeLibrary.SetFilename(FileName); setContentView(GLview); Running = true; } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java index 8a8041a08b..030c7ed823 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeGLSurfaceView.java @@ -5,12 +5,9 @@ import android.view.SurfaceHolder; import android.view.SurfaceView; public class NativeGLSurfaceView extends SurfaceView { - static private String FileName; static private Thread myRun; static private boolean Running = false; static private boolean Created = false; - static private float width; - static private float height; public NativeGLSurfaceView(Context context) { super(context); @@ -20,7 +17,7 @@ public class NativeGLSurfaceView extends SurfaceView { { @Override public void run() { - NativeLibrary.Run(FileName, getHolder().getSurface(), (int)width, (int)height); + NativeLibrary.Run(getHolder().getSurface()); } }; getHolder().addCallback(new SurfaceHolder.Callback() { @@ -47,15 +44,4 @@ public class NativeGLSurfaceView extends SurfaceView { Created = true; } } - - public void SetFileName(String file) - { - FileName = file; - } - - public void SetDimensions(float screenWidth, float screenHeight) - { - width = screenWidth; - height = screenHeight; - } } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java index 499dc7867b..f089362c38 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -14,11 +14,13 @@ public class NativeLibrary { public static native void onGamePadMoveEvent(String Device, int Axis, float Value); public static native String GetConfig(String configFile, String Key, String Value, String Default); public static native void SetConfig(String configFile, String Key, String Value, String Default); + public static native void SetFilename(String filename); + public static native void SetDimensions(int width, int height); public static native int[] GetBanner(String filename); public static native String GetTitle(String filename); public static native String GetVersionString(); - public static native void Run(String File, Surface surf, int width, int height); + public static native void Run(Surface surf); public static native void UnPauseEmulation(); public static native void PauseEmulation(); public static native void StopEmulation(); @@ -27,7 +29,7 @@ public class NativeLibrary { { try { - System.loadLibrary("dolphin-emu-nogui"); + System.loadLibrary("main"); } catch (Exception ex) { diff --git a/Source/Core/DolphinWX/CMakeLists.txt b/Source/Core/DolphinWX/CMakeLists.txt index 524a14f13c..82f0e9b580 100644 --- a/Source/Core/DolphinWX/CMakeLists.txt +++ b/Source/Core/DolphinWX/CMakeLists.txt @@ -170,6 +170,7 @@ if(USE_UPNP) endif() if(ANDROID) + set(DOLPHIN_EXE main) add_library(${DOLPHIN_EXE} SHARED ${SRCS}) target_link_libraries(${DOLPHIN_EXE} log @@ -181,9 +182,12 @@ if(ANDROID) if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips") set (SO_TARGET "mips") endif() - if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm") + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7-a") set (SO_TARGET "armeabi-v7a") endif() + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv5te") + set (SO_TARGET "armeabi") + endif() if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686") set (SO_TARGET "x86") endif() diff --git a/Source/Core/DolphinWX/Src/MainAndroid.cpp b/Source/Core/DolphinWX/Src/MainAndroid.cpp index 295d13ccef..5fc616d5ac 100644 --- a/Source/Core/DolphinWX/Src/MainAndroid.cpp +++ b/Source/Core/DolphinWX/Src/MainAndroid.cpp @@ -47,6 +47,9 @@ #include ANativeWindow* surf; int g_width, g_height; +std::string g_filename; +static std::thread g_run_thread; + #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "Dolphinemu", __VA_ARGS__)) void Host_NotifyMapLoaded() {} @@ -66,7 +69,10 @@ void* Host_GetRenderHandle() void* Host_GetInstance() { return NULL; } -void Host_UpdateTitle(const char* title){}; +void Host_UpdateTitle(const char* title) +{ + LOGI(title); +}; void Host_UpdateLogDisplay(){} @@ -297,12 +303,23 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetConfig(JN env->ReleaseStringUTFChars(jDefault, Default); } -JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv *env, jobject obj, jstring jFile, jobject _surf, jint _width, jint _height) +JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetFilename(JNIEnv *env, jobject obj, jstring jFile) +{ + const char *File = env->GetStringUTFChars(jFile, NULL); + + g_filename = std::string(File); + + env->ReleaseStringUTFChars(jFile, File); +} +JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetDimensions(JNIEnv *env, jobject obj, jint _width, jint _height) { - surf = ANativeWindow_fromSurface(env, _surf); g_width = (int)_width; g_height = (int)_height; +} +JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv *env, jobject obj, jobject _surf) +{ + surf = ANativeWindow_fromSurface(env, _surf); // Install our callbacks OSD::AddCallback(OSD::OSD_INIT, OSDCallbacks, 0); OSD::AddCallback(OSD::OSD_SHUTDOWN, OSDCallbacks, 2); @@ -322,9 +339,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv * if (onscreencontrols) OSD::AddCallback(OSD::OSD_ONFRAME, OSDCallbacks, 1); - const char *File = env->GetStringUTFChars(jFile, NULL); // No use running the loop when booting fails - if ( BootManager::BootCore( File ) ) + if ( BootManager::BootCore( g_filename.c_str() ) ) while (PowerPC::GetState() != PowerPC::CPU_POWERDOWN) updateMainFrameEvent.Wait(); @@ -333,7 +349,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv * SConfig::Shutdown(); LogManager::Shutdown(); } - + + #ifdef __cplusplus } #endif