Android: Implement trial disk swapping code

This commit is contained in:
Ender's Games 2018-08-28 00:14:02 -04:00
parent 925daa2bfd
commit 62c76475eb
5 changed files with 18 additions and 16 deletions

View File

@ -451,10 +451,11 @@ public class OptionsFragment extends Fragment {
String disk = editText.toString(); String disk = editText.toString();
if (disk.substring(disk.lastIndexOf("/") + 1).length() == 0) { if (disk.substring(disk.lastIndexOf("/") + 1).length() == 0) {
disk = "null"; disk = "null";
bootdiskEdit.setText(disk);
} else if (!disk.equals("null") && !disk.contains("/")) { } else if (!disk.equals("null") && !disk.contains("/")) {
disk = game_directory + "/" + disk; disk = game_directory + "/" + disk;
}
bootdiskEdit.setText(disk); bootdiskEdit.setText(disk);
}
mPrefs.edit().putString(Emulator.pref_bootdisk, disk).apply(); mPrefs.edit().putString(Emulator.pref_bootdisk, disk).apply();
Emulator.bootdisk = disk; Emulator.bootdisk = disk;
} }

View File

@ -26,7 +26,7 @@ public final class JNIdc
public static native void initControllers(boolean[] controllers, int[][] peripherals); public static native void initControllers(boolean[] controllers, int[][] peripherals);
public static native void setupMic(Object sip); public static native void setupMic(Object sip);
public static native void diskSwap(String disk); public static native void diskSwap();
public static native void vmuSwap(); public static native void vmuSwap();
public static native void setupVmu(Object sip); public static native void setupVmu(Object sip);
public static native void dynarec(int dynarec); public static native void dynarec(int dynarec);

View File

@ -496,7 +496,7 @@ public class OnScreenMenu {
OnClickListener clickDisk = new OnClickListener() { OnClickListener clickDisk = new OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
JNIdc.diskSwap(null); JNIdc.diskSwap();
dismiss(); dismiss();
} }
}; };

View File

@ -17,6 +17,7 @@
#include "hw/maple/maple_if.h" #include "hw/maple/maple_if.h"
#include "oslib/audiobackend_android.h" #include "oslib/audiobackend_android.h"
#include "reios/reios.h" #include "reios/reios.h"
#include "imgread/common.h"
extern "C" extern "C"
{ {
@ -40,7 +41,7 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_vjoy(JNIEnv * env, jo
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_initControllers(JNIEnv *env, jobject obj, jbooleanArray controllers, jobjectArray peripherals) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_initControllers(JNIEnv *env, jobject obj, jbooleanArray controllers, jobjectArray peripherals) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_setupMic(JNIEnv *env,jobject obj,jobject sip) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_setupMic(JNIEnv *env,jobject obj,jobject sip) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_diskSwap(JNIEnv *env,jobject obj, jstring newdisk) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_diskSwap(JNIEnv *env,jobject obj) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_vmuSwap(JNIEnv *env,jobject obj) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_vmuSwap(JNIEnv *env,jobject obj) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_setupVmu(JNIEnv *env,jobject obj,jobject sip) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_setupVmu(JNIEnv *env,jobject obj,jobject sip) __attribute__((visibility("default")));
@ -186,7 +187,6 @@ bool gles_init();
extern int screen_width,screen_height; extern int screen_width,screen_height;
static u64 tvs_base; static u64 tvs_base;
static char bootdisk[256];
static char gamedisk[256]; static char gamedisk[256];
// Additonal controllers 2, 3 and 4 connected ? // Additonal controllers 2, 3 and 4 connected ?
@ -310,14 +310,17 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_config(JNIEnv *env,jo
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_bootdisk(JNIEnv *env,jobject obj, jstring disk) JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_bootdisk(JNIEnv *env,jobject obj, jstring disk)
{ {
const char* P = disk? env->GetStringUTFChars(disk,0):0; const char* P = disk? env->GetStringUTFChars(disk,0):0;
if(!P) bootdisk[0] = '\0'; if(!P) settings.imgread.DefaultImage[0] = '\0';
else else
{ {
printf("Got URI: '%s'\n",P); printf("Got URI: '%s'\n",P);
strncpy(bootdisk,(strlen(P)>=7)&&!memcmp(P,"file://",7)? P+7:P,sizeof(bootdisk)); strncpy(settings.imgread.DefaultImage,(strlen(P)>=7)&&!memcmp(P,"file://",7)? P+7:P,sizeof(settings.imgread.DefaultImage));
bootdisk[sizeof(bootdisk)-1] = '\0'; settings.imgread.DefaultImage[sizeof(settings.imgread.DefaultImage)-1] = '\0';
env->ReleaseStringUTFChars(disk,P); env->ReleaseStringUTFChars(disk,P);
} }
if (strcmp(settings.imgread.DefaultImage, "null") != 0)
settings.imgread.LoadDefaultImage = 1;
} }
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_init(JNIEnv *env,jobject obj,jstring fileName) JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_init(JNIEnv *env,jobject obj,jstring fileName)
@ -350,9 +353,6 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_init(JNIEnv *env,jobj
pthread_attr_destroy(&PTAttr); pthread_attr_destroy(&PTAttr);
*/ */
if (strcmp(bootdisk, "null") != 0)
ThreadHandler(bootdisk);
else
ThreadHandler(gamedisk); ThreadHandler(gamedisk);
} }
@ -447,8 +447,9 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_destroy(JNIEnv *env,j
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_diskSwap(JNIEnv *env,jobject obj) JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_diskSwap(JNIEnv *env,jobject obj)
{ {
// Needs actual code to swap a disk settings.imgread.LoadDefaultImage = 0;
// bootdisk is replaced by gamedisk
DiscSwap();
} }
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_vmuSwap(JNIEnv *env,jobject obj) JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_vmuSwap(JNIEnv *env,jobject obj)