bluetooth-mitm: change function signature of PackStickData

This commit is contained in:
ndeadly 2020-11-21 21:05:50 +01:00
parent 195c210863
commit f9a19662b3
17 changed files with 45 additions and 45 deletions

View file

@ -75,11 +75,11 @@ namespace ams::controller {
}
void Dualshock4Controller::HandleInputReport0x01(const Dualshock4ReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.right_stick.y)) & 0xfff
);
@ -101,13 +101,13 @@ namespace ams::controller {
m_battery = static_cast<uint8_t>(8 * (battery_level + 1) / 10) & 0x0e;
this->PackStickData(&m_left_stick,
static_cast<uint16_t>(stick_scale_factor * src->input0x11.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x11.left_stick.y)) & 0xfff
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
static_cast<uint16_t>(stick_scale_factor * src->input0x11.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x11.right_stick.y)) & 0xfff
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.right_stick.y)) & 0xfff
);
this->MapButtons(&src->input0x11.buttons);

View file

@ -36,8 +36,8 @@ namespace ams::controller {
void EmulatedSwitchController::ClearControllerState(void) {
std::memset(&m_buttons, 0, sizeof(m_buttons));
this->PackStickData(&m_left_stick, STICK_ZERO, STICK_ZERO);
this->PackStickData(&m_right_stick, STICK_ZERO, STICK_ZERO);
m_left_stick = this->PackStickData(STICK_ZERO, STICK_ZERO);
m_right_stick = this->PackStickData(STICK_ZERO, STICK_ZERO);
std::memset(&m_motion_data, 0, sizeof(m_motion_data));
}

View file

@ -35,8 +35,8 @@ namespace ams::controller {
virtual Result SetVibration(void) { return ams::ResultSuccess(); };
virtual Result SetPlayerLed(uint8_t led_mask) { return ams::ResultSuccess(); };
constexpr void PackStickData(SwitchStickData *stick, uint16_t x, uint16_t y) {
*stick = (SwitchStickData){
constexpr SwitchStickData PackStickData(uint16_t x, uint16_t y) {
return {
static_cast<uint8_t>(x & 0xff),
static_cast<uint8_t>((x >> 8) | ((y & 0xff) << 4)),
static_cast<uint8_t>((y >> 4) & 0xff)

View file

@ -45,11 +45,11 @@ namespace ams::controller {
}
void GamesirController::HandleInputReport0xc4(const GamesirReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0xc4.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0xc4.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0xc4.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0xc4.right_stick.y)) & 0xfff
);

View file

@ -47,11 +47,11 @@ namespace ams::controller {
}
void GamestickController::HandleInputReport0x03(const GamestickReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x03.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x03.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x03.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x03.right_stick.y)) & 0xfff
);

View file

@ -46,11 +46,11 @@ namespace ams::controller {
}
void GemboxController::HandleInputReport0x07(const GemboxReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * -static_cast<int8_t>(~src->input0x07.left_stick.x + 1) + 0x7ff) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX + static_cast<int8_t>(~src->input0x07.left_stick.y + 1)) + 0x7ff) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * -static_cast<int8_t>(~src->input0x07.right_stick.x + 1) + 0x7ff) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX + static_cast<int8_t>(~src->input0x07.right_stick.y + 1)) + 0x7ff) & 0xfff
);

View file

@ -45,11 +45,11 @@ namespace ams::controller {
}
void IpegaController::HandleInputReport0x07(const IpegaReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x07.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x07.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x07.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x07.right_stick.y)) & 0xfff
);

View file

@ -41,11 +41,11 @@ namespace ams::controller {
}
void MadCatzController::HandleInputReport0x01(const MadCatzReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.right_stick.y)) & 0xfff
);

View file

@ -41,11 +41,11 @@ namespace ams::controller {
}
void MocuteController::HandleInputReport0x01(const MocuteReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.right_stick.y)) & 0xfff
);
@ -81,11 +81,11 @@ namespace ams::controller {
}
void MocuteController::HandleInputReport0x04(const MocuteReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x04.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x04.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x04.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x04.right_stick.y)) & 0xfff
);

View file

@ -41,11 +41,11 @@ namespace ams::controller {
}
void NvidiaShieldController::HandleInputReport0x01(const NvidiaShieldReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x01.right_stick.y)) & 0xfff
);

View file

