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 ef65dea6..fdd58995 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 @@ -104,7 +104,7 @@ public class DigitalButton extends View paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawText(text, - getPercent(getWidth(), 50), getPercent(getHeight(), 75), + getPercent(getWidth(), 50), getPercent(getHeight(), 73), paint); super.onDraw(canvas); @@ -173,6 +173,6 @@ public class DigitalButton extends View } } - return super.onTouchEvent(event); + return true; } } 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 76d1af3b..0722fcf1 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 @@ -105,7 +105,7 @@ public class DigitalPad extends View paint.setColor((direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 ? pressedColor : normalColor); paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawText("LF", - getPercent(getWidth(), 16.5f), getPercent(getHeight(), 58), + getPercent(getWidth(), 16.5f), getPercent(getHeight(), 56), paint); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( @@ -131,7 +131,7 @@ public class DigitalPad extends View paint.setColor((direction & DIGITAL_PAD_DIRECTION_UP) > 0 ? pressedColor : normalColor); paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawText("UP", - getPercent(getWidth(), 49.5f), getPercent(getHeight(), 25), + getPercent(getWidth(), 49.5f), getPercent(getHeight(), 23), paint); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( @@ -157,7 +157,7 @@ public class DigitalPad extends View paint.setColor((direction & DIGITAL_PAD_DIRECTION_RIGHT) > 0 ? pressedColor : normalColor); paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawText("RI", - getPercent(getWidth(), 82.5f), getPercent(getHeight(), 58), + getPercent(getWidth(), 82.5f), getPercent(getHeight(), 56), paint); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( @@ -183,7 +183,7 @@ public class DigitalPad extends View paint.setColor((direction & DIGITAL_PAD_DIRECTION_DOWN) > 0 ? pressedColor : normalColor); paint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.drawText("DW", - getPercent(getWidth(), 49.5f), getPercent(getHeight(), 91), + getPercent(getWidth(), 49.5f), getPercent(getHeight(), 89), paint); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( @@ -280,6 +280,6 @@ public class DigitalPad extends View } } - return super.onTouchEvent(event); + return true; } } 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 e8ed331f..e6fd571d 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 @@ -1,10 +1,8 @@ package com.limelight.binding.input.virtual_controller; import android.content.Context; -import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; -import android.widget.Button; import android.widget.FrameLayout; import android.widget.RelativeLayout; @@ -16,7 +14,7 @@ import com.limelight.nvstream.input.ControllerPacket; */ public class VirtualController { - private static final boolean _PRINT_DEBUG_INFORMATION = true; + private static final boolean _PRINT_DEBUG_INFORMATION = false; private static final void _DBG(String text) { @@ -37,6 +35,10 @@ public class VirtualController private FrameLayout frame_layout = null; private RelativeLayout relative_layout = null; + private RelativeLayout.LayoutParams layoutParamsButtonStart = null; + private RelativeLayout.LayoutParams layoutParamsButtonSelect = null; +// private RelativeLayout.LayoutParams layoutParamsButtonEscape = null; + private RelativeLayout.LayoutParams layoutParamsDPad = null; private RelativeLayout.LayoutParams layoutParamsButtonA = null; @@ -51,13 +53,9 @@ public class VirtualController private RelativeLayout.LayoutParams layoutParamsParamsStick = null; private RelativeLayout.LayoutParams layoutParamsParamsStick2 = null; - // configuration - private RelativeLayout.LayoutParams layoutParamsButtonOpenColorPickerNormal = null; - private RelativeLayout.LayoutParams layoutParamsButtonOpenColorPickerPressed = null; - - private Button buttonStart = null; - private Button buttonSelect = null; - private Button buttonESC = null; + private DigitalButton buttonStart = null; + private DigitalButton buttonSelect = null; +// private DigitalButton buttonEscape = null; private DigitalPad digitalPad = null; @@ -73,8 +71,6 @@ public class VirtualController private AnalogStick stick = null; private AnalogStick stick2 = null; - private boolean configuration = false; - NvConnection connection = null; private int getPercentageV(int percent) @@ -87,11 +83,11 @@ public class VirtualController return (int)(((float)frame_layout.getWidth() / (float)100) * (float)percent); } - private void setPercentilePosition(RelativeLayout.LayoutParams parm, int pos_x, int pos_y) + private void setPercentilePosition(RelativeLayout.LayoutParams parm, float pos_x, float pos_y) { parm.setMargins( - (int)(((float)frame_layout.getWidth() / (float)100 * (float)pos_x) - ((float)parm.width / (float)2)), - (int)(((float)frame_layout.getHeight() / (float)100 * (float)pos_y) - ((float)parm.height / (float)2)), + (int)(((float)frame_layout.getWidth() / (float)100 * pos_x) - ((float)parm.width / (float)2)), + (int)(((float)frame_layout.getHeight() / (float)100 * pos_y) - ((float)parm.height / (float)2)), 0, 0 ); @@ -116,6 +112,9 @@ public class VirtualController layoutParamsButtonLB = new RelativeLayout.LayoutParams(getPercentageV(10), getPercentageV(10)); layoutParamsButtonRB = new RelativeLayout.LayoutParams(getPercentageV(10), getPercentageV(10)); + layoutParamsButtonStart = new RelativeLayout.LayoutParams(getPercentageH(12), getPercentageV(8)); + layoutParamsButtonSelect = new RelativeLayout.LayoutParams(getPercentageH(12), getPercentageV(8)); + setPercentilePosition(layoutParamsDPad, 10, 35); setPercentilePosition(layoutParamsParamsStick, 22, 78); @@ -132,6 +131,10 @@ public class VirtualController setPercentilePosition(layoutParamsButtonLB, 85, 28); setPercentilePosition(layoutParamsButtonRB, 92, 23); + setPercentilePosition(layoutParamsButtonSelect, 43, 94); + setPercentilePosition(layoutParamsButtonStart, 57, 94); + + relative_layout.addView(digitalPad, layoutParamsDPad); relative_layout.addView(stick, layoutParamsParamsStick); @@ -145,6 +148,9 @@ public class VirtualController relative_layout.addView(buttonRT, layoutParamsButtonRT); relative_layout.addView(buttonLB, layoutParamsButtonLB); relative_layout.addView(buttonRB, layoutParamsButtonRB); + + relative_layout.addView(buttonSelect, layoutParamsButtonSelect); + relative_layout.addView(buttonStart, layoutParamsButtonStart); } private DigitalButton createDigitalButton(String text, final int key, Context context) @@ -309,74 +315,12 @@ public class VirtualController } }); + buttonStart = createDigitalButton("START", ControllerPacket.PLAY_FLAG, context); + buttonSelect = createDigitalButton("SELECT", ControllerPacket.SPECIAL_BUTTON_FLAG, context); + refreshLayout(); } - public VirtualController(FrameLayout layout, Context context, WindowManager window_manager) - { - this.connection = null; - frame_layout = layout; - - relative_layout = new RelativeLayout(context); - - relative_layout.addOnLayoutChangeListener(new View.OnLayoutChangeListener() - { - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) - { - refreshLayout(); - } - }); - - frame_layout.addView(relative_layout); - - digitalPad = new DigitalPad(context); - - buttonX = new DigitalButton(context); - buttonX.setText("X"); - - buttonY = new DigitalButton(context); - buttonY.setText("Y"); - - buttonA = new DigitalButton(context); - buttonA.setText("A"); - - buttonB = new DigitalButton(context); - buttonB.setText("B"); - - buttonLT = new DigitalButton(context); - buttonLT.setText("LT"); - - buttonRT = new DigitalButton(context); - buttonRT.setText("RT"); - - buttonLB = new DigitalButton(context); - buttonLB.setText("LB"); - - buttonRB = new DigitalButton(context); - buttonRB.setText("RB"); - - stick = new AnalogStick(context); - stick2 = new AnalogStick(context); - - - configuration = true; - - // receive touch events - frame_layout.setOnTouchListener(new View.OnTouchListener() - { - @Override - public boolean onTouch(View v, MotionEvent event) - { - _DBG("touch event"); - return true; - } - }); - - - refreshLayout(); - } - private void sendControllerInputPacket() { try { diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfiguration.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfiguration.java index 0738e8ed..a1b41938 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfiguration.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerConfiguration.java @@ -1,6 +1,7 @@ package com.limelight.binding.input.virtual_controller; import android.app.Activity; +import android.graphics.Color; import android.os.Bundle; import android.os.PersistableBundle; import android.view.Window; @@ -36,7 +37,7 @@ public class VirtualControllerConfiguration extends Activity FrameLayout frameLayout = (FrameLayout) findViewById(R.id.configure_virtual_controller_frameLayout); // start with configuration constructor - virtualController = new VirtualController(frameLayout, getApplicationContext(), getWindowManager()); + virtualController = new VirtualController(null, frameLayout, this, getWindowManager()); Toast.makeText(getApplicationContext(), "Not implemented yet!", Toast.LENGTH_SHORT).show(); }