Mac OSX'te giriş için PS3 denetleyicisini kullanma


16

OSX'te PS3 denetleyicisine bağlanmak için bir USB sürücüsü bulmayı başardım ve burada bildirildiği gibi denetleyiciye Bluetooth üzerinden bağlanabilir.

Girişin Snes9x üzerinden düzgün çalıştığını doğruladım.

Her neyse, bu benim asıl sorumun arka planı . Mac'te C ++ ile PS3 HID'e erişmenin herhangi bir yolu var mı? XCode kullanarak Mac C ++ geliştirme nispeten yeniyim ve internet kullanmak için olası bir kitaplık için benim hayal kırıklığı olmuştur.

Koddaki denetleyici düğmesine / eksen durumlarına nasıl erişebileceğim konusunda herhangi bir fikrim var mı, böylece bunları giriş haritama aktarabilir miyim?


2
İyi bir soru olduğu için ne kapanmak ne de silmek gerçekten uygun; bir cevap gönderebilmeli ve biraz sonra kabul edebilmelisin. Bunun üzerinde bir itibar kapısı olduğuna şaşırdım. Değilse, sanırım biraz daha fazla itibarınız olduğunda bu soruya geri dönmeyi planlayın.

Yanıtlar:


4

Yani, bir saat kadar farklı kütüphaneleri denemek ve denemek, ve görünüşe göre OIS (ve SDL ) sadece kontrolörü bir joystick olarak tanıyor ve bana ihtiyacım olan her şeyi sağlıyor.

Yukarıdaki bağlantıdan OIS yüklerseniz ve 'ConsoleTest' projesini yapar / çalıştırırsanız, hata ayıklama penceresinde denetleyiciden çıktıyı görebilirsiniz.


Ayrıca, SDL tarafından üretilen eksenler / düğme numaraları ile eşleştiğim numaralar (şimdi kullanmayacağım karar verdim OIS değil, numaralandırmalar da aynı olabilir). Tetik düğmelerinin bir eksen olarak sınıflandırılmadığına dikkat edin, ki bunların olması gerektiğinden eminim (bellekten 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
};
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.