diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfigurationLoader.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfigurationLoader.java
index 8aaeebac..1bd1041d 100644
--- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfigurationLoader.java
+++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfigurationLoader.java
@@ -8,6 +8,7 @@ import android.content.Context;
import android.util.DisplayMetrics;
import com.limelight.nvstream.input.ControllerPacket;
+import com.limelight.preferences.PreferenceConfiguration;
public class VirtualControllerConfigurationLoader {
private static final String PROFILE_PATH = "profiles";
@@ -146,110 +147,130 @@ public class VirtualControllerConfigurationLoader {
public static void createDefaultLayout(final VirtualController controller, final Context context) {
DisplayMetrics screen = context.getResources().getDisplayMetrics();
+ PreferenceConfiguration config = PreferenceConfiguration.readPreferences(context);
// NOTE: Some of these getPercent() expressions seem like they can be combined
// into a single call. Due to floating point rounding, this isn't actually possible.
- controller.addElement(createDigitalPad(controller, context),
- getPercent(5, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels),
- getPercent(30, screen.widthPixels),
- getPercent(40, screen.heightPixels)
- );
+ if (!config.onlyL3R3)
+ {
+ controller.addElement(createDigitalPad(controller, context),
+ getPercent(5, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels),
+ getPercent(30, screen.widthPixels),
+ getPercent(40, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.A_FLAG, 0, 1, "A", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels) + getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels) + 2 * getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.B_FLAG, 0, 1, "B", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels) + 2 * getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels) + getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.X_FLAG, 0, 1, "X", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels) + getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.Y_FLAG, 0, 1, "Y", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels) + getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createLeftTrigger(
+ 0, "LT", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createRightTrigger(
+ 0, "RT", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels) + 2 * getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.LB_FLAG, 0, 1, "LB", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels) + 2 * getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.RB_FLAG, 0, 1, "RB", -1, controller, context),
+ getPercent(BUTTON_BASE_X, screen.widthPixels) + 2 * getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_BASE_Y, screen.heightPixels) + 2 * getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ getPercent(BUTTON_WIDTH, screen.widthPixels),
+ getPercent(BUTTON_HEIGHT, screen.heightPixels)
+ );
+
+ controller.addElement(createLeftStick(controller, context),
+ getPercent(5, screen.widthPixels),
+ getPercent(50, screen.heightPixels),
+ getPercent(40, screen.widthPixels),
+ getPercent(50, screen.heightPixels)
+ );
+
+ controller.addElement(createRightStick(controller, context),
+ getPercent(55, screen.widthPixels),
+ getPercent(50, screen.heightPixels),
+ getPercent(40, screen.widthPixels),
+ getPercent(50, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.BACK_FLAG, 0, 2, "BACK", -1, controller, context),
+ getPercent(40, screen.widthPixels),
+ getPercent(90, screen.heightPixels),
+ getPercent(10, screen.widthPixels),
+ getPercent(10, screen.heightPixels)
+ );
+
+ controller.addElement(createDigitalButton(
+ ControllerPacket.PLAY_FLAG, 0, 3, "START", -1, controller, context),
+ getPercent(40, screen.widthPixels) + getPercent(10, screen.widthPixels),
+ getPercent(90, screen.heightPixels),
+ getPercent(10, screen.widthPixels),
+ getPercent(10, screen.heightPixels)
+ );
+ }
controller.addElement(createDigitalButton(
- ControllerPacket.A_FLAG, 0, 1, "A", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels)+getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels)+2*getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ ControllerPacket.LS_CLK_FLAG, 0, 1, "L3", -1, controller, context),
+ getPercent(2, screen.widthPixels),
+ getPercent(80, screen.heightPixels),
getPercent(BUTTON_WIDTH, screen.widthPixels),
getPercent(BUTTON_HEIGHT, screen.heightPixels)
);
controller.addElement(createDigitalButton(
- ControllerPacket.B_FLAG, 0, 1, "B", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels)+2*getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels)+getPercent(BUTTON_HEIGHT, screen.heightPixels),
+ ControllerPacket.RS_CLK_FLAG, 0, 1, "R3", -1, controller, context),
+ getPercent(89, screen.widthPixels),
+ getPercent(80, screen.heightPixels),
getPercent(BUTTON_WIDTH, screen.widthPixels),
getPercent(BUTTON_HEIGHT, screen.heightPixels)
);
-
- controller.addElement(createDigitalButton(
- ControllerPacket.X_FLAG, 0, 1, "X", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels)+getPercent(BUTTON_HEIGHT, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createDigitalButton(
- ControllerPacket.Y_FLAG, 0, 1, "Y", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels)+getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createLeftTrigger(
- 0, "LT", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createRightTrigger(
- 0, "RT", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels)+2*getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createDigitalButton(
- ControllerPacket.LB_FLAG, 0, 1, "LB", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels)+2*getPercent(BUTTON_HEIGHT, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createDigitalButton(
- ControllerPacket.RB_FLAG, 0, 1, "RB", -1, controller, context),
- getPercent(BUTTON_BASE_X, screen.widthPixels)+2*getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_BASE_Y, screen.heightPixels)+2*getPercent(BUTTON_HEIGHT, screen.heightPixels),
- getPercent(BUTTON_WIDTH, screen.widthPixels),
- getPercent(BUTTON_HEIGHT, screen.heightPixels)
- );
-
- controller.addElement(createLeftStick(controller, context),
- getPercent(5, screen.widthPixels),
- getPercent(50, screen.heightPixels),
- getPercent(40, screen.widthPixels),
- getPercent(50, screen.heightPixels)
- );
-
- controller.addElement(createRightStick(controller, context),
- getPercent(55, screen.widthPixels),
- getPercent(50, screen.heightPixels),
- getPercent(40, screen.widthPixels),
- getPercent(50, screen.heightPixels)
- );
-
- controller.addElement(createDigitalButton(
- ControllerPacket.BACK_FLAG, 0, 2, "BACK", -1, controller, context),
- getPercent(40, screen.widthPixels),
- getPercent(90, screen.heightPixels),
- getPercent(10, screen.widthPixels),
- getPercent(10, screen.heightPixels)
- );
-
- controller.addElement(createDigitalButton(
- ControllerPacket.PLAY_FLAG, 0, 3, "START", -1, controller, context),
- getPercent(40, screen.widthPixels)+getPercent(10, screen.widthPixels),
- getPercent(90, screen.heightPixels),
- getPercent(10, screen.widthPixels),
- getPercent(10, screen.heightPixels)
- );
}
/*
diff --git a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java
index ded3c95f..129d1572 100644
--- a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java
+++ b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java
@@ -22,6 +22,7 @@ public class PreferenceConfiguration {
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";
+ private static final String ONLY_L3_R3_PREF_STRING = "checkbox_only_show_L3R3";
private static final String BATTERY_SAVER_PREF_STRING = "checkbox_battery_saver";
private static final String DISABLE_FRAME_DROP_PREF_STRING = "checkbox_disable_frame_drop";
@@ -46,6 +47,7 @@ public class PreferenceConfiguration {
private static final boolean DEFAULT_USB_DRIVER = true;
private static final String DEFAULT_VIDEO_FORMAT = "auto";
private static final boolean ONSCREEN_CONTROLLER_DEFAULT = false;
+ private static final boolean ONLY_L3_R3_DEFAULT = false;
private static final boolean DEFAULT_BATTERY_SAVER = false;
private static final boolean DEFAULT_DISABLE_FRAME_DROP = false;
@@ -61,6 +63,7 @@ public class PreferenceConfiguration {
public String language;
public boolean listMode, smallIconMode, multiController, enable51Surround, usbDriver;
public boolean onscreenController;
+ public boolean onlyL3R3;
public boolean batterySaver;
public boolean disableFrameDrop;
@@ -203,6 +206,7 @@ public class PreferenceConfiguration {
config.enable51Surround = prefs.getBoolean(ENABLE_51_SURROUND_PREF_STRING, DEFAULT_ENABLE_51_SURROUND);
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);
config.batterySaver = prefs.getBoolean(BATTERY_SAVER_PREF_STRING, DEFAULT_BATTERY_SAVER);
config.disableFrameDrop = prefs.getBoolean(DISABLE_FRAME_DROP_PREF_STRING, DEFAULT_DISABLE_FRAME_DROP);
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index fb28f660..331cf491 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -109,6 +109,8 @@
Configuración de controles en pantalla
Mostrar controles en pantalla
Muestra controles virtuales superpuestos en la pantalla táctil
+ Solo muestra L3 y R3
+ Ocultar todo excepto L3 y R3
Configuración de la interfaz
Idioma
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 205edbf2..822e1df6 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -120,6 +120,8 @@
Paramètres des contrôles à l\'écran
Afficher les commandes à l\'écran
Afficher la superposition du contrôleur virtuel sur l\'écran tactile
+ Montre seulement L3 et R3
+ Cacher tout sauf L3 et R3
Paramètres de l\'interface utilisateur
Langue
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d77dfebd..3858241d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -126,6 +126,8 @@
On-screen Controls Settings
Show on-screen controls
Show virtual controller overlay on touchscreen
+ Only show L3 and R3
+ Hide all virtual buttons except L3 and R3
UI Settings
Language
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index aa23510a..6bb88c40 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -54,10 +54,17 @@
+ android:title="@string/title_checkbox_show_onscreen_controls" />
+