ControllerInterface/Wiimote: Provide fallback values for extensions with bad calibration data.

This commit is contained in:
Jordan Woyak
2020-07-04 22:19:26 -05:00
parent ed32a2a1fe
commit 5299e902aa
3 changed files with 114 additions and 10 deletions

View File

@ -46,6 +46,12 @@ private:
Unsupported,
};
enum class Checksum
{
Good,
Bad,
};
class MotionPlusState
{
public:
@ -70,7 +76,7 @@ private:
{
using CalibrationData = WiimoteEmu::Nunchuk::CalibrationData;
void SetCalibrationData(const CalibrationData&);
void SetCalibrationData(const CalibrationData&, Checksum);
void ProcessData(const WiimoteEmu::Nunchuk::DataFormat&);
Common::Vec2 stick = {};
@ -80,6 +86,8 @@ private:
struct Calibration
{
Calibration();
CalibrationData::AccelCalibration accel;
CalibrationData::StickCalibration stick;
};
@ -91,7 +99,7 @@ private:
{
using CalibrationData = WiimoteEmu::Classic::CalibrationData;
void SetCalibrationData(const CalibrationData&);
void SetCalibrationData(const CalibrationData&, Checksum);
void ProcessData(const WiimoteEmu::Classic::DataFormat&);
std::array<Common::Vec2, 2> sticks = {};
@ -101,6 +109,8 @@ private:
struct Calibration
{
Calibration();
CalibrationData::StickCalibration left_stick;
CalibrationData::StickCalibration right_stick;