การใช้คอนโทรลเลอร์ PS3 สำหรับการป้อนข้อมูลใน Mac OSX


16

ฉันจัดการค้นหาไดรเวอร์ USBเพื่อเชื่อมต่อกับคอนโทรลเลอร์ PS3 ใน OSX และตามที่ได้รายงานไว้ที่นี่สามารถเชื่อมต่อกับคอนโทรลเลอร์ผ่านทางบลูทู ธ ได้

ฉันตรวจสอบแล้วว่าอินพุตทำงานอย่างถูกต้องผ่าน Snes9x

อย่างไรก็ตามนั่นเป็นเพียงพื้นหลังสำหรับคำถามที่แท้จริงของฉัน มีวิธีการเข้าถึง PS3 HID ผ่าน C ++ บน Mac หรือไม่? ฉันค่อนข้างใหม่ในการพัฒนา C ++ บน Mac โดยใช้ XCode และอินเทอร์เน็ตก็ผิดหวังในการค้นหาห้องสมุดที่จะใช้

ใครบ้างมีความคิดเกี่ยวกับวิธีที่ฉันสามารถเข้าถึงปุ่มควบคุม / แกนรัฐในรหัสเพื่อให้ฉันสามารถถ่ายโอนไปยังแผนที่อินพุตของฉันได้อย่างไร


2
การปิดหรือการลบไม่เหมาะสมจริง ๆ เพราะเป็นคำถามที่ดี คุณควรจะสามารถโพสต์คำตอบและตอบได้ในภายหลัง ฉันประหลาดใจที่มีประตูชื่อเสียงในเรื่องนั้น ถ้าไม่ก็วางแผนที่จะกลับมาที่คำถามนี้เมื่อคุณมีชื่อเสียงมากขึ้นฉันคิดว่า

คำตอบ:


4

ดังนั้นหนึ่งชั่วโมงหรือมากกว่านั้นที่เล่นซอและลองใช้ห้องสมุดที่แตกต่างกันและดูเหมือนว่า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
};
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.