This commit is contained in:
kalaposfos13 2025-06-19 21:54:31 +02:00
parent f4653d40cf
commit 32edcd4301
2 changed files with 12 additions and 13 deletions

View File

@ -447,18 +447,18 @@ int PS4_SYSV_ABI scePadReadState(s32 handle, OrbisPadData* pData) {
// Only do this on handle 1 for now // Only do this on handle 1 for now
if (engine && handle == 1) { if (engine && handle == 1) {
auto now = std::chrono::steady_clock::now(); auto now = std::chrono::steady_clock::now();
float deltaTime = float deltaTime =
std::chrono::duration_cast<std::chrono::microseconds>(now - controller->GetLastUpdate()) std::chrono::duration_cast<std::chrono::microseconds>(now - controller->GetLastUpdate())
.count() / .count() /
1000000.0f; 1000000.0f;
controller->SetLastUpdate(now); controller->SetLastUpdate(now);
Libraries::Pad::OrbisFQuaternion lastOrientation = controller->GetLastOrientation(); Libraries::Pad::OrbisFQuaternion lastOrientation = controller->GetLastOrientation();
Libraries::Pad::OrbisFQuaternion outputOrientation = {0.0f, 0.0f, 0.0f, 1.0f}; Libraries::Pad::OrbisFQuaternion outputOrientation = {0.0f, 0.0f, 0.0f, 1.0f};
GameController::CalculateOrientation(pData->acceleration, pData->angularVelocity, deltaTime, GameController::CalculateOrientation(pData->acceleration, pData->angularVelocity, deltaTime,
lastOrientation, outputOrientation); lastOrientation, outputOrientation);
pData->orientation = outputOrientation; pData->orientation = outputOrientation;
controller->SetLastOrientation(outputOrientation); controller->SetLastOrientation(outputOrientation);
} }
pData->touchData.touchNum = pData->touchData.touchNum =
(state.touchpad[0].state ? 1 : 0) + (state.touchpad[1].state ? 1 : 0); (state.touchpad[0].state ? 1 : 0) + (state.touchpad[1].state ? 1 : 0);

View File

@ -3,8 +3,8 @@
#include <cmath> #include <cmath>
#include "common/types.h"
#include "common/assert.h" #include "common/assert.h"
#include "common/types.h"
#include "input/controller.h" #include "input/controller.h"
#include "input_mouse.h" #include "input_mouse.h"
@ -20,7 +20,7 @@ MouseMode mouse_mode = MouseMode::Off;
// Switches mouse to a set mode or turns mouse emulation off if it was already in that mode. // Switches mouse to a set mode or turns mouse emulation off if it was already in that mode.
// Returns whether the mode is turned on. // Returns whether the mode is turned on.
bool ToggleMouseModeTo(MouseMode m) { bool ToggleMouseModeTo(MouseMode m) {
if(mouse_mode == m) { if (mouse_mode == m) {
mouse_mode = MouseMode::Off; mouse_mode = MouseMode::Off;
} else { } else {
mouse_mode = m; mouse_mode = m;
@ -85,15 +85,14 @@ void EmulateGyro(GameController* controller, u32 interval) {
Uint32 MousePolling(void* param, Uint32 id, Uint32 interval) { Uint32 MousePolling(void* param, Uint32 id, Uint32 interval) {
auto* controller = (GameController*)param; auto* controller = (GameController*)param;
switch (mouse_mode) switch (mouse_mode) {
{
case MouseMode::Joystick: case MouseMode::Joystick:
EmulateJoystick(controller, interval); EmulateJoystick(controller, interval);
break; break;
case MouseMode::Gyro: case MouseMode::Gyro:
EmulateGyro(controller, interval); EmulateGyro(controller, interval);
break; break;
default: default:
break; break;
} }