summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-07-27 17:26:44 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-07-27 17:38:32 +0200
commiteb902844946f0bda7da76cdb1e9aafae4881b63c (patch)
tree265bc25c7e143781c991aedb6a9c6094c89054f6 /protocol
parent0bfba7acc4e05e66c8ab448286fc51bc94d03a57 (diff)
serial_mouse: simplified clipping of X/Y/V/H changes below -127 using a MAX macro
Diffstat (limited to 'protocol')
-rw-r--r--protocol/serial_mouse_microsoft.c9
-rw-r--r--protocol/serial_mouse_mousesystems.c29
2 files changed, 20 insertions, 18 deletions
diff --git a/protocol/serial_mouse_microsoft.c b/protocol/serial_mouse_microsoft.c
index f83036a317..54fedae778 100644
--- a/protocol/serial_mouse_microsoft.c
+++ b/protocol/serial_mouse_microsoft.c
@@ -27,6 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "print.h"
#include "debug.h"
+#ifdef MAX
+#undef MAX
+#endif
+#define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
+
static void print_usb_data(const report_mouse_t *report);
void serial_mouse_task(void)
@@ -91,8 +96,8 @@ void serial_mouse_task(void)
report.y = ((buffer[0] << 4) & 0xC0) | buffer[2];
/* USB HID uses values from -127 to 127 only */
- report.x = report.x < -127 ? -127 : report.x;
- report.y = report.y < -127 ? -127 : report.y;
+ report.x = MAX(report.x, -127);
+ report.y = MAX(report.y, -127);
#if 0
if (!report.buttons && !report.x && !report.y) {
diff --git a/protocol/serial_mouse_mousesystems.c b/protocol/serial_mouse_mousesystems.c
index 36c67386f7..c4ddbb8452 100644
--- a/protocol/serial_mouse_mousesystems.c
+++ b/protocol/serial_mouse_mousesystems.c
@@ -27,6 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "print.h"
#include "debug.h"
+#ifdef MAX
+#undef MAX
+#endif
+#define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
+
//#define SERIAL_MOUSE_CENTER_SCROLL
static void print_usb_data(const report_mouse_t *report);
@@ -67,20 +72,16 @@ void serial_mouse_task(void)
#ifdef SERIAL_MOUSE_CENTER_SCROLL
if ((buffer[0] & 0x7) == 0x5 && (buffer[1] || buffer[2])) {
- report.h = (int8_t)buffer[1];
/* USB HID uses only values from -127 to 127 */
- report.h = report.h < -127 ? -127 : report.h;
- report.v = (int8_t)buffer[2];
- report.v = report.v < -127 ? -127 : report.v;
+ report.h = MAX((int8_t)buffer[1], -127);
+ report.v = MAX((int8_t)buffer[2], -127);
print_usb_data(&report);
host_mouse_send(&report);
if (buffer[3] || buffer[4]) {
- report.h = (int8_t)buffer[3];
- report.h = report.h < -127 ? -127 : report.h;
- report.v = (int8_t)buffer[4];
- report.v = report.v < -127 ? -127 : report.v;
+ report.h = MAX((int8_t)buffer[3], -127);
+ report.v = MAX((int8_t)buffer[4], -127);
print_usb_data(&report);
host_mouse_send(&report);
@@ -103,20 +104,16 @@ void serial_mouse_task(void)
if (!(buffer[0] & (1 << 0)))
report.buttons |= MOUSE_BTN2;
- report.x = (int8_t)buffer[1];
/* USB HID uses only values from -127 to 127 */
- report.x = report.x < -127 ? -127 : report.x;
- report.y = -(int8_t)buffer[2];
- report.y = report.y < -127 ? -127 : report.y;
+ report.x = MAX((int8_t)buffer[1], -127);
+ report.y = MAX(-(int8_t)buffer[2], -127);
print_usb_data(&report);
host_mouse_send(&report);
if (buffer[3] || buffer[4]) {
- report.x = (int8_t)buffer[3];
- report.x = report.x < -127 ? -127 : report.x;
- report.y = -(int8_t)buffer[4];
- report.y = report.y < -127 ? -127 : report.y;
+ report.x = MAX((int8_t)buffer[3], -127);
+ report.y = MAX(-(int8_t)buffer[4], -127);
print_usb_data(&report);
host_mouse_send(&report);