mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-07-11 09:35:09 +02:00
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
#pragma once
|
|
|
|
#include "Common/CommonWindows.h"
|
|
#include "Windows/Hid/HidInputDevice.h"
|
|
|
|
enum PSDPadButton : u32 {
|
|
PS_DPAD_UP = 1, // These dpad ones are not real, we convert from hat switch format.
|
|
PS_DPAD_DOWN = 2,
|
|
PS_DPAD_LEFT = 4,
|
|
PS_DPAD_RIGHT = 8,
|
|
};
|
|
|
|
enum PSHIDButton : u32 {
|
|
PS_BTN_SQUARE = 16,
|
|
PS_BTN_CROSS = 32,
|
|
PS_BTN_TRIANGLE = 64,
|
|
PS_BTN_CIRCLE = 128,
|
|
|
|
PS_BTN_L1 = (1 << 8),
|
|
PS_BTN_R1 = (1 << 9),
|
|
PS_BTN_L2 = (1 << 10),
|
|
PS_BTN_R2 = (1 << 11),
|
|
PS_BTN_SHARE = (1 << 12),
|
|
PS_BTN_OPTIONS = (1 << 13),
|
|
PS_BTN_L3 = (1 << 14),
|
|
PS_BTN_R3 = (1 << 15),
|
|
PS_BTN_PS_BUTTON = (1 << 16),
|
|
PS_BTN_TOUCHPAD = (1 << 17),
|
|
};
|
|
|
|
inline u32 DecodePSHatSwitch(u8 dpad) {
|
|
u32 buttons = 0;
|
|
if (dpad == 0 || dpad == 1 || dpad == 7) {
|
|
buttons |= PS_DPAD_UP;
|
|
}
|
|
if (dpad == 1 || dpad == 2 || dpad == 3) {
|
|
buttons |= PS_DPAD_RIGHT;
|
|
}
|
|
if (dpad == 3 || dpad == 4 || dpad == 5) {
|
|
buttons |= PS_DPAD_DOWN;
|
|
}
|
|
if (dpad == 5 || dpad == 6 || dpad == 7) {
|
|
buttons |= PS_DPAD_LEFT;
|
|
}
|
|
return buttons;
|
|
}
|
|
|
|
bool InitializeDualShock(HANDLE handle, int outReportSize);
|
|
bool ShutdownDualShock(HANDLE handle, int outReportSize);
|
|
bool ReadDualShockInput(HANDLE handle, HIDControllerState *state, int inReportSize);
|
|
void GetPSButtonInputMappings(const ButtonInputMapping **mappings, size_t *size);
|