Implement horizontal scrolling with Sunshine

This commit is contained in:
Cameron Gutman
2023-02-20 19:56:01 -06:00
parent 91dd7b7049
commit f4df0714b5
7 changed files with 42 additions and 14 deletions

View File

@@ -1521,6 +1521,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
if (event.getActionMasked() == MotionEvent.ACTION_SCROLL) {
// Send the vertical scroll packet
conn.sendMouseHighResScroll((short)(event.getAxisValue(MotionEvent.AXIS_VSCROLL) * 120));
conn.sendMouseHighResHScroll((short)(event.getAxisValue(MotionEvent.AXIS_HSCROLL) * 120));
}
if ((changedButtons & MotionEvent.BUTTON_PRIMARY) != 0) {
@@ -2187,10 +2188,15 @@ public class Game extends Activity implements SurfaceHolder.Callback,
}
@Override
public void mouseScroll(byte amount) {
public void mouseVScroll(byte amount) {
conn.sendMouseScroll(amount);
}
@Override
public void mouseHScroll(byte amount) {
conn.sendMouseHScroll(amount);
}
@Override
public void keyboardEvent(boolean buttonDown, short keyCode) {
short keyMap = keyboardTranslator.translate(keyCode, -1);

View File

@@ -9,6 +9,7 @@ public interface EvdevListener {
void mouseMove(int deltaX, int deltaY);
void mouseButtonEvent(int buttonId, boolean down);
void mouseScroll(byte amount);
void mouseVScroll(byte amount);
void mouseHScroll(byte amount);
void keyboardEvent(boolean buttonDown, short keyCode);
}

View File

@@ -513,7 +513,13 @@ public class NvConnection {
public void sendMouseScroll(final byte scrollClicks) {
if (!isMonkey) {
MoonBridge.sendMouseScroll(scrollClicks);
MoonBridge.sendMouseHighResScroll((short)(scrollClicks * 120)); // WHEEL_DELTA
}
}
public void sendMouseHScroll(final byte scrollClicks) {
if (!isMonkey) {
MoonBridge.sendMouseHighResHScroll((short)(scrollClicks * 120)); // WHEEL_DELTA
}
}
@@ -523,6 +529,12 @@ public class NvConnection {
}
}
public void sendMouseHighResHScroll(final short scrollAmount) {
if (!isMonkey) {
MoonBridge.sendMouseHighResHScroll(scrollAmount);
}
}
public void sendUtf8Text(final String text) {
if (!isMonkey) {
MoonBridge.sendUtf8Text(text);

View File

@@ -307,12 +307,12 @@ public class MoonBridge {
short leftStickX, short leftStickY,
short rightStickX, short rightStickY);
public static native void sendMouseScroll(byte scrollClicks);
public static native void sendKeyboardInput(short keyMap, byte keyDirection, byte modifier, byte flags);
public static native void sendMouseHighResScroll(short scrollAmount);
public static native void sendMouseHighResHScroll(short scrollAmount);
public static native void sendUtf8Text(String text);
public static native String getStageName(int stage);