mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-08-10 00:52:16 +00:00
Allow the Misc button to work as Guide on emulated Xbox 360 controllers
It isn't physically present on Xbox 360 controllers, so we may as well use it for something.
This commit is contained in:
@@ -1532,7 +1532,7 @@ namespace platf {
|
||||
if (RIGHT_STICK & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_THUMBR, bf_new & RIGHT_STICK ? 1 : 0);
|
||||
if (LEFT_BUTTON & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_TL, bf_new & LEFT_BUTTON ? 1 : 0);
|
||||
if (RIGHT_BUTTON & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_TR, bf_new & RIGHT_BUTTON ? 1 : 0);
|
||||
if (HOME & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_MODE, bf_new & HOME ? 1 : 0);
|
||||
if ((HOME | MISC_BUTTON) & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_MODE, bf_new & (HOME | MISC_BUTTON) ? 1 : 0);
|
||||
if (A & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_SOUTH, bf_new & A ? 1 : 0);
|
||||
if (B & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_EAST, bf_new & B ? 1 : 0);
|
||||
if (X & bf) libevdev_uinput_write_event(uinput.get(), EV_KEY, BTN_NORTH, bf_new & X ? 1 : 0);
|
||||
|
||||
@@ -1231,21 +1231,21 @@ namespace platf {
|
||||
|
||||
auto flags = gamepad_state.buttonFlags;
|
||||
// clang-format off
|
||||
if(flags & DPAD_UP) buttons |= XUSB_GAMEPAD_DPAD_UP;
|
||||
if(flags & DPAD_DOWN) buttons |= XUSB_GAMEPAD_DPAD_DOWN;
|
||||
if(flags & DPAD_LEFT) buttons |= XUSB_GAMEPAD_DPAD_LEFT;
|
||||
if(flags & DPAD_RIGHT) buttons |= XUSB_GAMEPAD_DPAD_RIGHT;
|
||||
if(flags & START) buttons |= XUSB_GAMEPAD_START;
|
||||
if(flags & BACK) buttons |= XUSB_GAMEPAD_BACK;
|
||||
if(flags & LEFT_STICK) buttons |= XUSB_GAMEPAD_LEFT_THUMB;
|
||||
if(flags & RIGHT_STICK) buttons |= XUSB_GAMEPAD_RIGHT_THUMB;
|
||||
if(flags & LEFT_BUTTON) buttons |= XUSB_GAMEPAD_LEFT_SHOULDER;
|
||||
if(flags & RIGHT_BUTTON) buttons |= XUSB_GAMEPAD_RIGHT_SHOULDER;
|
||||
if(flags & HOME) buttons |= XUSB_GAMEPAD_GUIDE;
|
||||
if(flags & A) buttons |= XUSB_GAMEPAD_A;
|
||||
if(flags & B) buttons |= XUSB_GAMEPAD_B;
|
||||
if(flags & X) buttons |= XUSB_GAMEPAD_X;
|
||||
if(flags & Y) buttons |= XUSB_GAMEPAD_Y;
|
||||
if(flags & DPAD_UP) buttons |= XUSB_GAMEPAD_DPAD_UP;
|
||||
if(flags & DPAD_DOWN) buttons |= XUSB_GAMEPAD_DPAD_DOWN;
|
||||
if(flags & DPAD_LEFT) buttons |= XUSB_GAMEPAD_DPAD_LEFT;
|
||||
if(flags & DPAD_RIGHT) buttons |= XUSB_GAMEPAD_DPAD_RIGHT;
|
||||
if(flags & START) buttons |= XUSB_GAMEPAD_START;
|
||||
if(flags & BACK) buttons |= XUSB_GAMEPAD_BACK;
|
||||
if(flags & LEFT_STICK) buttons |= XUSB_GAMEPAD_LEFT_THUMB;
|
||||
if(flags & RIGHT_STICK) buttons |= XUSB_GAMEPAD_RIGHT_THUMB;
|
||||
if(flags & LEFT_BUTTON) buttons |= XUSB_GAMEPAD_LEFT_SHOULDER;
|
||||
if(flags & RIGHT_BUTTON) buttons |= XUSB_GAMEPAD_RIGHT_SHOULDER;
|
||||
if(flags & (HOME | MISC_BUTTON)) buttons |= XUSB_GAMEPAD_GUIDE;
|
||||
if(flags & A) buttons |= XUSB_GAMEPAD_A;
|
||||
if(flags & B) buttons |= XUSB_GAMEPAD_B;
|
||||
if(flags & X) buttons |= XUSB_GAMEPAD_X;
|
||||
if(flags & Y) buttons |= XUSB_GAMEPAD_Y;
|
||||
// clang-format on
|
||||
|
||||
return (XUSB_BUTTON) buttons;
|
||||
|
||||
Reference in New Issue
Block a user