DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position.

This commit is contained in:
Jordan Woyak
2025-05-29 23:28:16 -05:00
parent fa9f71e482
commit 6a0963908d
4 changed files with 45 additions and 19 deletions

View File

@ -5,6 +5,7 @@
#include <algorithm>
#include <chrono>
#include <cmath>
#include <ranges>
#include <string>
#include <vector>
@ -277,6 +278,16 @@ bool CalibrationBuilder::IsCalibrationDataSensible() const
return stats.StandardDeviation() < REASONABLE_DEVIATION;
}
bool CalibrationBuilder::IsComplete() const
{
if (!IsCalibrationDataSensible())
return false;
const auto half_calibration =
0.5 * GetCalibrationRadiusAtAngle(std::atan2(m_prev_point.y, m_prev_point.x) + MathUtil::TAU);
return m_prev_point.LengthSquared() < (half_calibration * half_calibration);
}
ControlState CalibrationBuilder::GetCalibrationRadiusAtAngle(double angle) const
{
return ControllerEmu::ReshapableInput::GetCalibrationDataRadiusAtAngle(m_calibration_data, angle);