Ed Phillips
2016-12-01 17:22:30 UTC
Hello,
I think I'm missing something when it comes to the basic reasoning behind
the design of the SDL_Controller stuff, and the documentation on the Wiki
that I can see doesn't go into any discussion on the design decisions.
When I first looked at the "mapping" capabilities of SDL_Controller, I
thought, HEY!, this was a way to give names to each of the buttons/axes on
any device, so you can pass them through to the application/game and it
can present these names to the user when they are setting up their
controller configuration. Cool! Oh look, they already have a database of
these name mappings! Great!
However, the more I started looking at it, I began to see that this is not
the case at all. It seems to be a way to turn the raw button/axis numbers
on a non-XInput device into an XInput control like "leftshoulder" or
"righty"?
So really, this is just a way to make every controller work like an XBox
controller (even if it doesn't have the same physical controls or the same
names on the buttons, etc.), and doesn't really address the issue of
mapping the names of the actual physical controls on a particular device
to the button/axis numbers normally received in SDL_Joystick calls?
I guess if you don't want your game/application to treat every device like
an XBox 360 Controller, then the SDL_Controller stuff is not for you?
How does Steam's controller API play into things? There is mention of
Steam here (and nowhere else I can find):
http://wiki.libsdl.org/CategoryGameController
It states:
"If you are running your game from Steam, the game controller mapping is
automatically provided for your game."
I'm not sure what that means. Steam controller mappings take a list of
"actions" defined for a game, and allow the developer and/or user to
configure which controls on their devices will invoke these actions. A
game using the controller API will see "actions" and not raw inputs... so
I'm not sure how the SDL_Controller stuff plays into this. Also, in order
to use the Steam controller API, you have to call functions in the Steam
runtime, and I'm not sure if SDL can/would be doing that, and it won't
provide an SDL_Controller mapping.
Any help regarding these concepts would be greatly appreciated!
Thanks,
Ed
Ed Phillips <***@udel.edu> University of Delaware (302) 831-6082
Systems Programmer IV, Network and Systems Services
I think I'm missing something when it comes to the basic reasoning behind
the design of the SDL_Controller stuff, and the documentation on the Wiki
that I can see doesn't go into any discussion on the design decisions.
When I first looked at the "mapping" capabilities of SDL_Controller, I
thought, HEY!, this was a way to give names to each of the buttons/axes on
any device, so you can pass them through to the application/game and it
can present these names to the user when they are setting up their
controller configuration. Cool! Oh look, they already have a database of
these name mappings! Great!
However, the more I started looking at it, I began to see that this is not
the case at all. It seems to be a way to turn the raw button/axis numbers
on a non-XInput device into an XInput control like "leftshoulder" or
"righty"?
So really, this is just a way to make every controller work like an XBox
controller (even if it doesn't have the same physical controls or the same
names on the buttons, etc.), and doesn't really address the issue of
mapping the names of the actual physical controls on a particular device
to the button/axis numbers normally received in SDL_Joystick calls?
I guess if you don't want your game/application to treat every device like
an XBox 360 Controller, then the SDL_Controller stuff is not for you?
How does Steam's controller API play into things? There is mention of
Steam here (and nowhere else I can find):
http://wiki.libsdl.org/CategoryGameController
It states:
"If you are running your game from Steam, the game controller mapping is
automatically provided for your game."
I'm not sure what that means. Steam controller mappings take a list of
"actions" defined for a game, and allow the developer and/or user to
configure which controls on their devices will invoke these actions. A
game using the controller API will see "actions" and not raw inputs... so
I'm not sure how the SDL_Controller stuff plays into this. Also, in order
to use the Steam controller API, you have to call functions in the Steam
runtime, and I'm not sure if SDL can/would be doing that, and it won't
provide an SDL_Controller mapping.
Any help regarding these concepts would be greatly appreciated!
Thanks,
Ed
Ed Phillips <***@udel.edu> University of Delaware (302) 831-6082
Systems Programmer IV, Network and Systems Services