Sử dụng bộ điều khiển PS3 cho đầu vào trên Mac OSX


16

Tôi đã tìm được trình điều khiển USB để kết nối với bộ điều khiển PS3 trong OSX và như được báo cáo ở đây , có thể kết nối với bộ điều khiển qua Bluetooth.

Tôi đã xác minh rằng đầu vào đang hoạt động bình thường qua Snes9x.

Dù sao, đó chỉ là nền tảng cho câu hỏi thực tế của tôi . Có cách nào để truy cập PS3 HID, thông qua C ++, trên Mac không? Tôi còn khá mới đối với việc phát triển C ++ trên Mac bằng XCode và internet đã gây thất vọng khi tôi tìm kiếm một thư viện có thể sử dụng.

Có ai có bất kỳ ý tưởng nào về cách tôi có thể truy cập vào trạng thái nút / trục của bộ điều khiển trong mã, vì vậy tôi có thể chuyển chúng sang bản đồ đầu vào của mình không?


2
Không phải đóng hay xóa là thực sự thích hợp vì đó là một câu hỏi hay; bạn sẽ có thể gửi câu trả lời cho nó và chấp nhận nó một lát sau. Tôi ngạc nhiên khi có một cổng danh tiếng về điều đó. Nếu không, chỉ có kế hoạch trở lại câu hỏi này khi bạn có một chút danh tiếng hơn tôi cho rằng.

Câu trả lời:


4

Vì vậy, mất khoảng một giờ để chơi và thử các thư viện khác nhau, và có vẻ như OIS (và SDL ) chỉ nhận ra bộ điều khiển là một phím điều khiển và cung cấp cho tôi mọi thứ tôi cần.

Nếu bạn cài đặt OIS từ liên kết ở trên và thực hiện / chạy dự án 'ConsoleTest', bạn có thể thấy đầu ra từ bộ điều khiển trong cửa sổ gỡ lỗi.


Ngoài ra, đây là enum tôi đã sử dụng khớp với số trục / số nút do SDL tạo ra (lưu ý không phải OIS, mà bây giờ tôi đã quyết định không sử dụng, số cũng có thể giống nhau). Lưu ý rằng các nút kích hoạt không được phân loại là một trục, mà tôi khá chắc chắn rằng chúng phải là (0-255 từ bộ nhớ):

//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
};
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.