diff options
Diffstat (limited to 'src/android')
7 files changed, 59 insertions, 21 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt index 63f95690c..6621289fd 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt @@ -8,6 +8,7 @@ enum class StringSetting(      override val section: String,      override val defaultValue: String  ) : AbstractStringSetting { +    AUDIO_OUTPUT_ENGINE("output_engine", Settings.SECTION_AUDIO, "auto"),      CUSTOM_RTC("custom_rtc", Settings.SECTION_SYSTEM, "0");      override var string: String = defaultValue diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt index bad34fd88..3b6731dcd 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt @@ -7,20 +7,20 @@ import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting  import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting  class StringSingleChoiceSetting( -    val key: String? = null,      setting: AbstractSetting?,      titleId: Int,      descriptionId: Int, -    val choicesId: Array<String>, -    private val valuesId: Array<String>?, +    val choices: Array<String>, +    val values: Array<String>?, +    val key: String? = null,      private val defaultValue: String? = null  ) : SettingsItem(setting, titleId, descriptionId) {      override val type = TYPE_STRING_SINGLE_CHOICE      fun getValueAt(index: Int): String? { -        if (valuesId == null) return null -        return if (index >= 0 && index < valuesId.size) { -            valuesId[index] +        if (values == null) return null +        return if (index >= 0 && index < values.size) { +            values[index]          } else {              ""          } @@ -36,8 +36,8 @@ class StringSingleChoiceSetting(      val selectValueIndex: Int          get() {              val selectedValue = selectedValue -            for (i in valuesId!!.indices) { -                if (valuesId[i] == selectedValue) { +            for (i in values!!.indices) { +                if (values[i] == selectedValue) {                      return i                  }              } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt index eac6a134b..ce0b92c90 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt @@ -138,7 +138,7 @@ class SettingsAdapter(          clickedItem = item          dialog = MaterialAlertDialogBuilder(context)              .setTitle(item.nameId) -            .setSingleChoiceItems(item.choicesId, item.selectValueIndex, this) +            .setSingleChoiceItems(item.choices, item.selectValueIndex, this)              .show()      } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 8215a08eb..59c1d9d54 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -353,18 +353,31 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)      private fun addAudioSettings(sl: ArrayList<SettingsItem>) {          settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_audio)) -        sl.add( -            SliderSetting( -                IntSetting.AUDIO_VOLUME, -                R.string.audio_volume, -                R.string.audio_volume_description, -                0, -                100, -                "%", -                IntSetting.AUDIO_VOLUME.key, -                IntSetting.AUDIO_VOLUME.defaultValue -            ) -        ) +        sl.apply { +            add( +                StringSingleChoiceSetting( +                    StringSetting.AUDIO_OUTPUT_ENGINE, +                    R.string.audio_output_engine, +                    0, +                    settingsActivity.resources.getStringArray(R.array.outputEngineEntries), +                    settingsActivity.resources.getStringArray(R.array.outputEngineValues), +                    StringSetting.AUDIO_OUTPUT_ENGINE.key, +                    StringSetting.AUDIO_OUTPUT_ENGINE.defaultValue +                ) +            ) +            add( +                SliderSetting( +                    IntSetting.AUDIO_VOLUME, +                    R.string.audio_volume, +                    R.string.audio_volume_description, +                    0, +                    100, +                    "%", +                    IntSetting.AUDIO_VOLUME.key, +                    IntSetting.AUDIO_VOLUME.defaultValue +                ) +            ) +        }      }      private fun addThemeSettings(sl: ArrayList<SettingsItem>) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt index de764a27f..e4e321bd3 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt @@ -26,6 +26,14 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti              for (i in values.indices) {                  if (values[i] == item.selectedValue) {                      binding.textSettingDescription.text = resMgr.getStringArray(item.choicesId)[i] +                    return +                } +            } +        } else if (item is StringSingleChoiceSetting) { +            for (i in item.values!!.indices) { +                if (item.values[i] == item.selectedValue) { +                    binding.textSettingDescription.text = item.choices[i] +                    return                  }              }          } else { diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 7f7b1938c..6d092f7a9 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -236,4 +236,15 @@          <item>2</item>      </integer-array> +    <string-array name="outputEngineEntries"> +        <item>@string/auto</item> +        <item>@string/cubeb</item> +        <item>@string/string_null</item> +    </string-array> +    <string-array name="outputEngineValues"> +        <item>auto</item> +        <item>cubeb</item> +        <item>null</item> +    </string-array> +  </resources> diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index a7ea01b55..cc1d8c39d 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -185,6 +185,7 @@      <string name="fastmem">Fastmem</string>      <!-- Audio settings strings --> +    <string name="audio_output_engine">Output engine</string>      <string name="audio_volume">Volume</string>      <string name="audio_volume_description">Specifies the volume of audio output.</string> @@ -203,6 +204,7 @@      <string name="learn_more">Learn more</string>      <string name="auto">Auto</string>      <string name="submit">Submit</string> +    <string name="string_null">Null</string>      <!-- GPU driver installation -->      <string name="select_gpu_driver">Select GPU driver</string> @@ -373,6 +375,9 @@      <string name="theme_mode_light">Light</string>      <string name="theme_mode_dark">Dark</string> +    <!-- Audio output engines --> +    <string name="cubeb">cubeb</string> +      <!-- Black backgrounds theme -->      <string name="use_black_backgrounds">Black backgrounds</string>      <string name="use_black_backgrounds_description">When using the dark theme, apply black backgrounds.</string>  | 
