Tak więc, około godziny zabawy i próbowania różnych bibliotek, i wydaje się, że OIS (i SDL ) po prostu rozpoznaje kontroler jako joystick i zapewnia mi wszystko, czego potrzebuję.
Jeśli zainstalujesz OIS z powyższego łącza i utworzysz / uruchomisz projekt „ConsoleTest”, możesz wyświetlić dane wyjściowe kontrolera w oknie debugowania.
Dodatkowo, oto wyliczenia, których używałem w tym dopasowaniu do numerów osi / przycisków produkowanych przez SDL (nie zauważam OIS, którego teraz postanowiłem nie używać, numeracje mogą być takie same). Zauważ, że przyciski wyzwalające nie są klasyfikowane jako oś, co jestem pewien, że powinny (0-255 z pamięci):
//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
};