Process the key inputs at a constant rate when moving the mouse, so the mouse speed is consistent

Fixes #99
This commit is contained in:
Kristian Sloth Lauszus
2018-04-08 21:18:56 +02:00
parent ac75d0ca8b
commit d2acfba659

View File

@@ -381,41 +381,50 @@ void UpdateUsbReports(void)
{ {
UsbReportUpdateCounter++; UsbReportUpdateCounter++;
if (Timer_GetElapsedTime(&lastUsbUpdateTime) > 100) { // Process the key inputs at a constant rate when moving the mouse, so the mouse speed is consistent
UsbBasicKeyboardReportEverSent = false; if (activeMouseStates[SerializedMouseAction_MoveUp] ||
UsbMediaKeyboardReportEverSent = false; activeMouseStates[SerializedMouseAction_MoveDown] ||
UsbSystemKeyboardReportEverSent = false; activeMouseStates[SerializedMouseAction_MoveLeft] ||
UsbMouseReportEverSentEverSent = false; activeMouseStates[SerializedMouseAction_MoveRight]) {
} if (Timer_GetElapsedTime(&lastUsbUpdateTime) < 10)
return;
} else {
if (Timer_GetElapsedTime(&lastUsbUpdateTime) > 100) {
UsbBasicKeyboardReportEverSent = false;
UsbMediaKeyboardReportEverSent = false;
UsbSystemKeyboardReportEverSent = false;
UsbMouseReportEverSentEverSent = false;
}
if (IsUsbBasicKeyboardReportSent) { if (IsUsbBasicKeyboardReportSent) {
UsbBasicKeyboardReportEverSent = true; UsbBasicKeyboardReportEverSent = true;
} }
if (IsUsbMediaKeyboardReportSent) { if (IsUsbMediaKeyboardReportSent) {
UsbMediaKeyboardReportEverSent = true; UsbMediaKeyboardReportEverSent = true;
} }
if (IsUsbSystemKeyboardReportSent) { if (IsUsbSystemKeyboardReportSent) {
UsbSystemKeyboardReportEverSent = true; UsbSystemKeyboardReportEverSent = true;
} }
if (IsUsbMouseReportSent) { if (IsUsbMouseReportSent) {
UsbMouseReportEverSentEverSent = true; UsbMouseReportEverSentEverSent = true;
} }
bool areUsbReportsSent = true; bool areUsbReportsSent = true;
if (UsbBasicKeyboardReportEverSent) { if (UsbBasicKeyboardReportEverSent) {
areUsbReportsSent &= IsUsbBasicKeyboardReportSent; areUsbReportsSent &= IsUsbBasicKeyboardReportSent;
} }
if (UsbMediaKeyboardReportEverSent) { if (UsbMediaKeyboardReportEverSent) {
areUsbReportsSent &= IsUsbMediaKeyboardReportSent; areUsbReportsSent &= IsUsbMediaKeyboardReportSent;
} }
if (UsbSystemKeyboardReportEverSent) { if (UsbSystemKeyboardReportEverSent) {
areUsbReportsSent &= IsUsbSystemKeyboardReportSent; areUsbReportsSent &= IsUsbSystemKeyboardReportSent;
} }
if (UsbMouseReportEverSentEverSent) { if (UsbMouseReportEverSentEverSent) {
areUsbReportsSent &= IsUsbMouseReportSent; areUsbReportsSent &= IsUsbMouseReportSent;
} }
if (!areUsbReportsSent) { if (!areUsbReportsSent) {
return; return;
}
} }
ResetActiveUsbBasicKeyboardReport(); ResetActiveUsbBasicKeyboardReport();