Итак, около часа игры с разными библиотеками, и кажется, что OIS (и SDL ) просто распознает контроллер как джойстик и предоставляет мне все, что мне нужно.
Если вы устанавливаете OIS по ссылке выше и создаете / запускаете проект 'ConsoleTest', вы можете увидеть выходные данные контроллера в окне отладки.
Кроме того, вот перечисления, которые я использовал, которые соответствуют номерам осей / кнопок, производимых SDL (обратите внимание, не OIS, который я теперь решил не использовать, нумерации вполне могут быть одинаковыми). Обратите внимание, что триггерные кнопки не классифицируются как ось, и я уверен, что они должны быть (0-255 из памяти):
//Values SDL attributes to individual PS3 axes
enum EPS3RawAxesIndex
{
EPS3RawAxesIndex_LeftX = 0,
EPS3RawAxesIndex_LeftY = 1,
EPS3RawAxesIndex_RightX = 2,
EPS3RawAxesIndex_RightY = 3
};
//Values SDL attributes to individual PS3 controller buttons
enum EPS3RawButtonIndex
{
EPS3RawButtonIndex_Select = 0,
EPS3RawButtonIndex_JoyClickLeft = 1,
EPS3RawButtonIndex_JoyClickRight = 2,
EPS3RawButtonIndex_Start = 3,
EPS3RawButtonIndex_DpadUp = 4,
EPS3RawButtonIndex_DpadRight = 5,
EPS3RawButtonIndex_DpadDown = 6,
EPS3RawButtonIndex_DpadLeft = 7,
EPS3RawButtonIndex_TriggerLeft = 8,
EPS3RawButtonIndex_TriggerRight = 9,
EPS3RawButtonIndex_ShoulderLeft = 10,
EPS3RawButtonIndex_ShoulderRight = 11,
EPS3RawButtonIndex_Triangle = 12,
EPS3RawButtonIndex_Circle = 13,
EPS3RawButtonIndex_Cross = 14,
EPS3RawButtonIndex_Square = 15,
EPS3RawButtonIndex_PSButton = 16
};