Remove the last use of accelerometer axis events (calibration)

This commit is contained in:
Henrik Rydgård 2023-09-27 11:29:42 +02:00
parent 8baae83136
commit 3b004e7a4b
4 changed files with 12 additions and 16 deletions

View File

@ -19,6 +19,12 @@ static u32 tiltButtonsDown = 0;
float rawTiltAnalogX;
float rawTiltAnalogY;
float g_currentYAngle = 0.0f;
float GetCurrentYAngle() {
return g_currentYAngle;
}
// These functions generate tilt events given the current Tilt amount,
// and the deadzone radius.
void GenerateAnalogStickEvent(float analogX, float analogY);
@ -73,6 +79,7 @@ void ProcessTilt(bool landscape, float calibrationAngle, float x, float y, float
Lin::Vec3 down = Lin::Vec3(x, y, z).normalized();
float angleAroundX = atan2(down.z, down.y);
g_currentYAngle = angleAroundX; // TODO: Should smooth this out over time a bit.
float yAngle = angleAroundX - calibrationAngle;
float xAngle = asinf(down.x);

View File

@ -1,5 +1,7 @@
#pragma once
#include "Common/Math/lin/vec3.h"
namespace TiltEventProcessor {
// generates a tilt in the correct coordinate system based on
@ -7,6 +9,8 @@ namespace TiltEventProcessor {
void ProcessTilt(bool landscape, const float calibrationAngle, float x, float y, float z, bool invertX, bool invertY, float xSensitivity, float ySensitivity);
void ResetTiltEvents();
float GetCurrentYAngle();
// Lets you preview the amount of tilt in TiltAnalogSettingsScreen.
extern float rawTiltAnalogX;
extern float rawTiltAnalogY;

View File

@ -137,22 +137,8 @@ void TiltAnalogSettingsScreen::CreateViews() {
settings->Add(new Choice(di->T("Back")))->OnClick.Handle<UIScreen>(this, &UIScreen::OnBack);
}
void TiltAnalogSettingsScreen::axis(const AxisInput &axis) {
UIDialogScreenWithGameBackground::axis(axis);
if (axis.deviceId == DEVICE_ID_ACCELEROMETER) {
switch (axis.axisId) {
case JOYSTICK_AXIS_ACCELEROMETER_X: down_.x = axis.value; break;
case JOYSTICK_AXIS_ACCELEROMETER_Y: down_.y = axis.value; break;
case JOYSTICK_AXIS_ACCELEROMETER_Z: down_.z = axis.value; break;
default: break;
}
}
}
UI::EventReturn TiltAnalogSettingsScreen::OnCalibrate(UI::EventParams &e) {
Lin::Vec3 down = down_.normalized();
g_Config.fTiltBaseAngleY = atan2(down.z, down.x);
g_Config.fTiltBaseAngleY = TiltEventProcessor::GetCurrentYAngle();
return UI::EVENT_DONE;
}

View File

@ -29,7 +29,6 @@ public:
TiltAnalogSettingsScreen(const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) {}
void CreateViews() override;
void axis(const AxisInput &axis) override;
void update() override;
const char *tag() const override { return "TiltAnalogSettings"; }