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:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user