X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/7184153e5dc68e134d64cb16a1096ba9f1957964..ee7bd5685e000b3a128069fd75d436c653ab54b2:/Demos/Mouse/Mouse.c diff --git a/Demos/Mouse/Mouse.c b/Demos/Mouse/Mouse.c index c4b7f55ad..c066d424a 100644 --- a/Demos/Mouse/Mouse.c +++ b/Demos/Mouse/Mouse.c @@ -337,8 +337,9 @@ void CreateMouseReport(USB_MouseReport_Data_t* ReportData) /** Sends the next HID report to the host, via the keyboard data endpoint. */ static inline void SendNextReport(void) { - USB_MouseReport_Data_t MouseReportData; - bool SendReport = true; + static USB_MouseReport_Data_t PrevMouseReportData; + USB_MouseReport_Data_t MouseReportData; + bool SendReport = true; /* Create the next mouse report for transmission to the host */ CreateMouseReport(&MouseReportData); @@ -354,10 +355,13 @@ static inline void SendNextReport(void) } else { - /* Idle period not elapsed, indicate that a report must not be sent */ - SendReport = false; + /* Idle period not elapsed, indicate that a report must not be sent unless the report has changed */ + SendReport = (memcmp(&PrevMouseReportData, &MouseReportData, sizeof(USB_MouseReport_Data_t)) != 0); } } + + /* Save the current report data for later comparison to check for changes */ + PrevMouseReportData = MouseReportData; /* Select the Mouse Report Endpoint */ Endpoint_SelectEndpoint(MOUSE_EPNUM);