The UHK now only sends out data when it changes

Fixes #72, fixes #84 and fixes #85
This commit is contained in:
Kristian Sloth Lauszus
2018-06-07 00:18:40 +02:00
parent e60a282742
commit 10985abcdb
9 changed files with 53 additions and 48 deletions

View File

@@ -20,25 +20,25 @@ void ResetActiveUsbMouseReport(void)
bzero(ActiveUsbMouseReport, USB_MOUSE_REPORT_LENGTH);
}
static volatile usb_status_t usbMouseAction(void)
usb_status_t usbMouseAction(void)
{
usb_mouse_report_t *mouseReport = getInactiveUsbMouseReport();
IsUsbMouseReportSent = true;
return USB_DeviceHidSend(UsbCompositeDevice.mouseHandle, USB_MOUSE_ENDPOINT_INDEX,
(uint8_t*)mouseReport, USB_MOUSE_REPORT_LENGTH);
usb_status_t status = kStatus_USB_Error;
if (!IsUsbMouseReportSent) {
status = USB_DeviceHidSend(
UsbCompositeDevice.mouseHandle, USB_MOUSE_ENDPOINT_INDEX,
(uint8_t*)getInactiveUsbMouseReport(), USB_MOUSE_REPORT_LENGTH);
IsUsbMouseReportSent = true;
UsbMouseActionCounter++;
}
return status;
}
usb_status_t UsbMouseCallback(class_handle_t handle, uint32_t event, void *param)
{
UsbMouseActionCounter++;
usb_status_t error = kStatus_USB_Error;
switch (event) {
case kUSB_DeviceHidEventSendResponse:
if (UsbCompositeDevice.attach) {
return usbMouseAction();
}
break;
case kUSB_DeviceHidEventGetReport:
case kUSB_DeviceHidEventSetReport:
case kUSB_DeviceHidEventRequestReportBuffer:
@@ -59,7 +59,7 @@ usb_status_t UsbMouseCallback(class_handle_t handle, uint32_t event, void *param
usb_status_t UsbMouseSetConfiguration(class_handle_t handle, uint8_t configuration)
{
if (USB_COMPOSITE_CONFIGURATION_INDEX == configuration) {
return usbMouseAction();
//return usbMouseAction();
}
return kStatus_USB_Error;
}
@@ -67,7 +67,7 @@ usb_status_t UsbMouseSetConfiguration(class_handle_t handle, uint8_t configurati
usb_status_t UsbMouseSetInterface(class_handle_t handle, uint8_t interface, uint8_t alternateSetting)
{
if (USB_MOUSE_INTERFACE_INDEX == interface) {
return usbMouseAction();
//return usbMouseAction();
}
return kStatus_USB_Error;
}