sc-controller
sc-controller copied to clipboard
SC detection and configuration BT driver
Addresses #678 with addition of a driver for detection, configuration and input handling of BT steam controller. As of right now, the following things need squaring off:
- Ensure changes to device detection don't interfere with other wired controllers detection. I don't understand the system entirely and don't have wired controllers so can only do limited testinq. Feedback appreciated.
- Test on Linux. This should work as expected since I assume there's no ephem bit. I will test this an open for review
Next steps:
- Add haptic feedback to BT controller
- Add controller turnoff handling #700
- Utilize timeslicing as in the python version for inputs. Some radio interfaces (such as Steam Deck win drivers) may malform or handle packets out of order
- Enable gyro functionality. Spam inputs from previous are entirely eliminated when gyro disabled.
Possible breaking changes
sccd_input_hidapi_hid_request(InputDevice* _dev, uint16_t idx sccd_input_hidapi_hid_request(InputDevice* _dev, int16_t idx
I don't entirely recall why, but windows didn't like that it was a uint.
It seems like if I can test on linux and the SC + WIRED + DECK, the change isn't breaking if hid_request is only used by steam controllers.
changes in sccd_input_hidapi_open:
shouldn't affect generic devices, needs to be tested with generic devices. Used to tag a SC to handle a bluetooth quirk