diff --git a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java index e2dca581..21cbbdf4 100644 --- a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java +++ b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java @@ -26,7 +26,8 @@ public class PreferenceConfiguration { private static final String LIST_MODE_PREF_STRING = "checkbox_list_mode"; private static final String SMALL_ICONS_PREF_STRING = "checkbox_small_icon_mode"; private static final String MULTI_CONTROLLER_PREF_STRING = "checkbox_multi_controller"; - private static final String ENABLE_51_SURROUND_PREF_STRING = "checkbox_51_surround"; + private static final String AUDIO_CONFIG_PREF_STRING = "list_audio_config"; + private static final String LEGACY_ENABLE_51_SURROUND_PREF_STRING = "checkbox_51_surround"; private static final String USB_DRIVER_PREF_SRING = "checkbox_usb_driver"; private static final String VIDEO_FORMAT_PREF_STRING = "video_format"; private static final String ONSCREEN_CONTROLLER_PREF_STRING = "checkbox_show_onscreen_controls"; @@ -53,7 +54,6 @@ public class PreferenceConfiguration { public static final String DEFAULT_LANGUAGE = "default"; private static final boolean DEFAULT_LIST_MODE = false; private static final boolean DEFAULT_MULTI_CONTROLLER = true; - private static final boolean DEFAULT_ENABLE_51_SURROUND = false; private static final boolean DEFAULT_USB_DRIVER = true; private static final String DEFAULT_VIDEO_FORMAT = "auto"; private static final boolean ONSCREEN_CONTROLLER_DEFAULT = false; @@ -68,6 +68,7 @@ public class PreferenceConfiguration { private static final boolean DEFAULT_UNLOCK_FPS = false; private static final boolean DEFAULT_VIBRATE_OSC = true; private static final boolean DEFAULT_VIBRATE_FALLBACK = false; + private static final String DEFAULT_AUDIO_CONFIG = "2"; // Stereo public static final int FORCE_H265_ON = -1; public static final int AUTOSELECT_H265 = 0; @@ -250,6 +251,15 @@ public class PreferenceConfiguration { PreferenceConfiguration config = new PreferenceConfiguration(); // Migrate legacy preferences to the new locations + if (prefs.contains(LEGACY_ENABLE_51_SURROUND_PREF_STRING)) { + if (prefs.getBoolean(LEGACY_ENABLE_51_SURROUND_PREF_STRING, false)) { + prefs.edit() + .remove(LEGACY_ENABLE_51_SURROUND_PREF_STRING) + .putString(AUDIO_CONFIG_PREF_STRING, "51") + .apply(); + } + } + String str = prefs.getString(LEGACY_RES_FPS_PREF_STRING, null); if (str != null) { if (str.equals("360p30")) { @@ -319,6 +329,17 @@ public class PreferenceConfiguration { config.bitrate = getDefaultBitrate(context); } + String audioConfig = prefs.getString(AUDIO_CONFIG_PREF_STRING, DEFAULT_AUDIO_CONFIG); + if (audioConfig.equals("71")) { + config.audioConfiguration = MoonBridge.AUDIO_CONFIGURATION_71_SURROUND; + } + else if (audioConfig.equals("51")) { + config.audioConfiguration = MoonBridge.AUDIO_CONFIGURATION_51_SURROUND; + } + else /* if (audioConfig.equals("2")) */ { + config.audioConfiguration = MoonBridge.AUDIO_CONFIGURATION_STEREO; + } + config.videoFormat = getVideoFormatValue(context); config.deadzonePercentage = prefs.getInt(DEADZONE_PREF_STRING, DEFAULT_DEADZONE); @@ -335,8 +356,6 @@ public class PreferenceConfiguration { config.listMode = prefs.getBoolean(LIST_MODE_PREF_STRING, DEFAULT_LIST_MODE); config.smallIconMode = prefs.getBoolean(SMALL_ICONS_PREF_STRING, getDefaultSmallMode(context)); config.multiController = prefs.getBoolean(MULTI_CONTROLLER_PREF_STRING, DEFAULT_MULTI_CONTROLLER); - config.audioConfiguration = prefs.getBoolean(ENABLE_51_SURROUND_PREF_STRING, DEFAULT_ENABLE_51_SURROUND) ? - MoonBridge.AUDIO_CONFIGURATION_51_SURROUND : MoonBridge.AUDIO_CONFIGURATION_STEREO; config.usbDriver = prefs.getBoolean(USB_DRIVER_PREF_SRING, DEFAULT_USB_DRIVER); config.onscreenController = prefs.getBoolean(ONSCREEN_CONTROLLER_PREF_STRING, ONSCREEN_CONTROLLER_DEFAULT); config.onlyL3R3 = prefs.getBoolean(ONLY_L3_R3_PREF_STRING, ONLY_L3_R3_DEFAULT); diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 7c428fc8..17587e6e 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -30,6 +30,17 @@ 120 + + Stereo + 5.1 Surround Sound + 7.1 Surround Sound + + + 2 + 51 + 71 + + Default English diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f921a29e..4348f0b5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -135,8 +135,8 @@ Allows the stream to be viewed (but not controlled) while multitasking Audio Settings - Enable 5.1 surround sound - Uncheck if you experience audio issues. Requires GFE 2.7 or higher. + Surround sound configuration + Enable 5.1 or 7.1 surround sound for home-theater systems Input Settings Automatic gamepad presence detection diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 591de353..bc854332 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -43,11 +43,13 @@ android:defaultValue="false" /> - +