summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Charles Lombardo2023-08-25 21:58:52 -0400
committerGravatar Charles Lombardo2023-08-29 19:42:42 -0400
commit21ad5f5cc515efd80223b548218588b78ae91a53 (patch)
tree32a8a6b13cb4db9b842e16199cda118bf34cf657 /src
parentandroid: Proper state restoration on settings dialogs (diff)
downloadyuzu-21ad5f5cc515efd80223b548218588b78ae91a53.tar.gz
yuzu-21ad5f5cc515efd80223b548218588b78ae91a53.tar.xz
yuzu-21ad5f5cc515efd80223b548218588b78ae91a53.zip
android: Add optional androidDefault property to settings
Certain settings have specific defaults for Android only. This lets us reflect them in the Kotlin side with very little code.
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt11
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt9
3 files changed, 15 insertions, 7 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
index 73215c247..8b6d29fe5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt
@@ -9,6 +9,8 @@ interface AbstractSetting {
9 val key: String 9 val key: String
10 val category: Settings.Category 10 val category: Settings.Category
11 val defaultValue: Any 11 val defaultValue: Any
12 val androidDefault: Any?
13 get() = null
12 val valueAsString: String 14 val valueAsString: String
13 get() = "" 15 get() = ""
14 16
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
index f7528642e..e0c0538c7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
@@ -7,17 +7,18 @@ import org.yuzu.yuzu_emu.utils.NativeConfig
7 7
8enum class BooleanSetting( 8enum class BooleanSetting(
9 override val key: String, 9 override val key: String,
10 override val category: Settings.Category 10 override val category: Settings.Category,
11 override val androidDefault: Boolean? = null
11) : AbstractBooleanSetting { 12) : AbstractBooleanSetting {
12 CPU_DEBUG_MODE("cpu_debug_mode", Settings.Category.Cpu), 13 CPU_DEBUG_MODE("cpu_debug_mode", Settings.Category.Cpu),
13 FASTMEM("cpuopt_fastmem", Settings.Category.Cpu), 14 FASTMEM("cpuopt_fastmem", Settings.Category.Cpu),
14 FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives", Settings.Category.Cpu), 15 FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives", Settings.Category.Cpu),
15 RENDERER_USE_SPEED_LIMIT("use_speed_limit", Settings.Category.Core), 16 RENDERER_USE_SPEED_LIMIT("use_speed_limit", Settings.Category.Core),
16 USE_DOCKED_MODE("use_docked_mode", Settings.Category.System), 17 USE_DOCKED_MODE("use_docked_mode", Settings.Category.System, false),
17 RENDERER_USE_DISK_SHADER_CACHE("use_disk_shader_cache", Settings.Category.Renderer), 18 RENDERER_USE_DISK_SHADER_CACHE("use_disk_shader_cache", Settings.Category.Renderer),
18 RENDERER_FORCE_MAX_CLOCK("force_max_clock", Settings.Category.Renderer), 19 RENDERER_FORCE_MAX_CLOCK("force_max_clock", Settings.Category.Renderer),
19 RENDERER_ASYNCHRONOUS_SHADERS("use_asynchronous_shaders", Settings.Category.Renderer), 20 RENDERER_ASYNCHRONOUS_SHADERS("use_asynchronous_shaders", Settings.Category.Renderer),
20 RENDERER_REACTIVE_FLUSHING("use_reactive_flushing", Settings.Category.Renderer), 21 RENDERER_REACTIVE_FLUSHING("use_reactive_flushing", Settings.Category.Renderer, false),
21 RENDERER_DEBUG("debug", Settings.Category.Renderer), 22 RENDERER_DEBUG("debug", Settings.Category.Renderer),
22 PICTURE_IN_PICTURE("picture_in_picture", Settings.Category.Android), 23 PICTURE_IN_PICTURE("picture_in_picture", Settings.Category.Android),
23 USE_CUSTOM_RTC("custom_rtc_enabled", Settings.Category.System); 24 USE_CUSTOM_RTC("custom_rtc_enabled", Settings.Category.System);
@@ -27,7 +28,9 @@ enum class BooleanSetting(
27 28
28 override fun setBoolean(value: Boolean) = NativeConfig.setBoolean(key, value) 29 override fun setBoolean(value: Boolean) = NativeConfig.setBoolean(key, value)
29 30
30 override val defaultValue: Boolean by lazy { NativeConfig.getBoolean(key, true) } 31 override val defaultValue: Boolean by lazy {
32 androidDefault ?: NativeConfig.getBoolean(key, true)
33 }
31 34
32 override val valueAsString: String 35 override val valueAsString: String
33 get() = if (boolean) "1" else "0" 36 get() = if (boolean) "1" else "0"
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 a64757207..151362124 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
@@ -7,13 +7,14 @@ import org.yuzu.yuzu_emu.utils.NativeConfig
7 7
8enum class IntSetting( 8enum class IntSetting(
9 override val key: String, 9 override val key: String,
10 override val category: Settings.Category 10 override val category: Settings.Category,
11 override val androidDefault: Int? = null
11) : AbstractIntSetting { 12) : AbstractIntSetting {
12 CPU_ACCURACY("cpu_accuracy", Settings.Category.Cpu), 13 CPU_ACCURACY("cpu_accuracy", Settings.Category.Cpu),
13 REGION_INDEX("region_index", Settings.Category.System), 14 REGION_INDEX("region_index", Settings.Category.System),
14 LANGUAGE_INDEX("language_index", Settings.Category.System), 15 LANGUAGE_INDEX("language_index", Settings.Category.System),
15 RENDERER_BACKEND("backend", Settings.Category.Renderer), 16 RENDERER_BACKEND("backend", Settings.Category.Renderer),
16 RENDERER_ACCURACY("gpu_accuracy", Settings.Category.Renderer), 17 RENDERER_ACCURACY("gpu_accuracy", Settings.Category.Renderer, 0),
17 RENDERER_RESOLUTION("resolution_setup", Settings.Category.Renderer), 18 RENDERER_RESOLUTION("resolution_setup", Settings.Category.Renderer),
18 RENDERER_VSYNC("use_vsync", Settings.Category.Renderer), 19 RENDERER_VSYNC("use_vsync", Settings.Category.Renderer),
19 RENDERER_SCALING_FILTER("scaling_filter", Settings.Category.Renderer), 20 RENDERER_SCALING_FILTER("scaling_filter", Settings.Category.Renderer),
@@ -27,7 +28,9 @@ enum class IntSetting(
27 28
28 override fun setInt(value: Int) = NativeConfig.setInt(key, value) 29 override fun setInt(value: Int) = NativeConfig.setInt(key, value)
29 30
30 override val defaultValue: Int by lazy { NativeConfig.getInt(key, true) } 31 override val defaultValue: Int by lazy {
32 androidDefault ?: NativeConfig.getInt(key, true)
33 }
31 34
32 override val valueAsString: String 35 override val valueAsString: String
33 get() = int.toString() 36 get() = int.toString()