Skip to content

Added Steam Controller support#528

Open
Crazyphil wants to merge 6 commits into
ClassicOldSong:moonlight-noirfrom
Crazyphil:steam-controller
Open

Added Steam Controller support#528
Crazyphil wants to merge 6 commits into
ClassicOldSong:moonlight-noirfrom
Crazyphil:steam-controller

Conversation

@Crazyphil

Copy link
Copy Markdown

Improved upon the Steam Controller support for the original Moonlight Android client by @JnCrMx for issue moonlight-stream#1062

I've made a pull request for this fork instead of for the original repo because I see a higher chance that the pull request is recognized.

A short summary of what the pull request does:

  • Add a Bluetooth driver in addition to the USB driver (disabled by default because it needs additional permissions)
  • Permission check for Bluetooth when the stream is started
  • Connect to Steam Controllers via BLE and switch them to gamepad mode instead of emulating mouse and keyboard, which is the main step to make them usable
  • Allow both USB and Bluetooth driver to expose more functionality to the host if the controller supports it: gyroscope, LED colors and battery state are features the Steam Controller natively supports
  • Added rumble support to the Steam Controller for an extra-immersive experience

Fixes #263

- Allow emulating Xbox or PS5 controllers, both with their own advantages and disadvantages
- Added support for gyroscope, battery and LED
- Implemented rumble
- Properly reset the controller when stopping to stream
@ClassicOldSong

Copy link
Copy Markdown
Owner

Thank you! At first glance it doesn't look like very much AI generated which is great, even though this PR touches so many files. I'll do a detailed review when I get some time.

Comment on lines +109 to +115
// final HIDDeviceManager finalThis = this;
// mHandler.postDelayed(new Runnable() {
// @Override
// public void run() {
// finalThis.chromebookConnectionHandler();
// }
// }, 5000);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep unused code or remove before merge?

}

private void initializeBluetooth() {
//Log.d(TAG, "Initializing Bluetooth");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keep unused code or remove before merge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature request]: Steam controller support

3 participants