Android: Centralize default values for settings
I was hoping we would be able to pull in the default values from C++, but it seems like more trouble than it's worth, partially because of different settings having default values of different types and partially because we don't have any convenient way to get a list of all C++ settings.
This commit is contained in:
parent
13d1ef6681
commit
f011e859b4
|
@ -335,6 +335,8 @@ public final class NativeLibrary
|
|||
|
||||
public static native int DefaultCPUCore();
|
||||
|
||||
public static native String GetDefaultGraphicsBackendName();
|
||||
|
||||
public static native int GetMaxLogLevel();
|
||||
|
||||
public static native void ReloadConfig();
|
||||
|
|
|
@ -33,7 +33,6 @@ import androidx.fragment.app.FragmentManager;
|
|||
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
|
||||
import org.dolphinemu.dolphinemu.fragments.EmulationFragment;
|
||||
|
|
|
@ -9,8 +9,8 @@ import androidx.appcompat.app.AlertDialog;
|
|||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
|
||||
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||
|
@ -65,7 +65,7 @@ public class GamePropertiesDialog extends DialogFragment
|
|||
case 1:
|
||||
Settings settings = new Settings();
|
||||
settings.loadSettings(null);
|
||||
Setting.MAIN_DEFAULT_ISO.setString(settings, path);
|
||||
StringSetting.MAIN_DEFAULT_ISO.setString(settings, path);
|
||||
settings.saveSettings(null, getContext());
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface AbstractBooleanSetting extends AbstractSetting
|
||||
{
|
||||
boolean getBoolean(Settings settings);
|
||||
|
||||
void setBoolean(Settings settings, boolean newValue);
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface AbstractFloatSetting extends AbstractSetting
|
||||
{
|
||||
float getFloat(Settings settings);
|
||||
|
||||
void setFloat(Settings settings, float newValue);
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface AbstractIntSetting extends AbstractSetting
|
||||
{
|
||||
int getInt(Settings settings);
|
||||
|
||||
void setInt(Settings settings, int newValue);
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class AbstractLegacySetting implements AbstractSetting
|
||||
{
|
||||
protected final String mFile;
|
||||
protected final String mSection;
|
||||
protected final String mKey;
|
||||
|
||||
public AbstractLegacySetting(String file, String section, String key)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface AbstractStringSetting extends AbstractSetting
|
||||
{
|
||||
String getString(Settings settings);
|
||||
|
||||
void setString(Settings settings, String newValue);
|
||||
}
|
|
@ -1,8 +1,127 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface BooleanSetting extends AbstractSetting
|
||||
public enum BooleanSetting implements AbstractBooleanSetting
|
||||
{
|
||||
boolean getBoolean(Settings settings, boolean defaultValue);
|
||||
// These entries have the same names and order as in C++, just for consistency.
|
||||
|
||||
void setBoolean(Settings settings, boolean newValue);
|
||||
MAIN_DSP_HLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DSPHLE", true),
|
||||
MAIN_CPU_THREAD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUThread", true),
|
||||
MAIN_OVERRIDE_REGION_SETTINGS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"OverrideRegionSettings", false),
|
||||
MAIN_AUDIO_STRETCH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AudioStretch", false),
|
||||
MAIN_WII_SD_CARD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCard", true),
|
||||
MAIN_WIIMOTE_CONTINUOUS_SCANNING(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"WiimoteContinuousScanning", false),
|
||||
MAIN_WIIMOTE_ENABLE_SPEAKER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"WiimoteEnableSpeaker", false),
|
||||
MAIN_OVERCLOCK_ENABLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "OverclockEnable", false),
|
||||
MAIN_AUTO_DISC_CHANGE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AutoDiscChange", false),
|
||||
MAIN_ALLOW_SD_WRITES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCardAllowWrites",
|
||||
true),
|
||||
MAIN_ENABLE_SAVESTATES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "EnableSaveStates",
|
||||
false),
|
||||
|
||||
MAIN_DSP_JIT(Settings.FILE_DOLPHIN, Settings.SECTION_INI_DSP, "EnableJIT", true),
|
||||
|
||||
MAIN_USE_PANIC_HANDLERS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_INTERFACE,
|
||||
"UsePanicHandlers", true),
|
||||
MAIN_OSD_MESSAGES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_INTERFACE,
|
||||
"OnScreenDisplayMessages", true),
|
||||
|
||||
MAIN_ANALYTICS_ENABLED(Settings.FILE_DOLPHIN, Settings.SECTION_ANALYTICS, "Enabled", false),
|
||||
MAIN_ANALYTICS_PERMISSION_ASKED(Settings.FILE_DOLPHIN, Settings.SECTION_ANALYTICS,
|
||||
"PermissionAsked", false),
|
||||
|
||||
MAIN_RECURSIVE_ISO_PATHS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL,
|
||||
"RecursiveISOPaths", false),
|
||||
|
||||
GFX_WIDESCREEN_HACK(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "wideScreenHack", false),
|
||||
GFX_SHOW_FPS(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "ShowFPS", false),
|
||||
GFX_ENABLE_GPU_TEXTURE_DECODING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"EnableGPUTextureDecoding", false),
|
||||
GFX_ENABLE_PIXEL_LIGHTING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"EnablePixelLighting", false),
|
||||
GFX_FAST_DEPTH_CALC(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "FastDepthCalc", true),
|
||||
GFX_DISABLE_FOG(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "DisableFog", false),
|
||||
GFX_BACKEND_MULTITHREADING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"BackendMultithreading", false),
|
||||
GFX_WAIT_FOR_SHADERS_BEFORE_STARTING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"WaitForShadersBeforeStarting", false),
|
||||
|
||||
GFX_ENHANCE_FORCE_FILTERING(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ForceFiltering", false),
|
||||
GFX_ENHANCE_FORCE_TRUE_COLOR(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ForceTrueColor", true),
|
||||
GFX_ENHANCE_DISABLE_COPY_FILTER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"DisableCopyFilter", true),
|
||||
GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ArbitraryMipmapDetection", true),
|
||||
|
||||
GFX_STEREO_SWAP_EYES(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoSwapEyes", false),
|
||||
|
||||
GFX_HACK_EFB_ACCESS_ENABLE(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "EFBAccessEnable",
|
||||
true),
|
||||
GFX_HACK_SKIP_EFB_COPY_TO_RAM(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"EFBToTextureEnable", true),
|
||||
GFX_HACK_SKIP_XFB_COPY_TO_RAM(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"XFBToTextureEnable", true),
|
||||
GFX_HACK_DEFER_EFB_COPIES(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "DeferEFBCopies", true),
|
||||
GFX_HACK_IMMEDIATE_XFB(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "ImmediateXFBEnable",
|
||||
false),
|
||||
GFX_HACK_SKIP_DUPLICATE_XFBS(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "SkipDuplicateXFBs",
|
||||
true),
|
||||
GFX_HACK_COPY_EFB_SCALED(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "EFBScaledCopy", true),
|
||||
GFX_HACK_EFB_EMULATE_FORMAT_CHANGES(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"EFBEmulateFormatChanges", false),
|
||||
|
||||
LOGGER_WRITE_TO_FILE(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_OPTIONS, "WriteToFile", false),
|
||||
|
||||
// These settings are not yet in the new config system in C++ - please move them once they are
|
||||
|
||||
MAIN_JIT_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitOff", false),
|
||||
MAIN_JIT_LOAD_STORE_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitLoadStoreOff", false),
|
||||
MAIN_JIT_LOAD_STORE_FLOATING_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitLoadStoreFloatingOff", false),
|
||||
MAIN_JIT_LOAD_STORE_PAIRED_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitLoadStorePairedOff", false),
|
||||
MAIN_JIT_FLOATING_POINT_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitFloatingPointOff",
|
||||
false),
|
||||
MAIN_JIT_INTEGER_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitIntegerOff", false),
|
||||
MAIN_JIT_PAIRED_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitPairedOff", false),
|
||||
MAIN_JIT_SYSTEM_REGISTERS_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitSystemRegistersOff", false),
|
||||
MAIN_JIT_BRANCH_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitBranchOff", false),
|
||||
MAIN_JIT_REGISTER_CACHE_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitRegisterCacheOff",
|
||||
false);
|
||||
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
private final boolean mDefaultValue;
|
||||
|
||||
BooleanSetting(String file, String section, String key, boolean defaultValue)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getBoolean(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(Settings settings, boolean newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,40 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface FloatSetting extends AbstractSetting
|
||||
public enum FloatSetting implements AbstractFloatSetting
|
||||
{
|
||||
float getFloat(Settings settings, float defaultValue);
|
||||
// These entries have the same names and order as in C++, just for consistency.
|
||||
|
||||
void setFloat(Settings settings, float newValue);
|
||||
MAIN_EMULATION_SPEED(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "EmulationSpeed", 1.0f),
|
||||
MAIN_OVERCLOCK(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Overclock", 1.0f);
|
||||
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
private final float mDefaultValue;
|
||||
|
||||
FloatSetting(String file, String section, String key, float defaultValue)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloat(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getFloat(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFloat(Settings settings, float newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,67 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface IntSetting extends AbstractSetting
|
||||
{
|
||||
int getInt(Settings settings, int defaultValue);
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
|
||||
void setInt(Settings settings, int newValue);
|
||||
public enum IntSetting implements AbstractIntSetting
|
||||
{
|
||||
// These entries have the same names and order as in C++, just for consistency.
|
||||
|
||||
MAIN_CPU_CORE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUCore",
|
||||
NativeLibrary.DefaultCPUCore()),
|
||||
MAIN_GC_LANGUAGE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SelectedLanguage", 0),
|
||||
MAIN_SLOT_A(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotA", 8),
|
||||
MAIN_SLOT_B(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotB", 255),
|
||||
|
||||
MAIN_AUDIO_VOLUME(Settings.FILE_DOLPHIN, Settings.SECTION_INI_DSP, "Volume", 100),
|
||||
|
||||
MAIN_LAST_PLATFORM_TAB(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "LastPlatformTab", 0),
|
||||
|
||||
GFX_ASPECT_RATIO(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "AspectRatio", 0),
|
||||
GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"SafeTextureCacheColorSamples", 128),
|
||||
GFX_MSAA(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "MSAA", 1),
|
||||
GFX_EFB_SCALE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "InternalResolution", 1),
|
||||
GFX_SHADER_COMPILATION_MODE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"ShaderCompilationMode", 0),
|
||||
|
||||
GFX_ENHANCE_MAX_ANISOTROPY(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS, "MaxAnisotropy",
|
||||
0),
|
||||
|
||||
GFX_STEREO_MODE(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoMode", 0),
|
||||
GFX_STEREO_DEPTH(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoDepth", 20),
|
||||
GFX_STEREO_CONVERGENCE_PERCENTAGE(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY,
|
||||
"StereoConvergencePercentage", 100),
|
||||
|
||||
LOGGER_VERBOSITY(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_OPTIONS, "Verbosity", 1);
|
||||
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
private final int mDefaultValue;
|
||||
|
||||
IntSetting(String file, String section, String key, int defaultValue)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getInt(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInt(Settings settings, int newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setInt(mKey, newValue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class LegacyBooleanSetting extends AbstractLegacySetting implements AbstractBooleanSetting
|
||||
{
|
||||
private final boolean mDefaultValue;
|
||||
|
||||
public LegacyBooleanSetting(String file, String section, String key, boolean defaultValue)
|
||||
{
|
||||
super(file, section, key);
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getBoolean(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(Settings settings, boolean newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class LegacyFloatSetting extends AbstractLegacySetting implements AbstractFloatSetting
|
||||
{
|
||||
private final float mDefaultValue;
|
||||
|
||||
public LegacyFloatSetting(String file, String section, String key, float defaultValue)
|
||||
{
|
||||
super(file, section, key);
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloat(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getFloat(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFloat(Settings settings, float newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class LegacyIntSetting extends AbstractLegacySetting implements AbstractIntSetting
|
||||
{
|
||||
private final int mDefaultValue;
|
||||
|
||||
public LegacyIntSetting(String file, String section, String key, int defaultValue)
|
||||
{
|
||||
super(file, section, key);
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getInt(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInt(Settings settings, int newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setInt(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -1,69 +0,0 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class LegacySetting implements StringSetting, BooleanSetting, IntSetting, FloatSetting
|
||||
{
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
|
||||
public LegacySetting(String file, String section, String key)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(Settings settings, String defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getString(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(Settings settings, boolean defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getBoolean(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(Settings settings, int defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getInt(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloat(Settings settings, float defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getFloat(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(Settings settings, String newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setString(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(Settings settings, boolean newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInt(Settings settings, int newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setInt(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFloat(Settings settings, float newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public class LegacyStringSetting extends AbstractLegacySetting implements AbstractStringSetting
|
||||
{
|
||||
private final String mDefaultValue;
|
||||
|
||||
public LegacyStringSetting(String file, String section, String key, String defaultValue)
|
||||
{
|
||||
super(file, section, key);
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getString(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(Settings settings, String newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setString(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -1,186 +0,0 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public enum Setting implements StringSetting, BooleanSetting, IntSetting, FloatSetting
|
||||
{
|
||||
// These entries have the same names and order as in C++, just for consistency.
|
||||
|
||||
MAIN_CPU_CORE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUCore"),
|
||||
MAIN_DSP_HLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DSPHLE"),
|
||||
MAIN_CPU_THREAD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUThread"),
|
||||
MAIN_DEFAULT_ISO(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DefaultISO"),
|
||||
MAIN_GC_LANGUAGE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SelectedLanguage"),
|
||||
MAIN_OVERRIDE_REGION_SETTINGS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"OverrideRegionSettings"),
|
||||
MAIN_AUDIO_STRETCH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AudioStretch"),
|
||||
MAIN_SLOT_A(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotA"),
|
||||
MAIN_SLOT_B(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SlotB"),
|
||||
MAIN_WII_SD_CARD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCard"),
|
||||
MAIN_WIIMOTE_CONTINUOUS_SCANNING(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"WiimoteContinuousScanning"),
|
||||
MAIN_WIIMOTE_ENABLE_SPEAKER(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
"WiimoteEnableSpeaker"),
|
||||
MAIN_EMULATION_SPEED(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "EmulationSpeed"),
|
||||
MAIN_OVERCLOCK(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Overclock"),
|
||||
MAIN_OVERCLOCK_ENABLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "OverclockEnable"),
|
||||
MAIN_GFX_BACKEND(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "GFXBackend"),
|
||||
MAIN_AUTO_DISC_CHANGE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "AutoDiscChange"),
|
||||
MAIN_ALLOW_SD_WRITES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "WiiSDCardAllowWrites"),
|
||||
MAIN_ENABLE_SAVESTATES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "EnableSaveStates"),
|
||||
|
||||
MAIN_DSP_JIT(Settings.FILE_DOLPHIN, Settings.SECTION_INI_DSP, "EnableJIT"),
|
||||
MAIN_AUDIO_VOLUME(Settings.FILE_DOLPHIN, Settings.SECTION_INI_DSP, "Volume"),
|
||||
|
||||
MAIN_DUMP_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "DumpPath"),
|
||||
MAIN_LOAD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "LoadPath"),
|
||||
MAIN_RESOURCEPACK_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "ResourcePackPath"),
|
||||
MAIN_FS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "NANDRootPath"),
|
||||
MAIN_SD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath"),
|
||||
|
||||
MAIN_USE_PANIC_HANDLERS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_INTERFACE,
|
||||
"UsePanicHandlers"),
|
||||
MAIN_OSD_MESSAGES(Settings.FILE_DOLPHIN, Settings.SECTION_INI_INTERFACE,
|
||||
"OnScreenDisplayMessages"),
|
||||
|
||||
MAIN_ANALYTICS_ENABLED(Settings.FILE_DOLPHIN, Settings.SECTION_ANALYTICS, "Enabled"),
|
||||
MAIN_ANALYTICS_PERMISSION_ASKED(Settings.FILE_DOLPHIN, Settings.SECTION_ANALYTICS,
|
||||
"PermissionAsked"),
|
||||
|
||||
MAIN_RECURSIVE_ISO_PATHS(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL,
|
||||
"RecursiveISOPaths"),
|
||||
|
||||
MAIN_LAST_PLATFORM_TAB(Settings.FILE_DOLPHIN, Settings.SECTION_INI_ANDROID, "LastPlatformTab"),
|
||||
|
||||
GFX_WIDESCREEN_HACK(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "wideScreenHack"),
|
||||
GFX_ASPECT_RATIO(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "AspectRatio"),
|
||||
GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"SafeTextureCacheColorSamples"),
|
||||
GFX_SHOW_FPS(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "ShowFPS"),
|
||||
GFX_ENABLE_GPU_TEXTURE_DECODING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"EnableGPUTextureDecoding"),
|
||||
GFX_ENABLE_PIXEL_LIGHTING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"EnablePixelLighting"),
|
||||
GFX_FAST_DEPTH_CALC(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "FastDepthCalc"),
|
||||
GFX_MSAA(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "MSAA"),
|
||||
GFX_EFB_SCALE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "InternalResolution"),
|
||||
GFX_DISABLE_FOG(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "DisableFog"),
|
||||
GFX_BACKEND_MULTITHREADING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"BackendMultithreading"),
|
||||
GFX_WAIT_FOR_SHADERS_BEFORE_STARTING(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"WaitForShadersBeforeStarting"),
|
||||
GFX_SHADER_COMPILATION_MODE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS,
|
||||
"ShaderCompilationMode"),
|
||||
|
||||
GFX_ENHANCE_FORCE_FILTERING(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ForceFiltering"),
|
||||
GFX_ENHANCE_MAX_ANISOTROPY(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS, "MaxAnisotropy"),
|
||||
GFX_ENHANCE_POST_SHADER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"PostProcessingShader"),
|
||||
GFX_ENHANCE_FORCE_TRUE_COLOR(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ForceTrueColor"),
|
||||
GFX_ENHANCE_DISABLE_COPY_FILTER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"DisableCopyFilter"),
|
||||
GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"ArbitraryMipmapDetection"),
|
||||
|
||||
GFX_STEREO_MODE(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoMode"),
|
||||
GFX_STEREO_DEPTH(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoDepth"),
|
||||
GFX_STEREO_CONVERGENCE_PERCENTAGE(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY,
|
||||
"StereoConvergencePercentage"),
|
||||
GFX_STEREO_SWAP_EYES(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoSwapEyes"),
|
||||
|
||||
GFX_HACK_EFB_ACCESS_ENABLE(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "EFBAccessEnable"),
|
||||
GFX_HACK_SKIP_EFB_COPY_TO_RAM(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"EFBToTextureEnable"),
|
||||
GFX_HACK_SKIP_XFB_COPY_TO_RAM(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"XFBToTextureEnable"),
|
||||
GFX_HACK_DEFER_EFB_COPIES(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "DeferEFBCopies"),
|
||||
GFX_HACK_IMMEDIATE_XFB(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "ImmediateXFBEnable"),
|
||||
GFX_HACK_SKIP_DUPLICATE_XFBS(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "SkipDuplicateXFBs"),
|
||||
GFX_HACK_COPY_EFB_SCALED(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS, "EFBScaledCopy"),
|
||||
GFX_HACK_EFB_EMULATE_FORMAT_CHANGES(Settings.FILE_GFX, Settings.SECTION_GFX_HACKS,
|
||||
"EFBEmulateFormatChanges"),
|
||||
|
||||
LOGGER_WRITE_TO_FILE(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_OPTIONS, "WriteToFile"),
|
||||
LOGGER_VERBOSITY(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_OPTIONS, "Verbosity"),
|
||||
|
||||
// These settings are not yet in the new config system in C++ - please move them once they are
|
||||
|
||||
MAIN_JIT_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitOff"),
|
||||
MAIN_JIT_LOAD_STORE_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitLoadStoreOff"),
|
||||
MAIN_JIT_LOAD_STORE_FLOATING_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitLoadStoreFloatingOff"),
|
||||
MAIN_JIT_LOAD_STORE_PAIRED_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitLoadStorePairedOff"),
|
||||
MAIN_JIT_FLOATING_POINT_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitFloatingPointOff"),
|
||||
MAIN_JIT_INTEGER_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitIntegerOff"),
|
||||
MAIN_JIT_PAIRED_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitPairedOff"),
|
||||
MAIN_JIT_SYSTEM_REGISTERS_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG,
|
||||
"JitSystemRegistersOff"),
|
||||
MAIN_JIT_BRANCH_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitBranchOff"),
|
||||
MAIN_JIT_REGISTER_CACHE_OFF(Settings.FILE_DOLPHIN, Settings.SECTION_DEBUG, "JitRegisterCacheOff");
|
||||
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
|
||||
Setting(String file, String section, String key)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(Settings settings, String defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getString(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getBoolean(Settings settings, boolean defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getBoolean(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInt(Settings settings, int defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getInt(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getFloat(Settings settings, float defaultValue)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getFloat(mKey, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(Settings settings, String newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setString(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoolean(Settings settings, boolean newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setBoolean(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInt(Settings settings, int newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setInt(mKey, newValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFloat(Settings settings, float newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setFloat(mKey, newValue);
|
||||
}
|
||||
}
|
|
@ -96,7 +96,7 @@ public class Settings
|
|||
loadCustomGameSettings(gameId, view);
|
||||
}
|
||||
|
||||
mLoadedRecursiveIsoPathsValue = Setting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(this, false);
|
||||
mLoadedRecursiveIsoPathsValue = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(this);
|
||||
}
|
||||
|
||||
private void loadDolphinSettings(SettingsActivityView view)
|
||||
|
@ -145,7 +145,7 @@ public class Settings
|
|||
NativeLibrary.ReloadLoggerConfig();
|
||||
NativeLibrary.UpdateGCAdapterScanThread();
|
||||
|
||||
if (mLoadedRecursiveIsoPathsValue != Setting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(this, false))
|
||||
if (mLoadedRecursiveIsoPathsValue != BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(this))
|
||||
{
|
||||
// Refresh game library
|
||||
GameFileCacheService.startRescan(context);
|
||||
|
|
|
@ -1,8 +1,53 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model;
|
||||
|
||||
public interface StringSetting extends AbstractSetting
|
||||
{
|
||||
String getString(Settings settings, String defaultValue);
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
|
||||
void setString(Settings settings, String newValue);
|
||||
public enum StringSetting implements AbstractStringSetting
|
||||
{
|
||||
// These entries have the same names and order as in C++, just for consistency.
|
||||
|
||||
MAIN_DEFAULT_ISO(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DefaultISO", ""),
|
||||
MAIN_GFX_BACKEND(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "GFXBackend",
|
||||
NativeLibrary.GetDefaultGraphicsBackendName()),
|
||||
|
||||
MAIN_DUMP_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "DumpPath", ""),
|
||||
MAIN_LOAD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "LoadPath", ""),
|
||||
MAIN_RESOURCEPACK_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "ResourcePackPath",
|
||||
""),
|
||||
MAIN_FS_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "NANDRootPath", ""),
|
||||
MAIN_SD_PATH(Settings.FILE_DOLPHIN, Settings.SECTION_INI_GENERAL, "WiiSDCardPath", ""),
|
||||
|
||||
GFX_ENHANCE_POST_SHADER(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS,
|
||||
"PostProcessingShader", "");
|
||||
|
||||
private final String mFile;
|
||||
private final String mSection;
|
||||
private final String mKey;
|
||||
private final String mDefaultValue;
|
||||
|
||||
StringSetting(String file, String section, String key, String defaultValue)
|
||||
{
|
||||
mFile = file;
|
||||
mSection = section;
|
||||
mKey = key;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).delete(mKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getString(Settings settings)
|
||||
{
|
||||
return settings.getSection(mFile, mSection).getString(mKey, mDefaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setString(Settings settings, String newValue)
|
||||
{
|
||||
settings.getSection(mFile, mSection).setString(mKey, newValue);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,24 +1,21 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractBooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public class CheckBoxSetting extends SettingsItem
|
||||
{
|
||||
protected BooleanSetting mSetting;
|
||||
protected boolean mDefaultValue;
|
||||
protected AbstractBooleanSetting mSetting;
|
||||
|
||||
public CheckBoxSetting(BooleanSetting setting, int titleId, int descriptionId,
|
||||
boolean defaultValue)
|
||||
public CheckBoxSetting(AbstractBooleanSetting setting, int titleId, int descriptionId)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
public boolean isChecked(Settings settings)
|
||||
{
|
||||
return mSetting.getBoolean(settings, mDefaultValue);
|
||||
return mSetting.getBoolean(settings);
|
||||
}
|
||||
|
||||
public void setChecked(Settings settings, boolean checked)
|
||||
|
|
|
@ -1,26 +1,23 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractStringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
|
||||
|
||||
public final class FilePicker extends SettingsItem
|
||||
{
|
||||
private StringSetting mSetting;
|
||||
private String mDefaultValue;
|
||||
private AbstractStringSetting mSetting;
|
||||
private int mRequestType;
|
||||
|
||||
public FilePicker(StringSetting setting, int titleId, int descriptionId,
|
||||
String defaultVault, int requestType)
|
||||
public FilePicker(AbstractStringSetting setting, int titleId, int descriptionId, int requestType)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultVault;
|
||||
mRequestType = requestType;
|
||||
}
|
||||
|
||||
public String getSelectedValue(Settings settings)
|
||||
{
|
||||
return mSetting.getString(settings, mDefaultValue);
|
||||
return mSetting.getString(settings);
|
||||
}
|
||||
|
||||
public void setSelectedValue(Settings settings, String selection)
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.FloatSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public class FloatSliderSetting extends SliderSetting
|
||||
{
|
||||
protected FloatSetting mSetting;
|
||||
protected float mDefaultValue;
|
||||
protected AbstractFloatSetting mSetting;
|
||||
|
||||
public FloatSliderSetting(FloatSetting setting, int titleId, int descriptionId, int max,
|
||||
String units, float defaultValue)
|
||||
public FloatSliderSetting(AbstractFloatSetting setting, int titleId, int descriptionId, int max,
|
||||
String units)
|
||||
{
|
||||
super(titleId, descriptionId, max, units);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
public int getSelectedValue(Settings settings)
|
||||
{
|
||||
return Math.round(mSetting.getFloat(settings, mDefaultValue));
|
||||
return Math.round(mSetting.getFloat(settings));
|
||||
}
|
||||
|
||||
public void setSelectedValue(Settings settings, float selection)
|
||||
|
|
|
@ -1,24 +1,22 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractIntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public final class IntSliderSetting extends SliderSetting
|
||||
{
|
||||
private IntSetting mSetting;
|
||||
private int mDefaultValue;
|
||||
private AbstractIntSetting mSetting;
|
||||
|
||||
public IntSliderSetting(IntSetting setting, int titleId, int descriptionId, int max,
|
||||
String units, int defaultValue)
|
||||
public IntSliderSetting(AbstractIntSetting setting, int titleId, int descriptionId, int max,
|
||||
String units)
|
||||
{
|
||||
super(titleId, descriptionId, max, units);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultValue;
|
||||
}
|
||||
|
||||
public int getSelectedValue(Settings settings)
|
||||
{
|
||||
return mSetting.getInt(settings, mDefaultValue);
|
||||
return mSetting.getInt(settings);
|
||||
}
|
||||
|
||||
public void setSelectedValue(Settings settings, int selection)
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractBooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public final class InvertedCheckBoxSetting extends CheckBoxSetting
|
||||
{
|
||||
public InvertedCheckBoxSetting(BooleanSetting setting, int titleId,
|
||||
int descriptionId, boolean defaultValue)
|
||||
public InvertedCheckBoxSetting(AbstractBooleanSetting setting, int titleId,
|
||||
int descriptionId)
|
||||
{
|
||||
super(setting, titleId, descriptionId, !defaultValue);
|
||||
super(setting, titleId, descriptionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChecked(Settings settings)
|
||||
{
|
||||
return !mSetting.getBoolean(settings, mDefaultValue);
|
||||
return !mSetting.getBoolean(settings);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacySetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacyBooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public class LogCheckBoxSetting extends CheckBoxSetting
|
||||
{
|
||||
String mKey;
|
||||
|
||||
public LogCheckBoxSetting(String key, int titleId, int descriptionId,
|
||||
boolean defaultValue)
|
||||
public LogCheckBoxSetting(String key, int titleId, int descriptionId)
|
||||
{
|
||||
super(new LegacySetting(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_LOGS, key), titleId,
|
||||
descriptionId, defaultValue);
|
||||
super(new LegacyBooleanSetting(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_LOGS, key, false),
|
||||
titleId, descriptionId);
|
||||
mKey = key;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.FloatSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public final class PercentSliderSetting extends FloatSliderSetting
|
||||
{
|
||||
public PercentSliderSetting(FloatSetting setting, int titleId, int descriptionId, int max,
|
||||
String units, float defaultValue)
|
||||
public PercentSliderSetting(AbstractFloatSetting setting, int titleId, int descriptionId, int max,
|
||||
String units)
|
||||
{
|
||||
super(setting, titleId, descriptionId, max, units, defaultValue / 100);
|
||||
super(setting, titleId, descriptionId, max, units);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSelectedValue(Settings settings)
|
||||
{
|
||||
return Math.round(mSetting.getFloat(settings, mDefaultValue) * 100);
|
||||
return Math.round(mSetting.getFloat(settings) * 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,33 +1,31 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractIntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
|
||||
|
||||
public final class SingleChoiceSetting extends SettingsItem
|
||||
{
|
||||
private IntSetting mSetting;
|
||||
private int mDefaultValue;
|
||||
private AbstractIntSetting mSetting;
|
||||
|
||||
private int mChoicesId;
|
||||
private int mValuesId;
|
||||
private MenuTag menuTag;
|
||||
|
||||
public SingleChoiceSetting(IntSetting setting, int titleId, int descriptionId, int choicesId,
|
||||
int valuesId, int defaultValue, MenuTag menuTag)
|
||||
public SingleChoiceSetting(AbstractIntSetting setting, int titleId, int descriptionId,
|
||||
int choicesId, int valuesId, MenuTag menuTag)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultValue;
|
||||
mValuesId = valuesId;
|
||||
mChoicesId = choicesId;
|
||||
this.menuTag = menuTag;
|
||||
}
|
||||
|
||||
public SingleChoiceSetting(IntSetting setting, int titleId, int descriptionId, int choicesId,
|
||||
int valuesId, int defaultValue)
|
||||
public SingleChoiceSetting(AbstractIntSetting setting, int titleId, int descriptionId,
|
||||
int choicesId, int valuesId)
|
||||
{
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, defaultValue, null);
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, null);
|
||||
}
|
||||
|
||||
public int getChoicesId()
|
||||
|
@ -42,7 +40,7 @@ public final class SingleChoiceSetting extends SettingsItem
|
|||
|
||||
public int getSelectedValue(Settings settings)
|
||||
{
|
||||
return mSetting.getInt(settings, mDefaultValue);
|
||||
return mSetting.getInt(settings);
|
||||
}
|
||||
|
||||
public MenuTag getMenuTag()
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractIntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
|
||||
|
||||
public final class SingleChoiceSettingDynamicDescriptions extends SettingsItem
|
||||
{
|
||||
private IntSetting mSetting;
|
||||
private int mDefaultValue;
|
||||
private AbstractIntSetting mSetting;
|
||||
|
||||
private int mChoicesId;
|
||||
private int mValuesId;
|
||||
|
@ -15,13 +14,12 @@ public final class SingleChoiceSettingDynamicDescriptions extends SettingsItem
|
|||
private int mDescriptionValuesId;
|
||||
private MenuTag menuTag;
|
||||
|
||||
public SingleChoiceSettingDynamicDescriptions(IntSetting setting, int titleId, int descriptionId,
|
||||
int choicesId, int valuesId, int descriptionChoicesId, int descriptionValuesId,
|
||||
int defaultValue, MenuTag menuTag)
|
||||
public SingleChoiceSettingDynamicDescriptions(AbstractIntSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId, int descriptionChoicesId,
|
||||
int descriptionValuesId, MenuTag menuTag)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mDefaultValue = defaultValue;
|
||||
mValuesId = valuesId;
|
||||
mChoicesId = choicesId;
|
||||
mDescriptionChoicesId = descriptionChoicesId;
|
||||
|
@ -29,12 +27,12 @@ public final class SingleChoiceSettingDynamicDescriptions extends SettingsItem
|
|||
this.menuTag = menuTag;
|
||||
}
|
||||
|
||||
public SingleChoiceSettingDynamicDescriptions(IntSetting setting, int titleId, int descriptionId,
|
||||
int choicesId, int valuesId, int descriptionChoicesId, int descriptionValuesId,
|
||||
int defaultValue)
|
||||
public SingleChoiceSettingDynamicDescriptions(AbstractIntSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId, int descriptionChoicesId,
|
||||
int descriptionValuesId)
|
||||
{
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, descriptionChoicesId,
|
||||
descriptionValuesId, defaultValue, null);
|
||||
descriptionValuesId, null);
|
||||
}
|
||||
|
||||
public int getChoicesId()
|
||||
|
@ -59,7 +57,7 @@ public final class SingleChoiceSettingDynamicDescriptions extends SettingsItem
|
|||
|
||||
public int getSelectedValue(Settings settings)
|
||||
{
|
||||
return mSetting.getInt(settings, mDefaultValue);
|
||||
return mSetting.getInt(settings);
|
||||
}
|
||||
|
||||
public MenuTag getMenuTag()
|
||||
|
|
|
@ -1,52 +1,48 @@
|
|||
package org.dolphinemu.dolphinemu.features.settings.model.view;
|
||||
|
||||
import org.dolphinemu.dolphinemu.DolphinApplication;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractStringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
|
||||
|
||||
public class StringSingleChoiceSetting extends SettingsItem
|
||||
{
|
||||
private StringSetting mSetting;
|
||||
private String mDefaultValue;
|
||||
private AbstractStringSetting mSetting;
|
||||
|
||||
private String[] mChoicesId;
|
||||
private String[] mValuesId;
|
||||
private MenuTag mMenuTag;
|
||||
|
||||
public StringSingleChoiceSetting(StringSetting setting, int titleId,
|
||||
int descriptionId, String[] choicesId, String[] valuesId, String defaultValue,
|
||||
MenuTag menuTag)
|
||||
public StringSingleChoiceSetting(AbstractStringSetting setting, int titleId,
|
||||
int descriptionId, String[] choicesId, String[] valuesId, MenuTag menuTag)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mChoicesId = choicesId;
|
||||
mValuesId = valuesId;
|
||||
mDefaultValue = defaultValue;
|
||||
mMenuTag = menuTag;
|
||||
}
|
||||
|
||||
public StringSingleChoiceSetting(StringSetting setting, int titleId,
|
||||
int descriptionId, String[] choicesId, String[] valuesId, String defaultValue)
|
||||
public StringSingleChoiceSetting(AbstractStringSetting setting, int titleId,
|
||||
int descriptionId, String[] choicesId, String[] valuesId)
|
||||
{
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, defaultValue, null);
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, null);
|
||||
}
|
||||
|
||||
public StringSingleChoiceSetting(StringSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId, String defaultValue, MenuTag menuTag)
|
||||
public StringSingleChoiceSetting(AbstractStringSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId, MenuTag menuTag)
|
||||
{
|
||||
super(titleId, descriptionId);
|
||||
mSetting = setting;
|
||||
mChoicesId = DolphinApplication.getAppContext().getResources().getStringArray(choicesId);
|
||||
mValuesId = DolphinApplication.getAppContext().getResources().getStringArray(valuesId);
|
||||
mDefaultValue = defaultValue;
|
||||
mMenuTag = menuTag;
|
||||
}
|
||||
|
||||
public StringSingleChoiceSetting(StringSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId, String defaultValue)
|
||||
public StringSingleChoiceSetting(AbstractStringSetting setting, int titleId,
|
||||
int descriptionId, int choicesId, int valuesId)
|
||||
{
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, defaultValue, null);
|
||||
this(setting, titleId, descriptionId, choicesId, valuesId, null);
|
||||
}
|
||||
|
||||
public String[] getChoicesId()
|
||||
|
@ -74,7 +70,7 @@ public class StringSingleChoiceSetting extends SettingsItem
|
|||
|
||||
public String getSelectedValue(Settings settings)
|
||||
{
|
||||
return mSetting.getString(settings, mDefaultValue);
|
||||
return mSetting.getString(settings);
|
||||
}
|
||||
|
||||
public int getSelectValueIndex(Settings settings)
|
||||
|
|
|
@ -13,9 +13,9 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.dialogs.MotionAlertDialog;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacySetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacyBooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.CheckBoxSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.FilePicker;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.FloatSliderSetting;
|
||||
|
@ -319,12 +319,12 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
|
|||
{
|
||||
Settings settings = mView.getSettings();
|
||||
|
||||
Setting.MAIN_DEFAULT_ISO.delete(settings);
|
||||
Setting.MAIN_FS_PATH.delete(settings);
|
||||
Setting.MAIN_DUMP_PATH.delete(settings);
|
||||
Setting.MAIN_LOAD_PATH.delete(settings);
|
||||
Setting.MAIN_RESOURCEPACK_PATH.delete(settings);
|
||||
Setting.MAIN_SD_PATH.delete(settings);
|
||||
StringSetting.MAIN_DEFAULT_ISO.delete(settings);
|
||||
StringSetting.MAIN_FS_PATH.delete(settings);
|
||||
StringSetting.MAIN_DUMP_PATH.delete(settings);
|
||||
StringSetting.MAIN_LOAD_PATH.delete(settings);
|
||||
StringSetting.MAIN_RESOURCEPACK_PATH.delete(settings);
|
||||
StringSetting.MAIN_SD_PATH.delete(settings);
|
||||
|
||||
mView.onSettingChanged();
|
||||
}
|
||||
|
@ -335,8 +335,8 @@ public final class SettingsAdapter extends RecyclerView.Adapter<SettingViewHolde
|
|||
|
||||
for (Map.Entry<String, String> entry : SettingsFragmentPresenter.LOG_TYPE_NAMES.entrySet())
|
||||
{
|
||||
new LegacySetting(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_LOGS, entry.getKey())
|
||||
.setBoolean(settings, value);
|
||||
new LegacyBooleanSetting(Settings.FILE_LOGGER, Settings.SECTION_LOGGER_LOGS, entry.getKey(),
|
||||
false).setBoolean(settings, value);
|
||||
}
|
||||
|
||||
mView.onSettingChanged();
|
||||
|
|
|
@ -5,10 +5,15 @@ import android.text.TextUtils;
|
|||
|
||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.AbstractIntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.FloatSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacySetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacyBooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacyIntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.LegacyStringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.StringSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.CheckBoxSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.ConfirmRunnable;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.view.FilePicker;
|
||||
|
@ -224,24 +229,24 @@ public final class SettingsFragmentPresenter
|
|||
|
||||
private void addGeneralSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_CPU_THREAD, R.string.dual_core,
|
||||
R.string.dual_core_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_OVERRIDE_REGION_SETTINGS,
|
||||
R.string.override_region_settings, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_AUTO_DISC_CHANGE, R.string.auto_disc_change, 0, false));
|
||||
sl.add(new PercentSliderSetting(Setting.MAIN_EMULATION_SPEED, R.string.speed_limit, 0, 200, "%",
|
||||
100));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_ANALYTICS_ENABLED, R.string.analytics, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_ENABLE_SAVESTATES, R.string.enable_save_states,
|
||||
R.string.enable_save_states_description, false));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_CPU_THREAD, R.string.dual_core,
|
||||
R.string.dual_core_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_OVERRIDE_REGION_SETTINGS,
|
||||
R.string.override_region_settings, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_AUTO_DISC_CHANGE, R.string.auto_disc_change, 0));
|
||||
sl.add(new PercentSliderSetting(FloatSetting.MAIN_EMULATION_SPEED, R.string.speed_limit, 0, 200,
|
||||
"%"));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_ANALYTICS_ENABLED, R.string.analytics, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_ENABLE_SAVESTATES, R.string.enable_save_states,
|
||||
R.string.enable_save_states_description));
|
||||
}
|
||||
|
||||
private void addInterfaceSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_USE_PANIC_HANDLERS, R.string.panic_handlers,
|
||||
R.string.panic_handlers_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_OSD_MESSAGES, R.string.osd_messages,
|
||||
R.string.osd_messages_description, true));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_USE_PANIC_HANDLERS, R.string.panic_handlers,
|
||||
R.string.panic_handlers_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_OSD_MESSAGES, R.string.osd_messages,
|
||||
R.string.osd_messages_description));
|
||||
}
|
||||
|
||||
private void addAudioSettings(ArrayList<SettingsItem> sl)
|
||||
|
@ -250,18 +255,18 @@ public final class SettingsFragmentPresenter
|
|||
final int DSP_LLE_RECOMPILER = 1;
|
||||
final int DSP_LLE_INTERPRETER = 2;
|
||||
|
||||
IntSetting dspEmulationEngine = new IntSetting()
|
||||
AbstractIntSetting dspEmulationEngine = new AbstractIntSetting()
|
||||
{
|
||||
@Override
|
||||
public int getInt(Settings settings, int defaultValue)
|
||||
public int getInt(Settings settings)
|
||||
{
|
||||
if (Setting.MAIN_DSP_HLE.getBoolean(settings, true))
|
||||
if (BooleanSetting.MAIN_DSP_HLE.getBoolean(settings))
|
||||
{
|
||||
return DSP_HLE;
|
||||
}
|
||||
else
|
||||
{
|
||||
boolean jit = Setting.MAIN_DSP_JIT.getBoolean(settings, true);
|
||||
boolean jit = BooleanSetting.MAIN_DSP_JIT.getBoolean(settings);
|
||||
return jit ? DSP_LLE_RECOMPILER : DSP_LLE_INTERPRETER;
|
||||
}
|
||||
}
|
||||
|
@ -272,18 +277,18 @@ public final class SettingsFragmentPresenter
|
|||
switch (newValue)
|
||||
{
|
||||
case DSP_HLE:
|
||||
Setting.MAIN_DSP_HLE.setBoolean(settings, true);
|
||||
Setting.MAIN_DSP_JIT.setBoolean(settings, true);
|
||||
BooleanSetting.MAIN_DSP_HLE.setBoolean(settings, true);
|
||||
BooleanSetting.MAIN_DSP_JIT.setBoolean(settings, true);
|
||||
break;
|
||||
|
||||
case DSP_LLE_RECOMPILER:
|
||||
Setting.MAIN_DSP_HLE.setBoolean(settings, false);
|
||||
Setting.MAIN_DSP_JIT.setBoolean(settings, true);
|
||||
BooleanSetting.MAIN_DSP_HLE.setBoolean(settings, false);
|
||||
BooleanSetting.MAIN_DSP_JIT.setBoolean(settings, true);
|
||||
break;
|
||||
|
||||
case DSP_LLE_INTERPRETER:
|
||||
Setting.MAIN_DSP_HLE.setBoolean(settings, false);
|
||||
Setting.MAIN_DSP_JIT.setBoolean(settings, false);
|
||||
BooleanSetting.MAIN_DSP_HLE.setBoolean(settings, false);
|
||||
BooleanSetting.MAIN_DSP_JIT.setBoolean(settings, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -292,7 +297,8 @@ public final class SettingsFragmentPresenter
|
|||
public boolean delete(Settings settings)
|
||||
{
|
||||
// Not short circuiting
|
||||
return Setting.MAIN_DSP_HLE.delete(settings) & Setting.MAIN_DSP_JIT.delete(settings);
|
||||
return BooleanSetting.MAIN_DSP_HLE.delete(settings) &
|
||||
BooleanSetting.MAIN_DSP_JIT.delete(settings);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -311,28 +317,27 @@ public final class SettingsFragmentPresenter
|
|||
dspEngineValues = R.array.dspEngineValuesGeneric;
|
||||
}
|
||||
sl.add(new SingleChoiceSetting(dspEmulationEngine, R.string.dsp_emulation_engine, 0,
|
||||
dspEngineEntries, dspEngineValues, 0));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_AUDIO_STRETCH, R.string.audio_stretch,
|
||||
R.string.audio_stretch_description, false));
|
||||
sl.add(new IntSliderSetting(Setting.MAIN_AUDIO_VOLUME, R.string.audio_volume, 0, 100, "%",
|
||||
100));
|
||||
dspEngineEntries, dspEngineValues));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_AUDIO_STRETCH, R.string.audio_stretch,
|
||||
R.string.audio_stretch_description));
|
||||
sl.add(new IntSliderSetting(IntSetting.MAIN_AUDIO_VOLUME, R.string.audio_volume, 0, 100, "%"));
|
||||
}
|
||||
|
||||
private void addPathsSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_RECURSIVE_ISO_PATHS, R.string.search_subfolders, 0,
|
||||
false));
|
||||
sl.add(new FilePicker(Setting.MAIN_DEFAULT_ISO, R.string.default_ISO, 0, "",
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_RECURSIVE_ISO_PATHS, R.string.search_subfolders,
|
||||
0));
|
||||
sl.add(new FilePicker(StringSetting.MAIN_DEFAULT_ISO, R.string.default_ISO, 0,
|
||||
MainPresenter.REQUEST_GAME_FILE));
|
||||
sl.add(new FilePicker(Setting.MAIN_FS_PATH, R.string.wii_NAND_root, 0, getDefaultNANDRootPath(),
|
||||
sl.add(new FilePicker(StringSetting.MAIN_FS_PATH, R.string.wii_NAND_root, 0,
|
||||
MainPresenter.REQUEST_DIRECTORY));
|
||||
sl.add(new FilePicker(Setting.MAIN_DUMP_PATH, R.string.dump_path, 0, getDefaultDumpPath(),
|
||||
sl.add(new FilePicker(StringSetting.MAIN_DUMP_PATH, R.string.dump_path, 0,
|
||||
MainPresenter.REQUEST_DIRECTORY));
|
||||
sl.add(new FilePicker(Setting.MAIN_LOAD_PATH, R.string.load_path, 0, getDefaultLoadPath(),
|
||||
sl.add(new FilePicker(StringSetting.MAIN_LOAD_PATH, R.string.load_path, 0,
|
||||
MainPresenter.REQUEST_DIRECTORY));
|
||||
sl.add(new FilePicker(Setting.MAIN_RESOURCEPACK_PATH, R.string.resource_pack_path, 0,
|
||||
getDefaultResourcePackPath(), MainPresenter.REQUEST_DIRECTORY));
|
||||
sl.add(new FilePicker(Setting.MAIN_SD_PATH, R.string.SD_card_path, 0, getDefaultSDPath(),
|
||||
sl.add(new FilePicker(StringSetting.MAIN_RESOURCEPACK_PATH, R.string.resource_pack_path, 0,
|
||||
MainPresenter.REQUEST_DIRECTORY));
|
||||
sl.add(new FilePicker(StringSetting.MAIN_SD_PATH, R.string.SD_card_path, 0,
|
||||
MainPresenter.REQUEST_SD_FILE));
|
||||
sl.add(new ConfirmRunnable(R.string.reset_paths, 0, R.string.reset_paths_confirmation, 0,
|
||||
mView.getAdapter()::resetPaths));
|
||||
|
@ -340,24 +345,24 @@ public final class SettingsFragmentPresenter
|
|||
|
||||
private void addGameCubeSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new SingleChoiceSetting(Setting.MAIN_GC_LANGUAGE, R.string.gamecube_system_language, 0,
|
||||
R.array.gameCubeSystemLanguageEntries, R.array.gameCubeSystemLanguageValues, 0));
|
||||
sl.add(new SingleChoiceSetting(Setting.MAIN_SLOT_A, R.string.slot_a_device, 0,
|
||||
R.array.slotDeviceEntries, R.array.slotDeviceValues, 8));
|
||||
sl.add(new SingleChoiceSetting(Setting.MAIN_SLOT_B, R.string.slot_b_device, 0,
|
||||
R.array.slotDeviceEntries, R.array.slotDeviceValues, 255));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.MAIN_GC_LANGUAGE, R.string.gamecube_system_language,
|
||||
0, R.array.gameCubeSystemLanguageEntries, R.array.gameCubeSystemLanguageValues));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.MAIN_SLOT_A, R.string.slot_a_device, 0,
|
||||
R.array.slotDeviceEntries, R.array.slotDeviceValues));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.MAIN_SLOT_B, R.string.slot_b_device, 0,
|
||||
R.array.slotDeviceEntries, R.array.slotDeviceValues));
|
||||
}
|
||||
|
||||
private void addWiiSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_WII_SD_CARD, R.string.insert_sd_card,
|
||||
R.string.insert_sd_card_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_ALLOW_SD_WRITES, R.string.wii_sd_card_allow_writes, 0,
|
||||
true));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_WIIMOTE_CONTINUOUS_SCANNING, R.string.wiimote_scanning,
|
||||
R.string.wiimote_scanning_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_WIIMOTE_ENABLE_SPEAKER, R.string.wiimote_speaker,
|
||||
R.string.wiimote_speaker_description, false));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_WII_SD_CARD, R.string.insert_sd_card,
|
||||
R.string.insert_sd_card_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_ALLOW_SD_WRITES,
|
||||
R.string.wii_sd_card_allow_writes, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_WIIMOTE_CONTINUOUS_SCANNING,
|
||||
R.string.wiimote_scanning, R.string.wiimote_scanning_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_WIIMOTE_ENABLE_SPEAKER, R.string.wiimote_speaker,
|
||||
R.string.wiimote_speaker_description));
|
||||
}
|
||||
|
||||
private void addAdvancedSettings(ArrayList<SettingsItem> sl)
|
||||
|
@ -383,32 +388,32 @@ public final class SettingsFragmentPresenter
|
|||
emuCoresEntries = R.array.emuCoresEntriesGeneric;
|
||||
emuCoresValues = R.array.emuCoresValuesGeneric;
|
||||
}
|
||||
sl.add(new SingleChoiceSetting(Setting.MAIN_CPU_CORE, R.string.cpu_core, 0, emuCoresEntries,
|
||||
emuCoresValues, defaultCpuCore));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_OVERCLOCK_ENABLE, R.string.overclock_enable,
|
||||
R.string.overclock_enable_description, false));
|
||||
sl.add(new PercentSliderSetting(Setting.MAIN_OVERCLOCK, R.string.overclock_title,
|
||||
R.string.overclock_title_description, 400, "%", 100));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.MAIN_CPU_CORE, R.string.cpu_core, 0, emuCoresEntries,
|
||||
emuCoresValues));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_OVERCLOCK_ENABLE, R.string.overclock_enable,
|
||||
R.string.overclock_enable_description));
|
||||
sl.add(new PercentSliderSetting(FloatSetting.MAIN_OVERCLOCK, R.string.overclock_title,
|
||||
R.string.overclock_title_description, 400, "%"));
|
||||
}
|
||||
|
||||
private void addGcPadSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
LegacySetting gcPadSetting;
|
||||
LegacyIntSetting gcPadSetting;
|
||||
if (mGameID.equals(""))
|
||||
{
|
||||
gcPadSetting = new LegacySetting(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
SettingsFile.KEY_GCPAD_TYPE + i);
|
||||
gcPadSetting = new LegacyIntSetting(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
SettingsFile.KEY_GCPAD_TYPE + i, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
gcPadSetting = new LegacySetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_GCPAD_G_TYPE + i);
|
||||
gcPadSetting = new LegacyIntSetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_GCPAD_G_TYPE + i, 0);
|
||||
}
|
||||
// TODO: This controller_0 + i business is quite the hack. It should work, but only if the definitions are kept together and in order.
|
||||
sl.add(new SingleChoiceSetting(gcPadSetting, R.string.controller_0 + i, 0,
|
||||
R.array.gcpadTypeEntries, R.array.gcpadTypeValues, 0, MenuTag.getGCPadMenuTag(i)));
|
||||
R.array.gcpadTypeEntries, R.array.gcpadTypeValues, MenuTag.getGCPadMenuTag(i)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -416,20 +421,20 @@ public final class SettingsFragmentPresenter
|
|||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
LegacySetting wiimoteSetting;
|
||||
LegacyIntSetting wiimoteSetting;
|
||||
if (mGameID.equals(""))
|
||||
{
|
||||
wiimoteSetting = new LegacySetting(Settings.FILE_WIIMOTE,
|
||||
Settings.SECTION_WIIMOTE + (i + 1), SettingsFile.KEY_WIIMOTE_TYPE);
|
||||
wiimoteSetting = new LegacyIntSetting(Settings.FILE_WIIMOTE,
|
||||
Settings.SECTION_WIIMOTE + (i + 1), SettingsFile.KEY_WIIMOTE_TYPE, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
wiimoteSetting = new LegacySetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIMOTE_G_TYPE + i);
|
||||
wiimoteSetting = new LegacyIntSetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIMOTE_G_TYPE + i, 0);
|
||||
}
|
||||
// TODO: This wiimote_0 + i business is quite the hack. It should work, but only if the definitions are kept together and in order.
|
||||
sl.add(new SingleChoiceSetting(wiimoteSetting, R.string.wiimote_4 + i, 0,
|
||||
R.array.wiimoteTypeEntries, R.array.wiimoteTypeValues, 0,
|
||||
R.array.wiimoteTypeEntries, R.array.wiimoteTypeValues,
|
||||
MenuTag.getWiimoteMenuTag(i + 4)));
|
||||
}
|
||||
}
|
||||
|
@ -437,18 +442,18 @@ public final class SettingsFragmentPresenter
|
|||
private void addGraphicsSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new HeaderSetting(R.string.graphics_general, 0));
|
||||
sl.add(new StringSingleChoiceSetting(Setting.MAIN_GFX_BACKEND, R.string.video_backend, 0,
|
||||
R.array.videoBackendEntries, R.array.videoBackendValues, "OGL"));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_SHOW_FPS, R.string.show_fps,
|
||||
R.string.show_fps_description, false));
|
||||
sl.add(new SingleChoiceSettingDynamicDescriptions(Setting.GFX_SHADER_COMPILATION_MODE,
|
||||
sl.add(new StringSingleChoiceSetting(StringSetting.MAIN_GFX_BACKEND, R.string.video_backend, 0,
|
||||
R.array.videoBackendEntries, R.array.videoBackendValues));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_SHOW_FPS, R.string.show_fps,
|
||||
R.string.show_fps_description));
|
||||
sl.add(new SingleChoiceSettingDynamicDescriptions(IntSetting.GFX_SHADER_COMPILATION_MODE,
|
||||
R.string.shader_compilation_mode, 0, R.array.shaderCompilationModeEntries,
|
||||
R.array.shaderCompilationModeValues, R.array.shaderCompilationDescriptionEntries,
|
||||
R.array.shaderCompilationDescriptionValues, 0));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_WAIT_FOR_SHADERS_BEFORE_STARTING,
|
||||
R.string.wait_for_shaders, R.string.wait_for_shaders_description, false));
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_ASPECT_RATIO, R.string.aspect_ratio, 0,
|
||||
R.array.aspectRatioEntries, R.array.aspectRatioValues, 0));
|
||||
R.array.shaderCompilationDescriptionValues));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_WAIT_FOR_SHADERS_BEFORE_STARTING,
|
||||
R.string.wait_for_shaders, R.string.wait_for_shaders_description));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_ASPECT_RATIO, R.string.aspect_ratio, 0,
|
||||
R.array.aspectRatioEntries, R.array.aspectRatioValues));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.graphics_enhancements_and_hacks, 0));
|
||||
sl.add(new SubmenuSetting(R.string.enhancements_submenu, MenuTag.ENHANCEMENTS));
|
||||
|
@ -457,44 +462,43 @@ public final class SettingsFragmentPresenter
|
|||
|
||||
private void addEnhanceSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_EFB_SCALE, R.string.internal_resolution,
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_EFB_SCALE, R.string.internal_resolution,
|
||||
R.string.internal_resolution_description, R.array.internalResolutionEntries,
|
||||
R.array.internalResolutionValues, 1));
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_MSAA, R.string.FSAA, R.string.FSAA_description,
|
||||
R.array.FSAAEntries, R.array.FSAAValues, 1));
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_ENHANCE_MAX_ANISOTROPY,
|
||||
R.array.internalResolutionValues));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_MSAA, R.string.FSAA, R.string.FSAA_description,
|
||||
R.array.FSAAEntries, R.array.FSAAValues));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_ENHANCE_MAX_ANISOTROPY,
|
||||
R.string.anisotropic_filtering, R.string.anisotropic_filtering_description,
|
||||
R.array.anisotropicFilteringEntries, R.array.anisotropicFilteringValues, 0));
|
||||
R.array.anisotropicFilteringEntries, R.array.anisotropicFilteringValues));
|
||||
|
||||
int stereoModeValue = Setting.GFX_STEREO_MODE.getInt(mSettings, 0);
|
||||
int stereoModeValue = IntSetting.GFX_STEREO_MODE.getInt(mSettings);
|
||||
final int anaglyphMode = 3;
|
||||
String subDir = stereoModeValue == anaglyphMode ? "Anaglyph" : null;
|
||||
String[] shaderListEntries = getShaderList(subDir);
|
||||
String[] shaderListValues = new String[shaderListEntries.length];
|
||||
System.arraycopy(shaderListEntries, 0, shaderListValues, 0, shaderListEntries.length);
|
||||
shaderListValues[0] = "";
|
||||
sl.add(new StringSingleChoiceSetting(Setting.GFX_ENHANCE_POST_SHADER,
|
||||
R.string.post_processing_shader, 0, shaderListEntries, shaderListValues, ""));
|
||||
sl.add(new StringSingleChoiceSetting(StringSetting.GFX_ENHANCE_POST_SHADER,
|
||||
R.string.post_processing_shader, 0, shaderListEntries, shaderListValues));
|
||||
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_COPY_EFB_SCALED, R.string.scaled_efb_copy,
|
||||
R.string.scaled_efb_copy_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENABLE_PIXEL_LIGHTING, R.string.per_pixel_lighting,
|
||||
R.string.per_pixel_lighting_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENHANCE_FORCE_FILTERING,
|
||||
R.string.force_texture_filtering, R.string.force_texture_filtering_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENHANCE_FORCE_TRUE_COLOR, R.string.force_24bit_color,
|
||||
R.string.force_24bit_color_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_DISABLE_FOG, R.string.disable_fog,
|
||||
R.string.disable_fog_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENHANCE_DISABLE_COPY_FILTER,
|
||||
R.string.disable_copy_filter, R.string.disable_copy_filter_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION,
|
||||
R.string.arbitrary_mipmap_detection, R.string.arbitrary_mipmap_detection_description,
|
||||
true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_WIDESCREEN_HACK, R.string.wide_screen_hack,
|
||||
R.string.wide_screen_hack_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_BACKEND_MULTITHREADING, R.string.backend_multithreading,
|
||||
R.string.backend_multithreading_description, false));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_COPY_EFB_SCALED, R.string.scaled_efb_copy,
|
||||
R.string.scaled_efb_copy_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENABLE_PIXEL_LIGHTING,
|
||||
R.string.per_pixel_lighting, R.string.per_pixel_lighting_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENHANCE_FORCE_FILTERING,
|
||||
R.string.force_texture_filtering, R.string.force_texture_filtering_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENHANCE_FORCE_TRUE_COLOR,
|
||||
R.string.force_24bit_color, R.string.force_24bit_color_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_DISABLE_FOG, R.string.disable_fog,
|
||||
R.string.disable_fog_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENHANCE_DISABLE_COPY_FILTER,
|
||||
R.string.disable_copy_filter, R.string.disable_copy_filter_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION,
|
||||
R.string.arbitrary_mipmap_detection, R.string.arbitrary_mipmap_detection_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_WIDESCREEN_HACK, R.string.wide_screen_hack,
|
||||
R.string.wide_screen_hack_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_BACKEND_MULTITHREADING,
|
||||
R.string.backend_multithreading, R.string.backend_multithreading_description));
|
||||
|
||||
/*
|
||||
Check if we support stereo
|
||||
|
@ -554,41 +558,41 @@ public final class SettingsFragmentPresenter
|
|||
private void addHackSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new HeaderSetting(R.string.embedded_frame_buffer, 0));
|
||||
sl.add(new InvertedCheckBoxSetting(Setting.GFX_HACK_EFB_ACCESS_ENABLE, R.string.skip_efb_access,
|
||||
R.string.skip_efb_access_description, false));
|
||||
sl.add(new InvertedCheckBoxSetting(Setting.GFX_HACK_EFB_EMULATE_FORMAT_CHANGES,
|
||||
R.string.ignore_format_changes, R.string.ignore_format_changes_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_SKIP_EFB_COPY_TO_RAM, R.string.efb_copy_method,
|
||||
R.string.efb_copy_method_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_DEFER_EFB_COPIES, R.string.defer_efb_copies,
|
||||
R.string.defer_efb_copies_description, true));
|
||||
sl.add(new InvertedCheckBoxSetting(BooleanSetting.GFX_HACK_EFB_ACCESS_ENABLE,
|
||||
R.string.skip_efb_access, R.string.skip_efb_access_description));
|
||||
sl.add(new InvertedCheckBoxSetting(BooleanSetting.GFX_HACK_EFB_EMULATE_FORMAT_CHANGES,
|
||||
R.string.ignore_format_changes, R.string.ignore_format_changes_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_SKIP_EFB_COPY_TO_RAM,
|
||||
R.string.efb_copy_method, R.string.efb_copy_method_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_DEFER_EFB_COPIES, R.string.defer_efb_copies,
|
||||
R.string.defer_efb_copies_description));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.texture_cache, 0));
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES,
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES,
|
||||
R.string.texture_cache_accuracy, R.string.texture_cache_accuracy_description,
|
||||
R.array.textureCacheAccuracyEntries, R.array.textureCacheAccuracyValues, 128));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_ENABLE_GPU_TEXTURE_DECODING,
|
||||
R.string.gpu_texture_decoding, R.string.gpu_texture_decoding_description, false));
|
||||
R.array.textureCacheAccuracyEntries, R.array.textureCacheAccuracyValues));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_ENABLE_GPU_TEXTURE_DECODING,
|
||||
R.string.gpu_texture_decoding, R.string.gpu_texture_decoding_description));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.external_frame_buffer, 0));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_SKIP_XFB_COPY_TO_RAM, R.string.xfb_copy_method,
|
||||
R.string.xfb_copy_method_description, true));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_IMMEDIATE_XFB, R.string.immediate_xfb,
|
||||
R.string.immediate_xfb_description, false));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_HACK_SKIP_DUPLICATE_XFBS, R.string.skip_duplicate_xfbs,
|
||||
R.string.skip_duplicate_xfbs_description, true));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_SKIP_XFB_COPY_TO_RAM,
|
||||
R.string.xfb_copy_method, R.string.xfb_copy_method_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_IMMEDIATE_XFB, R.string.immediate_xfb,
|
||||
R.string.immediate_xfb_description));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_HACK_SKIP_DUPLICATE_XFBS,
|
||||
R.string.skip_duplicate_xfbs, R.string.skip_duplicate_xfbs_description));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.other, 0));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_FAST_DEPTH_CALC, R.string.fast_depth_calculation,
|
||||
R.string.fast_depth_calculation_description, true));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_FAST_DEPTH_CALC, R.string.fast_depth_calculation,
|
||||
R.string.fast_depth_calculation_description));
|
||||
}
|
||||
|
||||
private void addLogConfigurationSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new CheckBoxSetting(Setting.LOGGER_WRITE_TO_FILE, R.string.enable_logging,
|
||||
R.string.enable_logging_description, false));
|
||||
sl.add(new SingleChoiceSetting(Setting.LOGGER_VERBOSITY, R.string.log_verbosity, 0,
|
||||
getLogVerbosityEntries(), getLogVerbosityValues(), 1));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.LOGGER_WRITE_TO_FILE, R.string.enable_logging,
|
||||
R.string.enable_logging_description));
|
||||
sl.add(new SingleChoiceSetting(IntSetting.LOGGER_VERBOSITY, R.string.log_verbosity, 0,
|
||||
getLogVerbosityEntries(), getLogVerbosityValues()));
|
||||
sl.add(new ConfirmRunnable(R.string.log_enable_all, 0, R.string.log_enable_all_confirmation, 0,
|
||||
() -> mView.getAdapter().setAllLogTypes(true)));
|
||||
sl.add(new ConfirmRunnable(R.string.log_disable_all, 0, R.string.log_disable_all_confirmation,
|
||||
|
@ -598,7 +602,7 @@ public final class SettingsFragmentPresenter
|
|||
for (Map.Entry<String, String> entry : LOG_TYPE_NAMES.entrySet())
|
||||
{
|
||||
// TitleID is handled by special case in CheckBoxSettingViewHolder.
|
||||
sl.add(new LogCheckBoxSetting(entry.getKey(), 0, 0, false));
|
||||
sl.add(new LogCheckBoxSetting(entry.getKey(), 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -607,36 +611,36 @@ public final class SettingsFragmentPresenter
|
|||
sl.add(new HeaderSetting(R.string.debug_warning, 0));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.debug_jit_header, 0));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_OFF, R.string.debug_jitoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_LOAD_STORE_OFF, R.string.debug_jitloadstoreoff, 0,
|
||||
false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_LOAD_STORE_FLOATING_OFF,
|
||||
R.string.debug_jitloadstorefloatingoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_LOAD_STORE_PAIRED_OFF,
|
||||
R.string.debug_jitloadstorepairedoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_FLOATING_POINT_OFF,
|
||||
R.string.debug_jitfloatingpointoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_INTEGER_OFF, R.string.debug_jitintegeroff, 0,
|
||||
false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_PAIRED_OFF, R.string.debug_jitpairedoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_SYSTEM_REGISTERS_OFF,
|
||||
R.string.debug_jitsystemregistersoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_BRANCH_OFF, R.string.debug_jitbranchoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(Setting.MAIN_JIT_REGISTER_CACHE_OFF,
|
||||
R.string.debug_jitregistercacheoff, 0, false));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_OFF, R.string.debug_jitoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_LOAD_STORE_OFF,
|
||||
R.string.debug_jitloadstoreoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_LOAD_STORE_FLOATING_OFF,
|
||||
R.string.debug_jitloadstorefloatingoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_LOAD_STORE_PAIRED_OFF,
|
||||
R.string.debug_jitloadstorepairedoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_FLOATING_POINT_OFF,
|
||||
R.string.debug_jitfloatingpointoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_INTEGER_OFF, R.string.debug_jitintegeroff,
|
||||
0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_PAIRED_OFF, R.string.debug_jitpairedoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_SYSTEM_REGISTERS_OFF,
|
||||
R.string.debug_jitsystemregistersoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_BRANCH_OFF, R.string.debug_jitbranchoff, 0));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.MAIN_JIT_REGISTER_CACHE_OFF,
|
||||
R.string.debug_jitregistercacheoff, 0));
|
||||
}
|
||||
|
||||
private void addStereoSettings(ArrayList<SettingsItem> sl)
|
||||
{
|
||||
sl.add(new SingleChoiceSetting(Setting.GFX_STEREO_MODE, R.string.stereoscopy_mode, 0,
|
||||
R.array.stereoscopyEntries, R.array.stereoscopyValues, 0));
|
||||
sl.add(new IntSliderSetting(Setting.GFX_STEREO_DEPTH, R.string.stereoscopy_depth,
|
||||
R.string.stereoscopy_depth_description, 100, "%", 20));
|
||||
sl.add(new IntSliderSetting(Setting.GFX_STEREO_CONVERGENCE_PERCENTAGE,
|
||||
sl.add(new SingleChoiceSetting(IntSetting.GFX_STEREO_MODE, R.string.stereoscopy_mode, 0,
|
||||
R.array.stereoscopyEntries, R.array.stereoscopyValues));
|
||||
sl.add(new IntSliderSetting(IntSetting.GFX_STEREO_DEPTH, R.string.stereoscopy_depth,
|
||||
R.string.stereoscopy_depth_description, 100, "%"));
|
||||
sl.add(new IntSliderSetting(IntSetting.GFX_STEREO_CONVERGENCE_PERCENTAGE,
|
||||
R.string.stereoscopy_convergence, R.string.stereoscopy_convergence_description, 200,
|
||||
"%", 0));
|
||||
sl.add(new CheckBoxSetting(Setting.GFX_STEREO_SWAP_EYES, R.string.stereoscopy_swap_eyes,
|
||||
R.string.stereoscopy_swap_eyes_description, false));
|
||||
"%"));
|
||||
sl.add(new CheckBoxSetting(BooleanSetting.GFX_STEREO_SWAP_EYES, R.string.stereoscopy_swap_eyes,
|
||||
R.string.stereoscopy_swap_eyes_description));
|
||||
}
|
||||
|
||||
private void addGcPadSubSettings(ArrayList<SettingsItem> sl, int gcPadNumber, int gcPadType)
|
||||
|
@ -702,15 +706,15 @@ public final class SettingsFragmentPresenter
|
|||
}
|
||||
else // Adapter
|
||||
{
|
||||
LegacySetting rumble = new LegacySetting(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber);
|
||||
LegacySetting bongo = new LegacySetting(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE,
|
||||
SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber);
|
||||
LegacyBooleanSetting rumble = new LegacyBooleanSetting(Settings.FILE_DOLPHIN,
|
||||
Settings.SECTION_INI_CORE, SettingsFile.KEY_GCADAPTER_RUMBLE + gcPadNumber, false);
|
||||
LegacyBooleanSetting bongo = new LegacyBooleanSetting(Settings.FILE_DOLPHIN,
|
||||
Settings.SECTION_INI_CORE, SettingsFile.KEY_GCADAPTER_BONGOS + gcPadNumber, false);
|
||||
|
||||
sl.add(new CheckBoxSetting(rumble, R.string.gc_adapter_rumble,
|
||||
R.string.gc_adapter_rumble_description, false));
|
||||
R.string.gc_adapter_rumble_description));
|
||||
sl.add(new CheckBoxSetting(bongo, R.string.gc_adapter_bongos,
|
||||
R.string.gc_adapter_bongos_description, false));
|
||||
R.string.gc_adapter_bongos_description));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -720,22 +724,23 @@ public final class SettingsFragmentPresenter
|
|||
// But game game specific extension settings are saved in their own profile. These profiles
|
||||
// do not have any way to specify the controller that is loaded outside of knowing the filename
|
||||
// of the profile that was loaded.
|
||||
LegacySetting extension;
|
||||
LegacyStringSetting extension;
|
||||
if (mGameID.isEmpty())
|
||||
{
|
||||
extension = new LegacySetting(Settings.FILE_WIIMOTE,
|
||||
Settings.SECTION_WIIMOTE + (wiimoteNumber - 3), SettingsFile.KEY_WIIMOTE_EXTENSION);
|
||||
extension = new LegacyStringSetting(Settings.FILE_WIIMOTE,
|
||||
Settings.SECTION_WIIMOTE + (wiimoteNumber - 3), SettingsFile.KEY_WIIMOTE_EXTENSION,
|
||||
getExtensionValue(wiimoteNumber - 3));
|
||||
}
|
||||
else
|
||||
{
|
||||
mSettings.loadWiimoteProfile(mGameID, wiimoteNumber - 4);
|
||||
extension = new LegacySetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIMOTE_EXTENSION + (wiimoteNumber - 4));
|
||||
extension = new LegacyStringSetting(Settings.GAME_SETTINGS_PLACEHOLDER_FILE_NAME,
|
||||
Settings.SECTION_CONTROLS, SettingsFile.KEY_WIIMOTE_EXTENSION + (wiimoteNumber - 4),
|
||||
getExtensionValue(wiimoteNumber - 4));
|
||||
}
|
||||
|
||||
sl.add(new StringSingleChoiceSetting(extension, R.string.wiimote_extensions, 0,
|
||||
R.array.wiimoteExtensionsEntries, R.array.wiimoteExtensionsValues,
|
||||
getExtensionValue(wiimoteNumber - 3),
|
||||
MenuTag.getWiimoteExtensionMenuTag(wiimoteNumber)));
|
||||
|
||||
sl.add(new HeaderSetting(R.string.generic_buttons, 0));
|
||||
|
@ -1166,31 +1171,6 @@ public final class SettingsFragmentPresenter
|
|||
return section.getString(SettingsFile.KEY_WIIMOTE_EXTENSION, "None");
|
||||
}
|
||||
|
||||
public static String getDefaultNANDRootPath()
|
||||
{
|
||||
return DirectoryInitialization.getUserDirectory() + "/Wii";
|
||||
}
|
||||
|
||||
public static String getDefaultDumpPath()
|
||||
{
|
||||
return DirectoryInitialization.getUserDirectory() + "/Dump";
|
||||
}
|
||||
|
||||
public static String getDefaultLoadPath()
|
||||
{
|
||||
return DirectoryInitialization.getUserDirectory() + "/Load";
|
||||
}
|
||||
|
||||
public static String getDefaultResourcePackPath()
|
||||
{
|
||||
return DirectoryInitialization.getUserDirectory() + "/ResourcePacks";
|
||||
}
|
||||
|
||||
public static String getDefaultSDPath()
|
||||
{
|
||||
return DirectoryInitialization.getUserDirectory() + "/Wii/sd.raw";
|
||||
}
|
||||
|
||||
private static int getLogVerbosityEntries()
|
||||
{
|
||||
// Value obtained from LOG_LEVELS in Common/Logging/Log.h
|
||||
|
|
|
@ -16,7 +16,7 @@ import androidx.fragment.app.Fragment;
|
|||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public final class MenuFragment extends Fragment implements View.OnClickListener
|
||||
|
@ -84,7 +84,7 @@ public final class MenuFragment extends Fragment implements View.OnClickListener
|
|||
updatePauseUnpauseVisibility();
|
||||
|
||||
Settings settings = ((EmulationActivity) getActivity()).getSettings();
|
||||
if (Setting.MAIN_ENABLE_SAVESTATES.getBoolean(settings, false))
|
||||
if (BooleanSetting.MAIN_ENABLE_SAVESTATES.getBoolean(settings))
|
||||
{
|
||||
options.findViewById(R.id.menu_quicksave).setVisibility(View.VISIBLE);
|
||||
options.findViewById(R.id.menu_quickload).setVisibility(View.VISIBLE);
|
||||
|
|
|
@ -4,7 +4,7 @@ import android.content.Context;
|
|||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -83,7 +83,7 @@ public class GameFileCache
|
|||
{
|
||||
Settings settings = new Settings();
|
||||
settings.loadSettings(null);
|
||||
boolean recursiveScan = Setting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(settings, false);
|
||||
boolean recursiveScan = BooleanSetting.MAIN_RECURSIVE_ISO_PATHS.getBoolean(settings);
|
||||
|
||||
removeNonExistentGameFolders(context);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import com.google.android.material.tabs.TabLayout;
|
|||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
|
||||
import org.dolphinemu.dolphinemu.adapters.PlatformPagerAdapter;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.IntSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
|
||||
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsActivity;
|
||||
|
@ -273,7 +273,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
|||
Settings settings = new Settings();
|
||||
settings.loadSettings(null);
|
||||
|
||||
Setting.MAIN_LAST_PLATFORM_TAB.setInt(settings, tab.getPosition());
|
||||
IntSetting.MAIN_LAST_PLATFORM_TAB.setInt(settings, tab.getPosition());
|
||||
|
||||
// Context is set to null to avoid toasts
|
||||
settings.saveSettings(null, null);
|
||||
|
@ -282,7 +282,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
|||
|
||||
Settings settings = new Settings();
|
||||
settings.loadSettings(null);
|
||||
mViewPager.setCurrentItem(Setting.MAIN_LAST_PLATFORM_TAB.getInt(settings, 0));
|
||||
mViewPager.setCurrentItem(IntSetting.MAIN_LAST_PLATFORM_TAB.getInt(settings));
|
||||
|
||||
showGames();
|
||||
GameFileCacheService.startLoad(this);
|
||||
|
|
|
@ -10,7 +10,7 @@ import com.android.volley.toolbox.StringRequest;
|
|||
|
||||
import org.dolphinemu.dolphinemu.DolphinApplication;
|
||||
import org.dolphinemu.dolphinemu.R;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Setting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
|
||||
import org.dolphinemu.dolphinemu.features.settings.model.Settings;
|
||||
|
||||
public class Analytics
|
||||
|
@ -26,7 +26,7 @@ public class Analytics
|
|||
{
|
||||
Settings settings = new Settings();
|
||||
settings.loadSettings(null);
|
||||
if (!Setting.MAIN_ANALYTICS_PERMISSION_ASKED.getBoolean(settings, false))
|
||||
if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.getBoolean(settings))
|
||||
{
|
||||
showMessage(context, settings);
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ public class Analytics
|
|||
|
||||
private static void firstAnalyticsAdd(Settings settings, boolean enabled)
|
||||
{
|
||||
Setting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled);
|
||||
Setting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true);
|
||||
BooleanSetting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled);
|
||||
BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true);
|
||||
|
||||
// Context is set to null to avoid toasts
|
||||
settings.saveSettings(null, null);
|
||||
|
|
|
@ -241,6 +241,9 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetCacheDire
|
|||
JNIEnv* env, jobject obj, jstring jDirectory);
|
||||
JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
|
||||
jobject obj);
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDefaultGraphicsBackendName(JNIEnv* env,
|
||||
jobject obj);
|
||||
JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLevel(JNIEnv* env,
|
||||
jobject obj);
|
||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetProfiling(JNIEnv* env,
|
||||
|
@ -425,6 +428,12 @@ JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_DefaultCPUCo
|
|||
return static_cast<jint>(PowerPC::DefaultCPUCore());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_org_dolphinemu_dolphinemu_NativeLibrary_GetDefaultGraphicsBackendName(JNIEnv* env, jobject obj)
|
||||
{
|
||||
return ToJString(env, VideoBackendBase::GetDefaultBackendName());
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetMaxLogLevel(JNIEnv* env,
|
||||
jobject obj)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue