WiimoteReal: Check for error before discarding report

This commit is contained in:
OatmealDome 2021-08-09 21:29:50 -04:00
parent 25c85d827a
commit fba8bfe6a6

View File

@ -281,6 +281,14 @@ void Wiimote::Read()
Report rpt(MAX_PAYLOAD); Report rpt(MAX_PAYLOAD);
auto const result = IORead(rpt.data()); auto const result = IORead(rpt.data());
if (0 == result)
{
ERROR_LOG_FMT(WIIMOTE, "Wiimote::IORead failed. Disconnecting Wii Remote {}.", m_index + 1);
DisconnectInternal();
return;
}
// Drop the report if not connected. // Drop the report if not connected.
if (!m_is_linked) if (!m_is_linked)
return; return;
@ -298,11 +306,6 @@ void Wiimote::Read()
rpt.resize(result); rpt.resize(result);
m_read_reports.Push(std::move(rpt)); m_read_reports.Push(std::move(rpt));
} }
else if (0 == result)
{
ERROR_LOG_FMT(WIIMOTE, "Wiimote::IORead failed. Disconnecting Wii Remote {}.", m_index + 1);
DisconnectInternal();
}
} }
bool Wiimote::Write() bool Wiimote::Write()