Adopt header changes for the kpad.h and wpad.h

This commit is contained in:
Maschell 2018-06-19 17:39:20 +02:00
parent ae5fbd4f84
commit 7091552d3d
6 changed files with 48 additions and 36 deletions

View File

@ -29,6 +29,8 @@
#include <string> #include <string>
#include <padscore/wpad.h>
#include <vpad/input.h>
#include "ControllerPatcherDefs.h" #include "ControllerPatcherDefs.h"
class ControllerPatcher{ class ControllerPatcher{
@ -235,13 +237,15 @@ class ControllerPatcher{
static CONTROLLER_PATCHER_RESULT_OR_ERROR resetCallbackData(); static CONTROLLER_PATCHER_RESULT_OR_ERROR resetCallbackData();
static CONTROLLER_PATCHER_RESULT_OR_ERROR setKPADConnectedCallback(s32 chan, wpad_connect_callback_t callback); static CONTROLLER_PATCHER_RESULT_OR_ERROR setKPADConnectedCallback(s32 chan, WPADConnectCallback callback);
static CONTROLLER_PATCHER_RESULT_OR_ERROR setKPADExtensionCallback(s32 chan, wpad_connect_callback_t callback); static CONTROLLER_PATCHER_RESULT_OR_ERROR setKPADExtensionCallback(s32 chan, WPADConnectCallback callback);
static CONTROLLER_PATCHER_RESULT_OR_ERROR setWPADConnectCallback(s32 chan, wpad_connect_callback_t callback); static CONTROLLER_PATCHER_RESULT_OR_ERROR setWPADConnectCallback(s32 chan, WPADConnectCallback callback);
static CONTROLLER_PATCHER_RESULT_OR_ERROR handleCallbackData(bool button_pressed); static CONTROLLER_PATCHER_RESULT_OR_ERROR handleCallbackData(bool button_pressed);
static CONTROLLER_PATCHER_RESULT_OR_ERROR handleCallbackDataInternal(WPADChan chan);
}; };
#endif /* _CONTROLLER_PATCHER_H_ */ #endif /* _CONTROLLER_PATCHER_H_ */

View File

@ -887,7 +887,7 @@ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcher::setProControllerDataFromHI
KPADStatus * pro_buffer = (KPADStatus *) data; KPADStatus * pro_buffer = (KPADStatus *) data;
if((res = ControllerPatcherUtils::translateToPro(vpad_buffer,pro_buffer,&last_button_hold[chan])) < 0 ) return res; if((res = ControllerPatcherUtils::translateToPro(vpad_buffer,pro_buffer,&last_button_hold[chan])) < 0 ) return res;
} else if(mode == PRO_CONTROLLER_MODE_WPADReadData) { } else if(mode == PRO_CONTROLLER_MODE_WPADReadData) {
WPADReadData * pro_buffer = (WPADReadData *) data; WPADStatusProController * pro_buffer = (WPADStatusProController *) data;
if((res = ControllerPatcherUtils::translateToProWPADRead(vpad_buffer,pro_buffer)) < 0 ) return res; if((res = ControllerPatcherUtils::translateToProWPADRead(vpad_buffer,pro_buffer)) < 0 ) return res;
} }
for(std::vector<HID_Data *>::iterator it = data_list.begin(); it != data_list.end(); ++it) { for(std::vector<HID_Data *>::iterator it = data_list.begin(); it != data_list.end(); ++it) {

View File

@ -726,15 +726,15 @@ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::translateToPro(VPADSt
*lastButtonsPressesPRO = buttons_hold; *lastButtonsPressesPRO = buttons_hold;
pro_buffer->format = WPAD_FMT_PRO_CONTROLLER; pro_buffer->format = WPAD_FMT_PRO_CONTROLLER;
pro_buffer->wpad_error = 0x00; pro_buffer->error = 0x00;
pro_buffer->device_type = WPAD_EXT_PRO_CONTROLLER; pro_buffer->extensionType = WPAD_EXT_PRO_CONTROLLER;
pro_buffer->pro.wired = 1; pro_buffer->pro.wired = 1;
pro_buffer->pro.charging = 1; pro_buffer->pro.charging = 1;
return CONTROLLER_PATCHER_ERROR_NONE; return CONTROLLER_PATCHER_ERROR_NONE;
} }
CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::translateToProWPADRead(VPADStatus * vpad_buffer,WPADReadData * pro_buffer){ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::translateToProWPADRead(VPADStatus * vpad_buffer,WPADStatusProController * pro_buffer){
if(vpad_buffer == NULL || pro_buffer == NULL) return CONTROLLER_PATCHER_ERROR_NULL_POINTER; if(vpad_buffer == NULL || pro_buffer == NULL) return CONTROLLER_PATCHER_ERROR_NULL_POINTER;
s32 buttons_hold = 0; s32 buttons_hold = 0;
@ -779,9 +779,9 @@ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::translateToProWPADRea
pro_buffer->buttons = buttons_hold; pro_buffer->buttons = buttons_hold;
pro_buffer->fmt = WPAD_FMT_PRO_CONTROLLER; pro_buffer->dataFormat = WPAD_FMT_PRO_CONTROLLER;
pro_buffer->err = 0x00; pro_buffer->err = 0x00;
pro_buffer->dev = WPAD_EXT_PRO_CONTROLLER; pro_buffer->extensionType = WPAD_EXT_PRO_CONTROLLER;
return CONTROLLER_PATCHER_ERROR_NONE; return CONTROLLER_PATCHER_ERROR_NONE;
} }
@ -945,8 +945,16 @@ ControllerMappingPAD * ControllerPatcherUtils::getControllerMappingByType(UContr
CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::doSampling(u16 deviceslot,u8 padslot = 0,bool ignorePadSlot = false){ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::doSampling(u16 deviceslot,u8 padslot = 0,bool ignorePadSlot = false){
if(gSamplingCallback != NULL){ if(gSamplingCallback != NULL){
for(int i=0;i<4;i++){ doSamplingSingle(WPAD_CHAN_0, deviceslot, padslot, ignorePadSlot);
ControllerMappingPADInfo * padinfo = gProPadInfo[i]; doSamplingSingle(WPAD_CHAN_1, deviceslot, padslot, ignorePadSlot);
doSamplingSingle(WPAD_CHAN_2, deviceslot, padslot, ignorePadSlot);
doSamplingSingle(WPAD_CHAN_3, deviceslot, padslot, ignorePadSlot);
}
return CONTROLLER_PATCHER_ERROR_NONE;
}
CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::doSamplingSingle(WPADChan chan, u16 deviceslot,u8 padslot = 0,bool ignorePadSlot = false){
ControllerMappingPADInfo * padinfo = gProPadInfo[chan];
if(padinfo->active){ if(padinfo->active){
DeviceInfo device_info; DeviceInfo device_info;
@ -959,13 +967,11 @@ CONTROLLER_PATCHER_RESULT_OR_ERROR ControllerPatcherUtils::doSampling(u16 device
s32 real_pad = (padinfo->pad/(device_info.pad_count))*device_info.pad_count; s32 real_pad = (padinfo->pad/(device_info.pad_count))*device_info.pad_count;
if(real_pad == padslot && device_info.slotdata.deviceslot == deviceslot){ if(real_pad == padslot && device_info.slotdata.deviceslot == deviceslot){
if(ControllerPatcherUtils::checkActivePad(device_info.slotdata.hidmask,padinfo->pad)){ if(ControllerPatcherUtils::checkActivePad(device_info.slotdata.hidmask,padinfo->pad)){
gSamplingCallback(i); gSamplingCallback(chan);
} }
} }
}else{ }else{
gSamplingCallback(i); gSamplingCallback(chan);
}
}
} }
} }
} }

View File

@ -253,7 +253,7 @@ class ControllerPatcherUtils{
* *
*/ */
static CONTROLLER_PATCHER_RESULT_OR_ERROR translateToPro(VPADStatus * vpad_buffer, KPADStatus * pro_buffer, u32 * lastButtonsPressesPRO); static CONTROLLER_PATCHER_RESULT_OR_ERROR translateToPro(VPADStatus * vpad_buffer, KPADStatus * pro_buffer, u32 * lastButtonsPressesPRO);
static CONTROLLER_PATCHER_RESULT_OR_ERROR translateToProWPADRead(VPADStatus * vpad_buffer,WPADReadData * pro_buffer); static CONTROLLER_PATCHER_RESULT_OR_ERROR translateToProWPADRead(VPADStatus * vpad_buffer,WPADStatusProController * pro_buffer);
/** /**
\brief Checks if the value at the given device + CONTRPS slot equals the expected value. \brief Checks if the value at the given device + CONTRPS slot equals the expected value.
@ -314,6 +314,8 @@ class ControllerPatcherUtils{
static ControllerMappingPAD * getControllerMappingByType(UController_Type type); static ControllerMappingPAD * getControllerMappingByType(UController_Type type);
static CONTROLLER_PATCHER_RESULT_OR_ERROR doSampling(u16 deviceslot,u8 padslot,bool ignorePadSlot); static CONTROLLER_PATCHER_RESULT_OR_ERROR doSampling(u16 deviceslot,u8 padslot,bool ignorePadSlot);
static CONTROLLER_PATCHER_RESULT_OR_ERROR doSamplingSingle(WPADChan chan, u16 deviceslot, u8 padslot, bool ignorePadSlot);
}; };
#endif /* _CONTROLLER_PATCHER_UTIL_H_ */ #endif /* _CONTROLLER_PATCHER_UTIL_H_ */

View File

@ -59,10 +59,10 @@ u16 gNetworkController[gHIDMaxDevices][HID_MAX_PADS_COUNT][4] __attribute__((sec
s32 gHIDNetworkClientID __attribute__((section(".data"))) = 0; s32 gHIDNetworkClientID __attribute__((section(".data"))) = 0;
u8 gUsedProtocolVersion __attribute__((section(".data"))) = WIIU_CP_TCP_HANDSHAKE; u8 gUsedProtocolVersion __attribute__((section(".data"))) = WIIU_CP_TCP_HANDSHAKE;
wpad_connect_callback_t gWPADConnectCallback[4] __attribute__((section(".data"))); WPADConnectCallback gWPADConnectCallback[4] __attribute__((section(".data")));
wpad_connect_callback_t gKPADConnectCallback[4] __attribute__((section(".data"))); WPADConnectCallback gKPADConnectCallback[4] __attribute__((section(".data")));
wpad_extension_callback_t gExtensionCallback[4] __attribute__((section(".data"))); WPADExtensionCallback gExtensionCallback[4] __attribute__((section(".data")));
wpad_sampling_callback_t gSamplingCallback __attribute__((section(".data"))) = 0; WPADSamplingCallback gSamplingCallback __attribute__((section(".data"))) = 0;
u8 gCallbackCooldown __attribute__((section(".data"))) = 0; u8 gCallbackCooldown __attribute__((section(".data"))) = 0;
u8 gNetworkControllerActivated __attribute__((section(".data"))) = 1; u8 gNetworkControllerActivated __attribute__((section(".data"))) = 1;

View File

@ -62,10 +62,10 @@ extern s32 gHIDNetworkClientID;
extern u8 gUsedProtocolVersion; extern u8 gUsedProtocolVersion;
extern wpad_connect_callback_t gWPADConnectCallback[4]; extern WPADConnectCallback gWPADConnectCallback[4];
extern wpad_connect_callback_t gKPADConnectCallback[4]; extern WPADConnectCallback gKPADConnectCallback[4];
extern wpad_extension_callback_t gExtensionCallback[4]; extern WPADExtensionCallback gExtensionCallback[4];
extern wpad_sampling_callback_t gSamplingCallback; extern WPADSamplingCallback gSamplingCallback;
extern u8 gCallbackCooldown; extern u8 gCallbackCooldown;
extern u8 gGlobalRumbleActivated; extern u8 gGlobalRumbleActivated;
extern u8 gNetworkControllerActivated; extern u8 gNetworkControllerActivated;