@ -45,11 +45,11 @@ namespace ams::controller {
}
void OuyaController::HandleInputReport0x07(const OuyaReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x07.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x07.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x07.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x07.right_stick.y)) & 0xfff
);

View file

@ -40,11 +40,11 @@ namespace ams::controller {
void PowerAController::HandleInputReport0x03(const PowerAReportData *src) {
m_battery = src->input0x03.battery / 52 << 1;
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x03.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x03.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x03.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x03.right_stick.y)) & 0xfff
);

View file

@ -38,11 +38,11 @@ namespace ams::controller {
}
void RazerController::HandleInputReport0x01(const RazerReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x01.right_stick.y)) & 0xfff
);

View file

@ -38,11 +38,11 @@ namespace ams::controller {
}
void SteelseriesController::HandleInputReport0x01(const SteelseriesReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * -static_cast<int8_t>(~src->input0x01.left_stick.x + 1) + 0x7ff) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX + static_cast<int8_t>(~src->input0x01.left_stick.y + 1)) + 0x7ff) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * -static_cast<int8_t>(~src->input0x01.right_stick.x + 1) + 0x7ff) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX + static_cast<int8_t>(~src->input0x01.right_stick.y + 1)) + 0x7ff) & 0xfff
);

View file

@ -221,7 +221,7 @@ namespace ams::controller {
void WiiController::MapNunchuckExtension(const uint8_t ext[]) {
auto extension = reinterpret_cast<const WiiNunchuckExtensionData *>(ext);
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
std::clamp<uint16_t>(static_cast<uint16_t>(nunchuck_stick_scale_factor * (extension->stick_x - 0x80) + STICK_ZERO), 0, 0xfff),
std::clamp<uint16_t>(static_cast<uint16_t>(nunchuck_stick_scale_factor * (extension->stick_y - 0x80) + STICK_ZERO), 0, 0xfff)
);
@ -231,11 +231,11 @@ namespace ams::controller {
}
void WiiController::MapClassicControllerExtension(const uint8_t ext[]) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(left_stick_scale_factor * ((ext[0] & 0x3f) - 0x20) + STICK_ZERO) & 0xfff,
static_cast<uint16_t>(left_stick_scale_factor * ((ext[1] & 0x3f) - 0x20) + STICK_ZERO) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(right_stick_scale_factor * ((((ext[0] >> 3) & 0x18) | ((ext[1] >> 5) & 0x06) | ((ext[2] >> 7) & 0x01)) - 0x10) + STICK_ZERO) & 0xfff,
static_cast<uint16_t>(right_stick_scale_factor * ((ext[2] & 0x1f) - 0x10) + STICK_ZERO) & 0xfff
);
@ -266,11 +266,11 @@ namespace ams::controller {
void WiiController::MapWiiUProControllerExtension(const uint8_t ext[]) {
auto extension = reinterpret_cast<const WiiUProExtensionData *>(ext);
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
std::clamp<uint16_t>(((wiiu_scale_factor * (extension->left_stick_x - STICK_ZERO))) + STICK_ZERO, 0, 0xfff),
std::clamp<uint16_t>(((wiiu_scale_factor * (extension->left_stick_y - STICK_ZERO))) + STICK_ZERO, 0, 0xfff)
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
std::clamp<uint16_t>(((wiiu_scale_factor * (extension->right_stick_x - STICK_ZERO))) + STICK_ZERO, 0, 0xfff),
std::clamp<uint16_t>(((wiiu_scale_factor * (extension->right_stick_y - STICK_ZERO))) + STICK_ZERO, 0, 0xfff)
);

View file

@ -52,11 +52,11 @@ namespace ams::controller {
}
void XboxOneController::HandleInputReport0x01(const XboxOneReportData *src) {
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x01.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x01.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT16_MAX - src->input0x01.right_stick.y)) & 0xfff
);

View file

@ -50,11 +50,11 @@ namespace ams::controller {
void XiaomiController::HandleInputReport0x04(const XiaomiReportData *src) {
m_battery = src->input0x04.battery / 52 << 1;
this->PackStickData(&m_left_stick,
m_left_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x04.left_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x04.left_stick.y)) & 0xfff
);
this->PackStickData(&m_right_stick,
m_right_stick = this->PackStickData(
static_cast<uint16_t>(stick_scale_factor * src->input0x04.right_stick.x) & 0xfff,
static_cast<uint16_t>(stick_scale_factor * (UINT8_MAX - src->input0x04.right_stick.y)) & 0xfff
);