summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt123
1 files changed, 117 insertions, 6 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
index 32d9b8b85..164888016 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
@@ -3,10 +3,121 @@
package org.yuzu.yuzu_emu.features.settings.model
-class IntSetting(
- key: String,
- section: String,
- var value: Int
-) : Setting(key, section) {
- override val valueAsString get() = value.toString()
+enum class IntSetting(
+ override val key: String,
+ override val section: String,
+ val defaultValue: Int
+) : AbstractIntSetting {
+ RENDERER_USE_SPEED_LIMIT(
+ "use_speed_limit",
+ Settings.SECTION_RENDERER,
+ 1
+ ),
+ USE_DOCKED_MODE(
+ "use_docked_mode",
+ Settings.SECTION_SYSTEM,
+ 0
+ ),
+ RENDERER_USE_DISK_SHADER_CACHE(
+ "use_disk_shader_cache",
+ Settings.SECTION_RENDERER,
+ 1
+ ),
+ RENDERER_FORCE_MAX_CLOCK(
+ "force_max_clock",
+ Settings.SECTION_RENDERER,
+ 1
+ ),
+ RENDERER_ASYNCHRONOUS_SHADERS(
+ "use_asynchronous_shaders",
+ Settings.SECTION_RENDERER,
+ 0
+ ),
+ RENDERER_DEBUG(
+ "debug",
+ Settings.SECTION_RENDERER,
+ 0
+ ),
+ RENDERER_SPEED_LIMIT(
+ "speed_limit",
+ Settings.SECTION_RENDERER,
+ 100
+ ),
+ CPU_ACCURACY(
+ "cpu_accuracy",
+ Settings.SECTION_CPU,
+ 0
+ ),
+ REGION_INDEX(
+ "region_index",
+ Settings.SECTION_SYSTEM,
+ -1
+ ),
+ LANGUAGE_INDEX(
+ "language_index",
+ Settings.SECTION_SYSTEM,
+ 1
+ ),
+ RENDERER_BACKEND(
+ "backend",
+ Settings.SECTION_RENDERER,
+ 1
+ ),
+ RENDERER_ACCURACY(
+ "gpu_accuracy",
+ Settings.SECTION_RENDERER,
+ 0
+ ),
+ RENDERER_RESOLUTION(
+ "resolution_setup",
+ Settings.SECTION_RENDERER,
+ 2
+ ),
+ RENDERER_SCALING_FILTER(
+ "scaling_filter",
+ Settings.SECTION_RENDERER,
+ 1
+ ),
+ RENDERER_ANTI_ALIASING(
+ "anti_aliasing",
+ Settings.SECTION_RENDERER,
+ 0
+ ),
+ RENDERER_ASPECT_RATIO(
+ "aspect_ratio",
+ Settings.SECTION_RENDERER,
+ 0
+ ),
+ AUDIO_VOLUME(
+ "volume",
+ Settings.SECTION_AUDIO,
+ 100
+ );
+
+ override var int: Int = defaultValue
+
+ override val valueAsString: String
+ get() = int.toString()
+
+ override val isRuntimeEditable: Boolean
+ get() {
+ for (setting in NOT_RUNTIME_EDITABLE) {
+ if (setting == this) {
+ return false
+ }
+ }
+ return true
+ }
+
+ companion object {
+ private val NOT_RUNTIME_EDITABLE = listOf(
+ RENDERER_USE_DISK_SHADER_CACHE,
+ RENDERER_ASYNCHRONOUS_SHADERS,
+ RENDERER_DEBUG,
+ RENDERER_BACKEND,
+ RENDERER_RESOLUTION
+ )
+
+ fun from(key: String): IntSetting? = IntSetting.values().firstOrNull { it.key == key }
+ }
}