diff --git a/app/app.iml b/app/app.iml index f7cfabed..4a3b7889 100644 --- a/app/app.iml +++ b/app/app.iml @@ -8,12 +8,10 @@ - - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -59,13 +51,13 @@ - - - - - - - + + + + + + + diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java index 709b73ca..19abe5a0 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java @@ -21,7 +21,7 @@ public class AnalogStick extends View MOVED } - private static final boolean _PRINT_DEBUG_INFORMATION = true; + private static final boolean _PRINT_DEBUG_INFORMATION = false; public interface AnalogStickListener { @@ -46,8 +46,8 @@ public class AnalogStick extends View } } - private int normalColor = 0x88888888; - private int pressedColor = 0x880000FF; + private int normalColor = 0xF0888888; + private int pressedColor = 0xF00000FF; float radius_complete = 0; float radius_dead_zone = 0; @@ -74,6 +74,12 @@ public class AnalogStick extends View } + public void setColors(int normalColor, int pressedColor) + { + this.normalColor = normalColor; + this.pressedColor = pressedColor; + } + private float getPercent(float value, int percent) { return value / 100 * percent; diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java index f648e427..ef65dea6 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java @@ -15,10 +15,10 @@ import java.util.List; */ public class DigitalButton extends View { - private static final boolean _PRINT_DEBUG_INFORMATION = true; + private static final boolean _PRINT_DEBUG_INFORMATION = false; - private int normalColor = 0x88888888; - private int pressedColor = 0x880000FF; + private int normalColor = 0xF0888888; + private int pressedColor = 0xF00000FF; private String text; @@ -34,6 +34,12 @@ public class DigitalButton extends View listeners.add(listener); } + public void setColors(int normalColor, int pressedColor) + { + this.normalColor = normalColor; + this.pressedColor = pressedColor; + } + public void setOnTouchListener(OnTouchListener listener) { onTouchListener = listener; diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java index 760d6d6d..76d1af3b 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java @@ -21,10 +21,10 @@ public class DigitalPad extends View public final static int DIGITAL_PAD_DIRECTION_RIGHT = 4; public final static int DIGITAL_PAD_DIRECTION_DOWN = 8; - private int normalColor = 0x88888888; - private int pressedColor = 0x880000FF; + private int normalColor = 0xF0888888; + private int pressedColor = 0xF00000FF; - private static final boolean _PRINT_DEBUG_INFORMATION = true; + private static final boolean _PRINT_DEBUG_INFORMATION = false; public interface DigitalPadListener { @@ -71,6 +71,12 @@ public class DigitalPad extends View return getWidth() > getHeight() ? getHeight() : getWidth(); } + public void setColors(int normalColor, int pressedColor) + { + this.normalColor = normalColor; + this.pressedColor = pressedColor; + } + @Override protected void onDraw(Canvas canvas) { @@ -83,14 +89,17 @@ public class DigitalPad extends View paint.setTextAlign(Paint.Align.CENTER); paint.setStrokeWidth(3); - // draw no direction rect - paint.setStyle(Paint.Style.STROKE); - paint.setColor(direction == DIGITAL_PAD_DIRECTION_NO_DIRECTION ? pressedColor : normalColor); - canvas.drawRect( - getPercent(getWidth(), 36), getPercent(getHeight(), 36), - getPercent(getWidth(), 63), getPercent(getHeight(), 63), - paint - ); + if (direction == DIGITAL_PAD_DIRECTION_NO_DIRECTION) + { + // draw no direction rect + paint.setStyle(Paint.Style.STROKE); + paint.setColor(normalColor); + canvas.drawRect( + getPercent(getWidth(), 36), getPercent(getHeight(), 36), + getPercent(getWidth(), 63), getPercent(getHeight(), 63), + paint + ); + } // draw left rect paint.setColor((direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 ? pressedColor : normalColor); diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java index cdd86c23..e8ed331f 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java @@ -25,6 +25,7 @@ public class VirtualController System.out.println("VirtualController: " + text); } } + private short inputMap = 0x0000; private byte leftTrigger = 0x00; private byte rightTrigger = 0x00; @@ -50,7 +51,11 @@ public class VirtualController private RelativeLayout.LayoutParams layoutParamsParamsStick = null; private RelativeLayout.LayoutParams layoutParamsParamsStick2 = null; - private Button buttonStart = null; + // configuration + private RelativeLayout.LayoutParams layoutParamsButtonOpenColorPickerNormal = null; + private RelativeLayout.LayoutParams layoutParamsButtonOpenColorPickerPressed = null; + + private Button buttonStart = null; private Button buttonSelect = null; private Button buttonESC = null; @@ -65,7 +70,6 @@ public class VirtualController private DigitalButton buttonLB = null; private DigitalButton buttonRB = null; - private AnalogStick stick = null; private AnalogStick stick2 = null; @@ -93,35 +97,6 @@ public class VirtualController ); } - private void onButtonTouchEvent(View v, MotionEvent event, short key) - { - // get masked (not specific to a pointer) action - int action = event.getActionMasked(); - - switch (action) - { - case MotionEvent.ACTION_DOWN: - case MotionEvent.ACTION_POINTER_DOWN: - { - inputMap |= key; - - sendControllerInputPacket(); - - break; - } - - case MotionEvent.ACTION_UP: - case MotionEvent.ACTION_POINTER_UP: - { - inputMap &= ~key; - - sendControllerInputPacket(); - - break; - } - } - } - void refreshLayout() { relative_layout.removeAllViews(); @@ -172,6 +147,27 @@ public class VirtualController relative_layout.addView(buttonRB, layoutParamsButtonRB); } + private DigitalButton createDigitalButton(String text, final int key, Context context) + { + DigitalButton button = new DigitalButton(context); + button.setText(text); + button.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { + @Override + public void onClick() { + inputMap |= key; + sendControllerInputPacket(); + } + + @Override + public void onRelease() { + inputMap &= ~key; + sendControllerInputPacket(); + } + }); + + return button; + } + public VirtualController(final NvConnection conn, FrameLayout layout, Context context, WindowManager window_manager) { this.connection = conn; @@ -234,72 +230,10 @@ public class VirtualController } }); - buttonX = new DigitalButton(context); - buttonX.setText("X"); - buttonX.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { - @Override - public void onClick() { - inputMap |= ControllerPacket.X_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() { - inputMap &= ControllerPacket.X_FLAG; - sendControllerInputPacket(); - } - }); - - buttonY = new DigitalButton(context); - buttonY.setText("Y"); - buttonY.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() - { - @Override - public void onClick() - { - inputMap |= ControllerPacket.Y_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() - { - inputMap &= ControllerPacket.Y_FLAG; - sendControllerInputPacket(); - } - }); - - buttonA = new DigitalButton(context); - buttonA.setText("A"); - buttonA.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { - @Override - public void onClick() { - inputMap |= ControllerPacket.A_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() { - inputMap &= ControllerPacket.A_FLAG; - sendControllerInputPacket(); - } - }); - - buttonB = new DigitalButton(context); - buttonB.setText("B"); - buttonB.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { - @Override - public void onClick() { - inputMap |= ControllerPacket.B_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() { - inputMap &= ControllerPacket.B_FLAG; - sendControllerInputPacket(); - } - }); + buttonX = createDigitalButton("X", ControllerPacket.X_FLAG ,context); + buttonY = createDigitalButton("Y", ControllerPacket.Y_FLAG ,context); + buttonA = createDigitalButton("A", ControllerPacket.A_FLAG ,context); + buttonB = createDigitalButton("B", ControllerPacket.B_FLAG ,context); buttonLT = new DigitalButton(context); buttonLT.setText("LT"); @@ -343,38 +277,8 @@ public class VirtualController } }); - buttonLB = new DigitalButton(context); - buttonLB.setText("LB"); - buttonLB.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { - @Override - public void onClick() { - inputMap |= ControllerPacket.LB_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() { - inputMap &= ControllerPacket.LB_FLAG; - sendControllerInputPacket(); - } - }); - - buttonRB = new DigitalButton(context); - buttonRB.setText("RB"); - buttonRB.addDigitalButtonListener(new DigitalButton.DigitalButtonListener() { - @Override - public void onClick() { - inputMap |= ControllerPacket.RB_FLAG; - sendControllerInputPacket(); - } - - @Override - public void onRelease() { - inputMap &= ControllerPacket.RB_FLAG; - sendControllerInputPacket(); - } - }); - + buttonLB = createDigitalButton("LB", ControllerPacket.LB_FLAG ,context); + buttonRB = createDigitalButton("RB", ControllerPacket.RB_FLAG ,context); stick = new AnalogStick(context); @@ -405,7 +309,6 @@ public class VirtualController } }); - refreshLayout(); } @@ -456,8 +359,8 @@ public class VirtualController stick = new AnalogStick(context); stick2 = new AnalogStick(context); - configuration = true; + configuration = true; // receive touch events frame_layout.setOnTouchListener(new View.OnTouchListener()