-
Since Xidi was designed around the xbox controller (or xinput in this case), and I was working around removing this limitation by allowing external programs to feed data to it (here) In Xidi/Include/Xidi/Internal/ControllerTypes.h Lines 91 to 112 in dd84968 And by adding extra dummy buttons in Lines 701 to 721 in dd84968 I was able to get up to 31 buttons to work using custom mappers defined in xidi.ini, trying to add more buttons results in this assertion error Xidi/Include/Xidi/Internal/ControllerTypes.h Lines 344 to 346 in dd84968 If those assertions are commented out, none of the buttons work. Is there any possible way to change this? One more thing, is the possibility to add more than one POV per virtual controller too difficult to implement? I didn't even poke around to find something related to this, is just something I was thinking because DirecInput supports it. Does something in |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Those assertions are related to a data structure size optimization I implemented so that all of the related structures could be passed around by value very efficiently. It's a low-level optimization that most likely makes no difference whatsoever for your use case. In files like Xidi/Include/Xidi/Internal/ControllerTypes.h Lines 204 to 212 in dd84968 At the very end of each declaration, you will see a colon and then a number. It should be safe to remove the colon and the number, so the above struct would look like this instead: struct
{
/// Number of axes in the virtual controller, also the number of elements of the axis type
/// array that are valid.
uint8_t numAxes;
/// Number of buttons present in the virtual controller.
uint8_t numButtons;
}; That makes it safe to ignore the assertions about not fitting into some number of bits. But you'll need to do that everywhere. This can result in some assertions related to data structure size constraint violations, but those are safe to comment out after you've made this change. As for multiple POVs, yes, that should also be possible. You would need to modify some data structures like |
Beta Was this translation helpful? Give feedback.
Those assertions are related to a data structure size optimization I implemented so that all of the related structures could be passed around by value very efficiently. It's a low-level optimization that most likely makes no difference whatsoever for your use case.
In files like
ControllerTypes.h
you will see some structures defined using bit-fields, like this:Xidi/Include/Xidi/Internal/ControllerTypes.h
Lines 204 to 212 in dd84968