Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input extensions #1396

Closed
wants to merge 7 commits into from
Closed

Conversation

cgutman
Copy link
Contributor

@cgutman cgutman commented Jun 26, 2023

Description

This PR implements new protocol extensions for:

  • Native touch and stylus input for Windows
  • Additional controller buttons, such as Xbox Series X share button and DualShock/DualSense touchpad button
  • Controller arrival metadata to allow the host to match the type of controller present on the client

It additionally stubs controller motion and touch events, which can be supported for the DS4 device but aren't implemented in this PR. Implementing these requires switching to sending raw DS4 input reports via ViGEmBus, which is a significant change that warrants its own PR.

Before I take this PR out of draft, I'm going to take a stab at implementing all this for Linux. Since we're not limited by ViGEmBus, we can emulate the full set of available controller features, like an Xbox Series X Elite controller with paddles, a regular Xbox Series X controller for Share button support, Nintendo Switch Pro controller, and DualShock 4 controller.

I also need to track down a performance issue I saw when sending frequent stylus events. We might need to move input to a separate thread to avoid stalling the control thread processing the the ENet messages.

Screenshot

Issues Fixed or Closed

Fixes #1362

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

Branch Updates

LizardByte requires that branches be up-to-date before merging. This means that after any PR is merged, this branch
must be updated before it can be merged. You must also
Allow edits from maintainers.

  • I want maintainers to keep my branch updated

@WesleyVanNeck
Copy link

touch is screen still kinda bugy i cant swipe and walk at same time in minecraft bedrock and it says it suports 10 fingers do again i compiled the moonlight android branch on my own so idk if it my issue or its a bug

@WesleyVanNeck
Copy link

also long pressing aka right click doesnt hold it down it repeats

@cgutman cgutman added the protocol update This PR includes an update to the streaming protocol label Jul 11, 2023
@cgutman
Copy link
Contributor Author

cgutman commented Jul 31, 2023

All gamepad-related commits from this PR have been merged in #1401, #1402, and #1435.

Pen and touch support is now in #1483

Closing this PR as superseded.

@cgutman cgutman closed this Jul 31, 2023
@XPRAMT
Copy link

XPRAMT commented Dec 14, 2023

Using a stylus pen may experience intermittent lag (approximately every 10 to 20 seconds).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
protocol update This PR includes an update to the streaming protocol
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DS5 Trackpad / Share Button not working when emulating DS4
3 participants