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

Implement Another API For Windows #32

Open
AldaronLau opened this issue Jun 23, 2021 · 4 comments
Open

Implement Another API For Windows #32

AldaronLau opened this issue Jun 23, 2021 · 4 comments
Labels
difficult Tasks that take a large amount of work, for instance learning an entire API enhancement New feature or request

Comments

@AldaronLau
Copy link
Member

Is your feature request related to a problem? Please describe.
Currently, the Windows port of stick depends on xinput - this does not include other controllers that do not conform to the w3 standard gamepad such as flightsticks.

Describe the solution you'd like
Have an alternative way to connect controllers on Windows.

Describe alternatives you've considered
I currently believe a different API has to be implemented to support these controllers.

Additional context

@AldaronLau AldaronLau added the enhancement New feature or request label Jun 23, 2021
@AldaronLau
Copy link
Member Author

@iRaiko perhaps some of the stuff you worked on earlier at https://github.com/iRaiko/hidtest for the Windows port could still be used for this?

@dparnell any thoughts?

@AldaronLau AldaronLau added the difficult Tasks that take a large amount of work, for instance learning an entire API label Jun 23, 2021
@dparnell
Copy link
Contributor

The trick is finding a way of talking to controllers that works reliably on Windows. Xinput seems to be the latest Microsoft blessed way of talking to devices. When I was working through the current Windows code I tried a couple of other APIs but I could not get them to work. It might be that I was trying to use them with Xbox controllers and if I'd used an older style controller it might have just worked.

@AldaronLau
Copy link
Member Author

@dparnell So I'm thinking theoretically with a combination of APIs, Stick should be able to support all controllers. I also looked for paddle buttons in the XInput API and did not see them, and I believe those exist on some newer Xbox controllers (although I don't have one to test). So, I guess what I'm wondering is how Xinput can be the newest Microsoft API and not support the newest controllers (unless I'm missing something). Also it might be that I need to install a driver for my flight controller and that's why it didn't work.

@dparnell
Copy link
Contributor

The elite controllers have 4 extra paddles on the bottom. I have two of them here, but I have to say I found them annoying so I removed them. My wife uses two of them on the left side on her controller, so I know they can be nice in some games. From what I saw in the docs they should generate key events. I'll have to take a look and see what happens when I press them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficult Tasks that take a large amount of work, for instance learning an entire API enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants