diff --git a/app/build.gradle b/app/build.gradle index cf6b8c9a..813a6a42 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { minSdkVersion 16 targetSdkVersion 23 - versionName "3.1.13" - versionCode = 72 + versionName "3.5-beta4" + versionCode = 73 } productFlavors { diff --git a/app/libs/limelight-common.jar b/app/libs/limelight-common.jar index b42c5b75..e7d0030c 100644 Binary files a/app/libs/limelight-common.jar and b/app/libs/limelight-common.jar differ diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index e4e6e2ba..759a5be6 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -221,6 +221,9 @@ public class Game extends Activity implements SurfaceHolder.Callback, .enableLocalAudioPlayback(prefConfig.playHostAudio) .setMaxPacketSize(remote ? 1024 : 1292) .setRemote(remote) + .setAudioConfiguration(prefConfig.enable51Surround ? + StreamConfiguration.AUDIO_CONFIGURATION_5_1 : + StreamConfiguration.AUDIO_CONFIGURATION_STEREO) .build(); // Initialize the connection diff --git a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java index e0b9b5ff..f1d9091e 100644 --- a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java +++ b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java @@ -19,12 +19,15 @@ 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 USB_DRIVER_PREF_SRING = "checkbox_usb_driver"; private static final int BITRATE_DEFAULT_720_30 = 5; private static final int BITRATE_DEFAULT_720_60 = 10; private static final int BITRATE_DEFAULT_1080_30 = 10; private static final int BITRATE_DEFAULT_1080_60 = 20; + private static final int BITRATE_DEFAULT_4K_30 = 40; + private static final int BITRATE_DEFAULT_4K_60 = 80; private static final String DEFAULT_RES_FPS = "720p60"; private static final String DEFAULT_DECODER = "auto"; @@ -37,6 +40,7 @@ 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; public static final int FORCE_HARDWARE_DECODER = -1; @@ -49,7 +53,7 @@ public class PreferenceConfiguration { public int deadzonePercentage; public boolean stretchVideo, enableSops, playHostAudio, disableWarnings; public String language; - public boolean listMode, smallIconMode, multiController, usbDriver; + public boolean listMode, smallIconMode, multiController, enable51Surround, usbDriver; public static int getDefaultBitrate(String resFpsString) { if (resFpsString.equals("720p30")) { @@ -64,6 +68,12 @@ public class PreferenceConfiguration { else if (resFpsString.equals("1080p60")) { return BITRATE_DEFAULT_1080_60; } + else if (resFpsString.equals("4K30")) { + return BITRATE_DEFAULT_4K_30; + } + else if (resFpsString.equals("4K60")) { + return BITRATE_DEFAULT_4K_60; + } else { // Should never get here return DEFAULT_BITRATE; @@ -140,6 +150,16 @@ public class PreferenceConfiguration { config.height = 1080; config.fps = 60; } + else if (str.equals("4K30")) { + config.width = 3840; + config.height = 2160; + config.fps = 30; + } + else if (str.equals("4K60")) { + config.width = 3840; + config.height = 2160; + config.fps = 60; + } else { // Should never get here config.width = 1280; @@ -161,6 +181,7 @@ 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.enable51Surround = prefs.getBoolean(ENABLE_51_SURROUND_PREF_STRING, DEFAULT_ENABLE_51_SURROUND); config.usbDriver = prefs.getBoolean(USB_DRIVER_PREF_SRING, DEFAULT_USB_DRIVER); return config; diff --git a/app/src/main/res/values-it/arrays.xml b/app/src/main/res/values-it/arrays.xml index 24bbc7b9..f7d470a8 100644 --- a/app/src/main/res/values-it/arrays.xml +++ b/app/src/main/res/values-it/arrays.xml @@ -5,6 +5,8 @@ 720p - 60 FPS 1080p - 30 FPS 1080p - 60 FPS + 4K - 30 FPS + 4K - 60 FPS diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 44a32405..ec7c150c 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -5,12 +5,16 @@ 720p 60 FPS 1080p 30 FPS 1080p 60 FPS + 4K 30 FPS + 4K 60 FPS 720p30 720p60 1080p30 1080p60 + 4K30 + 4K60 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8690cd3b..d633c26a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,6 +94,10 @@ Disable warning messages Disable on-screen connection warning messages while streaming + Audio Settings + Enable 5.1 surround sound + Uncheck if you experience audio issues. Requires GFE 2.7 or higher. + Gamepad Settings Multiple controller support When unchecked, all controllers appear as one diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index a4bf1eb3..7b9a3b3d 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -26,6 +26,13 @@ android:summary="@string/summary_checkbox_disable_warnings" android:defaultValue="false" /> + + +