Utilizzo del controller PS3 per input su Mac OSX


16

Sono riuscito a trovare un driver USB per connettermi al controller PS3 in OSX e, come riportato qui , posso connettermi al controller tramite Bluetooth.

Ho verificato che l'ingresso funziona correttamente tramite Snes9x.

Comunque, questo è solo uno sfondo per la mia vera domanda. Esiste un modo per accedere all'HID PS3, tramite C ++, sul Mac? Sono relativamente nuovo allo sviluppo di C ++ su Mac usando XCode e Internet è stato deludente nella mia ricerca di una possibile libreria da usare.

Qualcuno ha qualche idea su come potrei accedere al pulsante del controller / stati degli assi nel codice, in modo da poterli trasferire alle mie mappe di input?


2
Né la chiusura né la cancellazione sono davvero appropriate in quanto è una domanda decente; dovresti essere in grado di pubblicare una risposta e accettarla un po 'più tardi. Sono sorpreso che ci sia un cancello di reputazione su questo. In caso contrario, prevedi di tornare a questa domanda quando avrai un po 'più di reputazione suppongo.

Risposte:


4

Quindi, circa un'ora di giocherellare e provare diverse librerie, e sembra che OIS (e SDL ) riconoscano il controller come un joystick e mi forniscono tutto ciò di cui ho bisogno.

Se si installa OIS dal collegamento sopra e si esegue / esegue il progetto "ConsoleTest", è possibile visualizzare l'output dal controller nella finestra di debug.


Inoltre, ecco le enumerazioni che ho usato per abbinare gli assi / i numeri dei pulsanti prodotti da SDL (nota non OIS, che ora ho deciso di non usare, le numerazioni potrebbero essere uguali). Si noti che i pulsanti di trigger non sono classificati come un asse, che sono abbastanza sicuro che dovrebbero essere (0-255 dalla memoria):

//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
};
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.