summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-08-30 10:07:07 -0400
committerGitHub <noreply@github.com>2023-08-30 10:07:07 -0400
commit5e5887a378db28324a8fc8825f21539525412e12 (patch)
tree9a032dccfcef8cd21e2405a65fba89e1171295a9 /Source/Android/app/src/main/java
parentefa820763a4e3ae55d1b6d253b9b71b09c9595b9 (diff)
parent53fc3446d5bbfe2b30b344e25316ffc2bcb3453b (diff)
Merge pull request #12095 from t895/color-space-settings
Android: Expose color space settings
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt12
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt6
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt1
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt30
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt32
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt28
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt1
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt48
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt1
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt94
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt27
13 files changed, 214 insertions, 71 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt
index e32bd1f465..298f2ebe24 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt
@@ -763,6 +763,18 @@ enum class BooleanSetting(
"ArbitraryMipmapDetection",
true
),
+ GFX_CC_CORRECT_COLOR_SPACE(
+ Settings.FILE_GFX,
+ Settings.SECTION_GFX_COLOR_CORRECTION,
+ "CorrectColorSpace",
+ false
+ ),
+ GFX_CC_CORRECT_GAMMA(
+ Settings.FILE_GFX,
+ Settings.SECTION_GFX_COLOR_CORRECTION,
+ "CorrectGamma",
+ false
+ ),
GFX_STEREO_SWAP_EYES(Settings.FILE_GFX, Settings.SECTION_STEREOSCOPY, "StereoSwapEyes", false),
GFX_HACK_EFB_ACCESS_ENABLE(
Settings.FILE_GFX,
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt
index 99b73251e7..ec5bda11cc 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/FloatSetting.kt
@@ -10,7 +10,8 @@ enum class FloatSetting(
) : AbstractFloatSetting {
// These entries have the same names and order as in C++, just for consistency.
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);
+ MAIN_OVERCLOCK(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Overclock", 1.0f),
+ GFX_CC_GAME_GAMMA(Settings.FILE_GFX, Settings.SECTION_GFX_COLOR_CORRECTION, "GameGamma", 2.35f);
override val isOverridden: Boolean
get() = NativeConfig.isOverridden(file, section, key)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt
index 256e68007e..22bb47528b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/IntSetting.kt
@@ -119,6 +119,12 @@ enum class IntSetting(
"MaxAnisotropy",
0
),
+ GFX_CC_GAME_COLOR_SPACE(
+ Settings.FILE_GFX,
+ Settings.SECTION_GFX_COLOR_CORRECTION,
+ "GameColorSpace",
+ 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(
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
index b363104703..27291718dc 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
@@ -135,6 +135,7 @@ class Settings : Closeable {
const val SECTION_LOGGER_OPTIONS = "Options"
const val SECTION_GFX_SETTINGS = "Settings"
const val SECTION_GFX_ENHANCEMENTS = "Enhancements"
+ const val SECTION_GFX_COLOR_CORRECTION = "ColorCorrection"
const val SECTION_GFX_HACKS = "Hacks"
const val SECTION_DEBUG = "Debug"
const val SECTION_EMULATED_USB_DEVICES = "EmulatedUSBDevices"
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt
index 5b2ee40fe7..c226e3e47e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/FloatSliderSetting.kt
@@ -6,7 +6,8 @@ import android.content.Context
import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting
import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting
import org.dolphinemu.dolphinemu.features.settings.model.Settings
-import kotlin.math.roundToInt
+import java.math.BigDecimal
+import java.math.MathContext
open class FloatSliderSetting : SliderSetting {
var floatSetting: AbstractFloatSetting
@@ -19,11 +20,12 @@ open class FloatSliderSetting : SliderSetting {
setting: AbstractFloatSetting,
titleId: Int,
descriptionId: Int,
- min: Int,
- max: Int,
+ min: Float,
+ max: Float,
units: String?,
- stepSize: Int
- ) : super(context, titleId, descriptionId, min, max, units, stepSize) {
+ stepSize: Float,
+ showDecimal: Boolean
+ ) : super(context, titleId, descriptionId, min, max, units, stepSize, showDecimal) {
floatSetting = setting
}
@@ -31,17 +33,21 @@ open class FloatSliderSetting : SliderSetting {
setting: AbstractFloatSetting,
name: CharSequence,
description: CharSequence?,
- min: Int,
- max: Int,
- units: String?
- ) : super(name, description, min, max, units) {
+ min: Float,
+ max: Float,
+ units: String?,
+ showDecimal: Boolean
+ ) : super(name, description, min, max, units, showDecimal) {
floatSetting = setting
}
- override val selectedValue: Int
- get() = floatSetting.float.roundToInt()
+ override val selectedValue: Float
+ get() = floatSetting.float
open fun setSelectedValue(settings: Settings?, selection: Float) {
- floatSetting.setFloat(settings!!, selection)
+ floatSetting.setFloat(
+ settings!!,
+ BigDecimal((selection).toDouble()).round(MathContext(3)).toFloat()
+ )
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt
index 23bcd49317..09a415fc97 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/IntSliderSetting.kt
@@ -16,7 +16,7 @@ class IntSliderSetting(
max: Int,
units: String?,
stepSize: Int
-) : SliderSetting(context, titleId, descriptionId, min, max, units, stepSize) {
+) : SliderSetting(context, titleId, descriptionId, min, max, units, stepSize, false) {
override val setting: AbstractSetting
get() = intSetting
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt
index db6454b0c5..165bdebdc8 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/PercentSliderSetting.kt
@@ -4,24 +4,38 @@ package org.dolphinemu.dolphinemu.features.settings.model.view
import android.content.Context
import org.dolphinemu.dolphinemu.features.settings.model.AbstractFloatSetting
-import org.dolphinemu.dolphinemu.features.settings.model.AbstractSetting
import org.dolphinemu.dolphinemu.features.settings.model.Settings
-import kotlin.math.roundToInt
+import java.math.BigDecimal
+import java.math.MathContext
class PercentSliderSetting(
context: Context,
override val setting: AbstractFloatSetting,
titleId: Int,
descriptionId: Int,
- min: Int,
- max: Int,
+ min: Float,
+ max: Float,
units: String?,
- stepSize: Int
-) : FloatSliderSetting(context, setting, titleId, descriptionId, min, max, units, stepSize) {
- override val selectedValue: Int
- get() = (floatSetting.float * 100).roundToInt()
+ stepSize: Float,
+ showDecimal: Boolean
+) : FloatSliderSetting(
+ context,
+ setting,
+ titleId,
+ descriptionId,
+ min,
+ max,
+ units,
+ stepSize,
+ showDecimal
+) {
+ override val selectedValue: Float
+ get() = (floatSetting.float * 100)
override fun setSelectedValue(settings: Settings?, selection: Float) {
- floatSetting.setFloat(settings!!, selection / 100)
+ floatSetting.setFloat(
+ settings!!,
+ BigDecimal((selection / 100).toDouble()).round(MathContext(3)).toFloat()
+ )
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt
index f595c4cea3..d3edccc025 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SliderSetting.kt
@@ -4,44 +4,50 @@ package org.dolphinemu.dolphinemu.features.settings.model.view
import android.content.Context
-abstract class SliderSetting : SettingsItem {
+sealed class SliderSetting : SettingsItem {
override val type: Int = TYPE_SLIDER
- var min: Int
+ var min: Any
private set
- var max: Int
+ var max: Any
private set
var units: String?
private set
- var stepSize = 0
+ var stepSize: Any = 0
+ private set
+ var showDecimal: Boolean = false
private set
constructor(
context: Context,
nameId: Int,
descriptionId: Int,
- min: Int,
- max: Int,
+ min: Any,
+ max: Any,
units: String?,
- stepSize: Int
+ stepSize: Any,
+ showDecimal: Boolean
) : super(context, nameId, descriptionId) {
this.min = min
this.max = max
this.units = units
this.stepSize = stepSize
+ this.showDecimal = showDecimal
}
constructor(
name: CharSequence,
description: CharSequence?,
- min: Int,
- max: Int,
- units: String?
+ min: Any,
+ max: Any,
+ units: String?,
+ showDecimal: Boolean
) : super(name, description) {
this.min = min
this.max = max
this.units = units
+ this.showDecimal = showDecimal
}
- abstract val selectedValue: Int
+ abstract val selectedValue: Any
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt
index 6b4def552c..0bfcb96d6c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.kt
@@ -19,6 +19,7 @@ enum class MenuTag {
DEBUG("debug"),
GRAPHICS("graphics"),
ENHANCEMENTS("enhancements"),
+ COLOR_CORRECTION("color_correction"),
STEREOSCOPY("stereoscopy"),
HACKS("hacks"),
STATISTICS("statistics"),
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt
index 3623f167bb..eff1b3ba13 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt
@@ -51,7 +51,7 @@ class SettingsAdapter(
private var settingsList: ArrayList<SettingsItem>? = null
private var clickedItem: SettingsItem? = null
private var clickedPosition: Int = -1
- private var seekbarProgress = 0
+ private var seekbarProgress: Float = 0f
private var dialog: AlertDialog? = null
private var textSliderValue: TextView? = null
@@ -229,21 +229,37 @@ class SettingsAdapter(
fun onSliderClick(item: SliderSetting, position: Int) {
clickedItem = item
clickedPosition = position
- seekbarProgress = item.selectedValue
+ seekbarProgress = when (item) {
+ is FloatSliderSetting -> item.selectedValue
+ is IntSliderSetting -> item.selectedValue.toFloat()
+ }
val inflater = LayoutInflater.from(fragmentView.fragmentActivity)
val binding = DialogSliderBinding.inflate(inflater)
textSliderValue = binding.textValue
- textSliderValue!!.text = seekbarProgress.toString()
+ textSliderValue!!.text = if (item.showDecimal) {
+ String.format("%.2f", seekbarProgress)
+ } else {
+ seekbarProgress.toInt().toString()
+ }
binding.textUnits.text = item.units
val slider = binding.slider
- slider.valueFrom = item.min.toFloat()
- slider.valueTo = item.max.toFloat()
- slider.value = seekbarProgress.toFloat()
- slider.stepSize = item.stepSize.toFloat()
+ when (item) {
+ is FloatSliderSetting -> {
+ slider.valueFrom = item.min as Float
+ slider.valueTo = item.max as Float
+ slider.stepSize = item.stepSize as Float
+ }
+ is IntSliderSetting -> {
+ slider.valueFrom = (item.min as Int).toFloat()
+ slider.valueTo = (item.max as Int).toFloat()
+ slider.stepSize = (item.stepSize as Int).toFloat()
+ }
+ }
+ slider.value = seekbarProgress
slider.addOnChangeListener(this)
dialog = MaterialAlertDialogBuilder(fragmentView.fragmentActivity)
@@ -480,8 +496,10 @@ class SettingsAdapter(
}
is IntSliderSetting -> {
val sliderSetting = clickedItem as IntSliderSetting
- if (sliderSetting.selectedValue != seekbarProgress) fragmentView.onSettingChanged()
- sliderSetting.setSelectedValue(settings, seekbarProgress)
+ if (sliderSetting.selectedValue != seekbarProgress.toInt()) {
+ fragmentView.onSettingChanged()
+ }
+ sliderSetting.setSelectedValue(settings, seekbarProgress.toInt())
closeDialog()
}
is FloatSliderSetting -> {
@@ -489,13 +507,13 @@ class SettingsAdapter(
if (sliderSetting.selectedValue != seekbarProgress) fragmentView.onSettingChanged()
- sliderSetting.setSelectedValue(settings, seekbarProgress.toFloat())
+ sliderSetting.setSelectedValue(settings, seekbarProgress)
closeDialog()
}
}
clickedItem = null
- seekbarProgress = -1
+ seekbarProgress = -1f
}
fun closeDialog() {
@@ -510,8 +528,12 @@ class SettingsAdapter(
}
override fun onValueChange(slider: Slider, progress: Float, fromUser: Boolean) {
- seekbarProgress = progress.toInt()
- textSliderValue!!.text = seekbarProgress.toString()
+ seekbarProgress = progress
+ textSliderValue!!.text = if ((clickedItem as SliderSetting).showDecimal) {
+ String.format("%.2f", seekbarProgress)
+ } else {
+ seekbarProgress.toInt().toString()
+ }
}
private fun getValueForSingleChoiceSelection(item: SingleChoiceSetting, which: Int): Int {
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt
index 3b67dbd9e8..8101d9efbf 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragment.kt
@@ -272,6 +272,7 @@ class SettingsFragment : Fragment(), SettingsFragmentView {
titles[MenuTag.DEBUG] = R.string.debug_submenu
titles[MenuTag.GRAPHICS] = R.string.graphics_settings
titles[MenuTag.ENHANCEMENTS] = R.string.enhancements_submenu
+ titles[MenuTag.COLOR_CORRECTION] = R.string.color_correction_submenu
titles[MenuTag.STEREOSCOPY] = R.string.stereoscopy_submenu
titles[MenuTag.HACKS] = R.string.hacks_submenu
titles[MenuTag.STATISTICS] = R.string.statistics_submenu
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
index 0947e4f294..15d678f752 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -34,6 +34,7 @@ import org.dolphinemu.dolphinemu.model.GpuDriverMetadata
import org.dolphinemu.dolphinemu.ui.main.MainPresenter
import org.dolphinemu.dolphinemu.utils.*
import java.util.*
+import kotlin.collections.ArrayList
import kotlin.math.ceil
import kotlin.math.floor
@@ -72,9 +73,8 @@ class SettingsFragmentPresenter(
&& GpuDriverHelper.supportsCustomDriverLoading()
) {
this.gpuDriver =
- GpuDriverHelper.getInstalledDriverMetadata() ?: GpuDriverHelper.getSystemDriverMetadata(
- context.applicationContext
- )
+ GpuDriverHelper.getInstalledDriverMetadata()
+ ?: GpuDriverHelper.getSystemDriverMetadata(context.applicationContext)
}
}
@@ -120,6 +120,7 @@ class SettingsFragmentPresenter(
MenuTag.GCPAD_TYPE -> addGcPadSettings(sl)
MenuTag.WIIMOTE -> addWiimoteSettings(sl)
MenuTag.ENHANCEMENTS -> addEnhanceSettings(sl)
+ MenuTag.COLOR_CORRECTION -> addColorCorrectionSettings(sl)
MenuTag.STEREOSCOPY -> addStereoSettings(sl)
MenuTag.HACKS -> addHackSettings(sl)
MenuTag.STATISTICS -> addStatisticsSettings(sl)
@@ -250,10 +251,11 @@ class SettingsFragmentPresenter(
FloatSetting.MAIN_EMULATION_SPEED,
R.string.speed_limit,
0,
- 0,
- 200,
+ 0f,
+ 200f,
"%",
- 1
+ 1f,
+ false
)
)
sl.add(
@@ -713,12 +715,12 @@ class SettingsFragmentPresenter(
)
)
sl.add(
- SwitchSetting(
- context,
- BooleanSetting.MAIN_WII_WIILINK_ENABLE,
- R.string.wii_enable_wiilink,
- R.string.wii_enable_wiilink_description
- )
+ SwitchSetting(
+ context,
+ BooleanSetting.MAIN_WII_WIILINK_ENABLE,
+ R.string.wii_enable_wiilink,
+ R.string.wii_enable_wiilink_description
+ )
)
sl.add(
SingleChoiceSetting(
@@ -1001,10 +1003,11 @@ class SettingsFragmentPresenter(
FloatSetting.MAIN_OVERCLOCK,
R.string.overclock_title,
R.string.overclock_title_description,
- 0,
- 400,
+ 0f,
+ 400f,
"%",
- 1
+ 1f,
+ false
)
)
@@ -1333,6 +1336,13 @@ class SettingsFragmentPresenter(
R.array.textureFilteringValues
)
)
+ sl.add(
+ SubmenuSetting(
+ context,
+ R.string.color_correction_submenu,
+ MenuTag.COLOR_CORRECTION
+ )
+ )
val stereoModeValue = IntSetting.GFX_STEREO_MODE.int
val anaglyphMode = 3
@@ -1429,6 +1439,53 @@ class SettingsFragmentPresenter(
}
}
+ private fun addColorCorrectionSettings(sl: ArrayList<SettingsItem>) {
+ sl.apply {
+ add(HeaderSetting(context, R.string.color_space, 0))
+ add(
+ SwitchSetting(
+ context,
+ BooleanSetting.GFX_CC_CORRECT_COLOR_SPACE,
+ R.string.correct_color_space,
+ R.string.correct_color_space_description
+ )
+ )
+ add(
+ SingleChoiceSetting(
+ context,
+ IntSetting.GFX_CC_GAME_COLOR_SPACE,
+ R.string.game_color_space,
+ 0,
+ R.array.colorSpaceEntries,
+ R.array.colorSpaceValues
+ )
+ )
+
+ add(HeaderSetting(context, R.string.gamma, 0))
+ add(
+ FloatSliderSetting(
+ context,
+ FloatSetting.GFX_CC_GAME_GAMMA,
+ R.string.game_gamma,
+ R.string.game_gamma_description,
+ 2.2f,
+ 2.8f,
+ "",
+ 0.01f,
+ true
+ )
+ )
+ add(
+ SwitchSetting(
+ context,
+ BooleanSetting.GFX_CC_CORRECT_GAMMA,
+ R.string.correct_sdr_gamma,
+ 0
+ )
+ )
+ }
+ }
+
private fun addHackSettings(sl: ArrayList<SettingsItem>) {
sl.add(HeaderSetting(context, R.string.embedded_frame_buffer, 0))
sl.add(
@@ -2296,9 +2353,10 @@ class SettingsFragmentPresenter(
InputMappingDoubleSetting(setting),
setting.getUiName(),
"",
- ceil(setting.getDoubleMin()).toInt(),
- floor(setting.getDoubleMax()).toInt(),
- setting.getUiSuffix()
+ ceil(setting.getDoubleMin()).toFloat(),
+ floor(setting.getDoubleMax()).toFloat(),
+ setting.getUiSuffix(),
+ false
)
)
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt
index 9009be4e7d..6dde8749c2 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SliderViewHolder.kt
@@ -7,6 +7,7 @@ import android.text.TextUtils
import android.view.View
import org.dolphinemu.dolphinemu.R
import org.dolphinemu.dolphinemu.databinding.ListItemSettingBinding
+import org.dolphinemu.dolphinemu.features.settings.model.view.IntSliderSetting
import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem
import org.dolphinemu.dolphinemu.features.settings.model.view.SliderSetting
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter
@@ -14,7 +15,7 @@ import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter
class SliderViewHolder(
private val binding: ListItemSettingBinding, adapter: SettingsAdapter?,
private val context: Context
-) : SettingViewHolder(binding.getRoot(), adapter!!) {
+) : SettingViewHolder(binding.root, adapter!!) {
private lateinit var setting: SliderSetting
override val item: SettingsItem
@@ -28,11 +29,25 @@ class SliderViewHolder(
if (!TextUtils.isEmpty(item.description)) {
binding.textSettingDescription.text = item.description
} else {
- binding.textSettingDescription.text = context.getString(
- R.string.slider_setting_value,
- setting.selectedValue,
- setting.units
- )
+ val selectedValue: Float = if (item is IntSliderSetting) {
+ (setting.selectedValue as Int).toFloat()
+ } else {
+ setting.selectedValue as Float
+ }
+
+ if (setting.showDecimal) {
+ binding.textSettingDescription.text = String.format(
+ context.getString(R.string.slider_setting_float_value),
+ selectedValue,
+ setting.units
+ )
+ } else {
+ binding.textSettingDescription.text = String.format(
+ context.getString(R.string.slider_setting_value),
+ selectedValue,
+ setting.units
+ )
+ }
}
setStyle(binding.textSettingName, setting)