mirror of
https://github.com/wiiu-env/ScreenshotWUPS.git
synced 2024-11-22 14:39:14 +01:00
Fix Pro Controller support of WUPSConfigItemButtonCombo
This commit is contained in:
parent
0bd1feb1ff
commit
bf8867a107
@ -106,8 +106,8 @@ bool WUPSConfigItemButtonCombo_callCallback(void *context) {
|
|||||||
void checkForHold(ConfigItemButtonCombo *item) {
|
void checkForHold(ConfigItemButtonCombo *item) {
|
||||||
uint32_t lastHold = 0;
|
uint32_t lastHold = 0;
|
||||||
uint32_t holdFor = 0;
|
uint32_t holdFor = 0;
|
||||||
uint32_t holdForTarget = item->holdDurationInMs >> 3;
|
uint32_t holdForTarget = item->holdDurationInMs >> 4;
|
||||||
uint32_t holdAbortTarget = item->abortButtonHoldDurationInMs >> 3;
|
uint32_t holdAbortTarget = item->abortButtonHoldDurationInMs >> 4;
|
||||||
|
|
||||||
auto mask = VPAD_BUTTON_A | VPAD_BUTTON_B | VPAD_BUTTON_X | VPAD_BUTTON_Y | VPAD_BUTTON_L | VPAD_BUTTON_R |
|
auto mask = VPAD_BUTTON_A | VPAD_BUTTON_B | VPAD_BUTTON_X | VPAD_BUTTON_Y | VPAD_BUTTON_L | VPAD_BUTTON_R |
|
||||||
VPAD_BUTTON_ZL | VPAD_BUTTON_ZR | VPAD_BUTTON_UP | VPAD_BUTTON_DOWN | VPAD_BUTTON_LEFT | VPAD_BUTTON_RIGHT |
|
VPAD_BUTTON_ZL | VPAD_BUTTON_ZR | VPAD_BUTTON_UP | VPAD_BUTTON_DOWN | VPAD_BUTTON_LEFT | VPAD_BUTTON_RIGHT |
|
||||||
@ -131,6 +131,8 @@ void checkForHold(ConfigItemButtonCombo *item) {
|
|||||||
if (kpad_error == KPAD_ERROR_OK && kpad_data.extensionType != 0xFF) {
|
if (kpad_error == KPAD_ERROR_OK && kpad_data.extensionType != 0xFF) {
|
||||||
if (kpad_data.extensionType == WPAD_EXT_CORE || kpad_data.extensionType == WPAD_EXT_NUNCHUK) {
|
if (kpad_data.extensionType == WPAD_EXT_CORE || kpad_data.extensionType == WPAD_EXT_NUNCHUK) {
|
||||||
buttonsHold |= remapWiiMoteButtons(kpad_data.hold);
|
buttonsHold |= remapWiiMoteButtons(kpad_data.hold);
|
||||||
|
} else if (kpad_data.extensionType == WPAD_EXT_PRO_CONTROLLER) {
|
||||||
|
buttonsHold |= remapProButtons(kpad_data.pro.hold);
|
||||||
} else {
|
} else {
|
||||||
buttonsHold |= remapClassicButtons(kpad_data.classic.hold);
|
buttonsHold |= remapClassicButtons(kpad_data.classic.hold);
|
||||||
}
|
}
|
||||||
@ -157,7 +159,7 @@ void checkForHold(ConfigItemButtonCombo *item) {
|
|||||||
item->value = lastHold;
|
item->value = lastHold;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
OSSleepTicks(OSMillisecondsToTicks(8));
|
OSSleepTicks(OSMillisecondsToTicks(16));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,4 +214,61 @@ uint32_t remapClassicButtons(uint32_t buttons) {
|
|||||||
conv_buttons |= VPAD_BUTTON_L;
|
conv_buttons |= VPAD_BUTTON_L;
|
||||||
}
|
}
|
||||||
return conv_buttons;
|
return conv_buttons;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t remapProButtons(uint32_t buttons) {
|
||||||
|
uint32_t conv_buttons = 0;
|
||||||
|
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_LEFT) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_LEFT;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_RIGHT) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_RIGHT;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_DOWN) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_DOWN;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_UP) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_UP;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_PLUS) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_PLUS;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_X) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_X;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_Y) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_Y;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_B) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_B;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_A) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_A;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_MINUS) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_MINUS;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_HOME) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_HOME;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_TRIGGER_ZR) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_ZR;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_TRIGGER_ZL) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_ZL;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_TRIGGER_R) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_R;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_TRIGGER_L) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_L;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_STICK_L) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_STICK_L;
|
||||||
|
}
|
||||||
|
if (buttons & WPAD_PRO_BUTTON_STICK_R) {
|
||||||
|
conv_buttons |= VPAD_BUTTON_STICK_R;
|
||||||
|
}
|
||||||
|
return conv_buttons;
|
||||||
}
|
}
|
@ -10,4 +10,5 @@ uint32_t remapVPADtoClassic(uint32_t buttons);
|
|||||||
uint32_t remapVPADtoPro(uint32_t buttons);
|
uint32_t remapVPADtoPro(uint32_t buttons);
|
||||||
|
|
||||||
uint32_t remapWiiMoteButtons(uint32_t buttons);
|
uint32_t remapWiiMoteButtons(uint32_t buttons);
|
||||||
uint32_t remapClassicButtons(uint32_t buttons);
|
uint32_t remapClassicButtons(uint32_t buttons);
|
||||||
|
uint32_t remapProButtons(uint32_t buttons);
|
Loading…
Reference in New Issue
Block a user