From 83b94874a36988f7614d77f3f80698fe788b1e14 Mon Sep 17 00:00:00 2001 From: TwistedUmbrella Date: Sat, 8 Feb 2014 21:18:50 -0500 Subject: [PATCH] Add widescreen emu toggle, Get current config on app load --- shell/android/jni/src/Android.cpp | 6 + shell/android/psd/dctemplate.psd | Bin 120298 -> 136282 bytes shell/android/res/drawable/normal_view.png | Bin 0 -> 6414 bytes shell/android/res/drawable/widescreen.png | Bin 0 -> 6342 bytes .../reicast/emulator/ConfigureFragment.java | 140 +++++++++--------- .../com/reicast/emulator/GL2JNIActivity.java | 71 ++++++++- .../src/com/reicast/emulator/JNIdc.java | 1 + 7 files changed, 145 insertions(+), 73 deletions(-) create mode 100644 shell/android/res/drawable/normal_view.png create mode 100644 shell/android/res/drawable/widescreen.png diff --git a/shell/android/jni/src/Android.cpp b/shell/android/jni/src/Android.cpp index 77dce5589..f7d24309c 100644 --- a/shell/android/jni/src/Android.cpp +++ b/shell/android/jni/src/Android.cpp @@ -42,6 +42,7 @@ extern "C" JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_vmuSwap(JNIEnv *env,jobject obj) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_frameskip(JNIEnv *env,jobject obj, jint frames) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) __attribute__((visibility("default"))); }; @@ -326,6 +327,11 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_frameskip(JNIEnv *env,job settings.pvr.ta_skip = frames; } +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) +{ + settings.rend.WideScreen = stretch; +} + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_rendinit(JNIEnv * env, jobject obj, jint w,jint h) { screen_width = w; diff --git a/shell/android/psd/dctemplate.psd b/shell/android/psd/dctemplate.psd index b5814986e622593328a46d22c73c46f6192fc303..34c7e2caa8c318e22a071cb6e99a3b72a38f1fa8 100644 GIT binary patch delta 15794 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 P|AfQ)y~-ak9@YGRWNB|0 delta 669 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 literal 0 HcmV?d00001 diff --git a/shell/android/res/drawable/widescreen.png b/shell/android/res/drawable/widescreen.png new file mode 100644 index 0000000000000000000000000000000000000000..d48120ac0b68b4f6b16e730dd19113a9530d166a GIT binary patch literal 6342 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 IM6N<$g2Q7+w*UYD literal 0 HcmV?d00001 diff --git a/shell/android/src/com/reicast/emulator/ConfigureFragment.java b/shell/android/src/com/reicast/emulator/ConfigureFragment.java index c5c049fba..2dd1c5c75 100644 --- a/shell/android/src/com/reicast/emulator/ConfigureFragment.java +++ b/shell/android/src/com/reicast/emulator/ConfigureFragment.java @@ -43,15 +43,15 @@ public class ConfigureFragment extends Fragment { TextView mainFrames; OnClickListener mCallback; - boolean dynarecopt = true; - boolean unstableopt = false; - int dcregion = 3; - boolean limitfps = true; - boolean mipmaps = true; - boolean widescreen = false; - int frameskip = 0; - boolean pvrrender = false; - String cheatdisk = "null"; + public static boolean dynarecopt = true; + public static boolean unstableopt = false; + public static int dcregion = 3; + public static boolean limitfps = true; + public static boolean mipmaps = true; + public static boolean widescreen = false; + public static int frameskip = 0; + public static boolean pvrrender = false; + public static String cheatdisk = "null"; private SharedPreferences mPrefs; private File sdcard = Environment.getExternalStorageDirectory(); @@ -84,65 +84,7 @@ public class ConfigureFragment extends Fragment { mPrefs = PreferenceManager.getDefaultSharedPreferences(parentActivity); home_directory = mPrefs.getString("home_directory", home_directory); - try { - File config = new File(home_directory, "emu.cfg"); - if (config.exists()) { - Scanner scanner = new Scanner(config); - String currentLine; - while (scanner.hasNextLine()) { - currentLine = scanner.nextLine(); - - // Check if the existing emu.cfg has the setting and get - // current value - - if (StringUtils.containsIgnoreCase(currentLine, - "Dynarec.Enabled")) { - dynarecopt = currentLine.replace( - "Dynarec.Enabled=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, - "Dynarec.unstable-opt")) { - unstableopt = currentLine.replace( - "Dynarec.unstable-opt=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, - "Dreamcast.Region")) { - dcregion = Integer.valueOf(currentLine.replace( - "Dreamcast.Region=", "")); - } - if (StringUtils.containsIgnoreCase(currentLine, - "aica.LimitFPS")) { - limitfps = currentLine.replace( - "aica.LimitFPS=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, - "rend.UseMipmaps")) { - mipmaps = currentLine.replace( - "rend.UseMipmaps=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, - "rend.WideScreen")) { - widescreen = currentLine.replace( - "rend.WideScreen=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, "ta.skip")) { - frameskip = Integer.valueOf(currentLine.replace( - "ta.skip=", "")); - } - if (StringUtils.containsIgnoreCase(currentLine, "pvr.rend")) { - pvrrender = currentLine.replace( - "pvr.rend=", "").equals("1"); - } - if (StringUtils.containsIgnoreCase(currentLine, "image")) { - cheatdisk = currentLine.replace("image=", ""); - } - - } - scanner.close(); - } - } catch (Exception e) { - Log.d("reicast", "Exception: " + e); - } + getCurrentConfiguration(home_directory); // Generate the menu options and fill in existing settings Switch force_gpu_opt = (Switch) getView().findViewById( @@ -399,6 +341,68 @@ public class ConfigureFragment extends Fragment { mGenerateLogs.execute(home_directory); } } + + public static void getCurrentConfiguration(String home_directory) { + try { + File config = new File(home_directory, "emu.cfg"); + if (config.exists()) { + Scanner scanner = new Scanner(config); + String currentLine; + while (scanner.hasNextLine()) { + currentLine = scanner.nextLine(); + + // Check if the existing emu.cfg has the setting and get + // current value + + if (StringUtils.containsIgnoreCase(currentLine, + "Dynarec.Enabled")) { + dynarecopt = currentLine.replace( + "Dynarec.Enabled=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, + "Dynarec.unstable-opt")) { + unstableopt = currentLine.replace( + "Dynarec.unstable-opt=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, + "Dreamcast.Region")) { + dcregion = Integer.valueOf(currentLine.replace( + "Dreamcast.Region=", "")); + } + if (StringUtils.containsIgnoreCase(currentLine, + "aica.LimitFPS")) { + limitfps = currentLine.replace( + "aica.LimitFPS=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, + "rend.UseMipmaps")) { + mipmaps = currentLine.replace( + "rend.UseMipmaps=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, + "rend.WideScreen")) { + widescreen = currentLine.replace( + "rend.WideScreen=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, "ta.skip")) { + frameskip = Integer.valueOf(currentLine.replace( + "ta.skip=", "")); + } + if (StringUtils.containsIgnoreCase(currentLine, "pvr.rend")) { + pvrrender = currentLine.replace( + "pvr.rend=", "").equals("1"); + } + if (StringUtils.containsIgnoreCase(currentLine, "image")) { + cheatdisk = currentLine.replace("image=", ""); + } + + } + scanner.close(); + } + } catch (Exception e) { + Log.d("reicast", "Exception: " + e); + } + } public void executeAppendConfig(String identifier, String value) { File config = new File(home_directory, "emu.cfg"); diff --git a/shell/android/src/com/reicast/emulator/GL2JNIActivity.java b/shell/android/src/com/reicast/emulator/GL2JNIActivity.java index 8caed2c9a..f53da72d1 100644 --- a/shell/android/src/com/reicast/emulator/GL2JNIActivity.java +++ b/shell/android/src/com/reicast/emulator/GL2JNIActivity.java @@ -1,5 +1,6 @@ package com.reicast.emulator; +import java.io.File; import java.util.Arrays; import java.util.HashMap; @@ -13,6 +14,7 @@ import android.content.res.Configuration; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Environment; import android.preference.PreferenceManager; import android.util.Log; import android.view.Gravity; @@ -45,8 +47,12 @@ public class GL2JNIActivity extends Activity { float[] globalLS_X = new float[4], globalLS_Y = new float[4], previousLS_X = new float[4], previousLS_Y = new float[4]; - int userFrames; + private File sdcard = Environment.getExternalStorageDirectory(); + private String home_directory = sdcard + "/dc"; private boolean frameskipping = false; + private boolean widescreen; + private View frameskip; + private View fullscreen; public static HashMap deviceId_deviceDescriptor = new HashMap(); public static HashMap deviceDescriptor_PlayerNum = new HashMap(); @@ -137,11 +143,28 @@ public class GL2JNIActivity extends Activity { popUp.dismiss(); } }), params); - View frameskip; + if (!widescreen) { + fullscreen = addbut(R.drawable.widescreen, new OnClickListener() { + public void onClick(View v) { + JNIdc.widescreen(1); + popUp.dismiss(); + widescreen = true; + } + }); + } else { + fullscreen = addbut(R.drawable.normal_view, new OnClickListener() { + public void onClick(View v) { + JNIdc.widescreen(0); + popUp.dismiss(); + widescreen = false; + } + }); + } + hlay.addView(fullscreen, params); if (!frameskipping) { frameskip = addbut(R.drawable.fast_forward, new OnClickListener() { public void onClick(View v) { - JNIdc.frameskip((userFrames + 1) * 5); + JNIdc.frameskip((ConfigureFragment.frameskip + 1) * 5); popUp.dismiss(); frameskipping = true; } @@ -149,7 +172,7 @@ public class GL2JNIActivity extends Activity { } else { frameskip = addbut(R.drawable.normal_play, new OnClickListener() { public void onClick(View v) { - JNIdc.frameskip(userFrames); + JNIdc.frameskip(ConfigureFragment.frameskip); popUp.dismiss(); frameskipping = false; } @@ -167,7 +190,6 @@ public class GL2JNIActivity extends Activity { moga.onCreate(this); prefs = PreferenceManager.getDefaultSharedPreferences(this); - userFrames = prefs.getInt("frame_skip", 0); createPopup(); /* * try { //int rID = @@ -178,6 +200,9 @@ public class GL2JNIActivity extends Activity { * syms = new byte[(int) is.available()]; is.read(syms); is.close(); } * catch (IOException e) { e.getMessage(); e.printStackTrace(); } */ + home_directory = prefs.getString("home_directory", home_directory); + ConfigureFragment.getCurrentConfiguration(home_directory); + widescreen = ConfigureFragment.widescreen; String fileName = null; @@ -672,6 +697,42 @@ public class GL2JNIActivity extends Activity { private boolean showMenu() { if (!popUp.isShowing()) { + if (!frameskipping) { + frameskip = addbut(R.drawable.fast_forward, new OnClickListener() { + public void onClick(View v) { + JNIdc.frameskip((ConfigureFragment.frameskip + 1) * 5); + popUp.dismiss(); + frameskipping = true; + } + }); + } else { + frameskip = addbut(R.drawable.normal_play, new OnClickListener() { + public void onClick(View v) { + JNIdc.frameskip(ConfigureFragment.frameskip); + popUp.dismiss(); + frameskipping = false; + } + }); + } + frameskip.invalidate(); + if (!widescreen) { + fullscreen = addbut(R.drawable.widescreen, new OnClickListener() { + public void onClick(View v) { + JNIdc.widescreen(1); + popUp.dismiss(); + widescreen = true; + } + }); + } else { + fullscreen = addbut(R.drawable.normal_view, new OnClickListener() { + public void onClick(View v) { + JNIdc.widescreen(0); + popUp.dismiss(); + widescreen = false; + } + }); + } + fullscreen.invalidate(); if (MainActivity.force_gpu) { popUp.showAtLocation(mView6, Gravity.BOTTOM, 0, 0); } else { diff --git a/shell/android/src/com/reicast/emulator/JNIdc.java b/shell/android/src/com/reicast/emulator/JNIdc.java index bc1d69168..bceda1cb9 100644 --- a/shell/android/src/com/reicast/emulator/JNIdc.java +++ b/shell/android/src/com/reicast/emulator/JNIdc.java @@ -27,6 +27,7 @@ public class JNIdc public static native void vmuSwap(); public static native void frameskip(int frames); + public static native void widescreen(int stretch); public static void show_osd() { JNIdc.vjoy(13, 1,0,0,0);