Używanie kontrolera PS3 do wprowadzania danych w Mac OSX

16

Udało mi się znaleźć sterownik USB do połączenia ze sterownikiem PS3 w OSX, i jak tu zgłoszono , mogę połączyć się ze sterownikiem przez Bluetooth.

Sprawdziłem, czy dane wejściowe działają poprawnie przez Snes9x.

W każdym razie to tylko tło mojego aktualnego pytania. Czy jest jakiś sposób na dostęp do PS3 HID za pośrednictwem C ++ na Macu? Jestem stosunkowo nowy w rozwoju C ++ na Macu za pomocą XCode, a Internet rozczarowuje moimi poszukiwaniami biblioteki, która mogłaby być użyta.

Czy ktoś ma jakieś pomysły, w jaki sposób mogę uzyskać dostęp do stanów przycisku / osi kontrolera w kodzie, więc mogę przenieść je na moje mapy wprowadzania?

Jack Smith
źródło
2
Ani zamknięcie, ani usunięcie nie jest tak naprawdę właściwe, ponieważ jest to przyzwoite pytanie; powinieneś być w stanie opublikować odpowiedź na nią i zaakceptować ją chwilę później. Dziwi mnie, że jest na tym brama reputacji. Jeśli nie, po prostu planuj wrócić do tego pytania, jeśli masz nieco lepszą reputację.

Odpowiedzi:

4

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
};
Jack Smith
źródło