From ce734dbd37dcca1936bf1c3f2f409bbf61f26086 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Thu, 2 Feb 2017 10:24:14 +0100 Subject: [PATCH] MouseWrapper: static-ification Mark most of the things static, to save a couple of bytes in program-space. Signed-off-by: Gergely Nagy --- src/MouseWrapper.cpp | 28 +++++++++++++--------------- src/MouseWrapper.h | 35 ++++++++++++++++------------------- 2 files changed, 29 insertions(+), 34 deletions(-) diff --git a/src/MouseWrapper.cpp b/src/MouseWrapper.cpp index a8e8eaaf..fb58547e 100644 --- a/src/MouseWrapper.cpp +++ b/src/MouseWrapper.cpp @@ -4,6 +4,13 @@ // #include "MouseWrapper.h" +uint16_t MouseWrapper_::next_width; +uint16_t MouseWrapper_::next_height; +uint16_t MouseWrapper_::section_top; +uint16_t MouseWrapper_::section_left; +boolean MouseWrapper_::is_warping; + +uint8_t MouseWrapper_::mouseActiveForCycles; MouseWrapper_::MouseWrapper_(void) { Mouse.begin(); @@ -20,17 +27,12 @@ void MouseWrapper_::release_button(uint8_t button) { Mouse.release(button); } - void MouseWrapper_::warp_jump(uint16_t left, uint16_t top, uint16_t height, uint16_t width) { uint16_t x_center = left + width/2; uint16_t y_center = top + height/2; - AbsoluteMouse.moveTo(x_center,y_center); + AbsoluteMouse.moveTo(x_center, y_center); } - - - - void MouseWrapper_::begin_warping() { section_left = WARP_ABS_LEFT; section_top = WARP_ABS_TOP; @@ -48,14 +50,12 @@ void MouseWrapper_::warp(uint8_t warp_cmd) { begin_warping(); } - - if ( warp_cmd & WARP_END) { + if (warp_cmd & WARP_END) { end_warping(); return; } - - next_width = next_width / 2; + next_width = next_width/2; next_height = next_height/2; if (warp_cmd & WARP_UP) { @@ -73,10 +73,8 @@ void MouseWrapper_::warp(uint8_t warp_cmd) { } warp_jump(section_left, section_top, next_height,next_width); - } - // cubic wave function based on code from FastLED uint8_t MouseWrapper_::acceleration(uint8_t cycles) { uint8_t i = cycles; @@ -92,14 +90,14 @@ uint8_t MouseWrapper_::acceleration(uint8_t cycles) { i = (( (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii))) / 2) + ACCELERATION_FLOOR; - if ( i > ACCELERATION_CEIL) { - i = ACCELERATION_CEIL; + if (i > ACCELERATION_CEIL) { + i = ACCELERATION_CEIL; } return i; } -void MouseWrapper_::move( int8_t x, int8_t y) { +void MouseWrapper_::move(int8_t x, int8_t y) { int16_t moveX =0; int16_t moveY = 0; if (x != 0 ) { diff --git a/src/MouseWrapper.h b/src/MouseWrapper.h index df2d98c8..6c9fff10 100644 --- a/src/MouseWrapper.h +++ b/src/MouseWrapper.h @@ -11,8 +11,6 @@ #define WARP_LEFT 8 #define WARP_RIGHT 16 - - // apparently, the mac discards 15% of the value space for mouse movement. // need to test this on other platforms @@ -29,28 +27,27 @@ #define ACCELERATION_FLOOR 2 #define ACCELERATION_CEIL 50 - class MouseWrapper_ { public: MouseWrapper_(void); - void move( int8_t x, int8_t y); - void warp(uint8_t warp_cmd); - void press_button(uint8_t button); - void release_button(uint8_t button); - uint8_t mouseActiveForCycles = 0; - private: - uint16_t next_width = 0; - uint16_t next_height = 0; - uint16_t section_top = 0; - uint16_t section_left = 0; - boolean is_warping = false; - - uint8_t acceleration (uint8_t cycles); - void begin_warping(); - void end_warping(); - void warp_jump(uint16_t left, uint16_t top, uint16_t height, uint16_t width); + static void move(int8_t x, int8_t y); + static void warp(uint8_t warp_cmd); + static void press_button(uint8_t button); + static void release_button(uint8_t button); + static uint8_t mouseActiveForCycles; + private: + static uint16_t next_width; + static uint16_t next_height; + static uint16_t section_top; + static uint16_t section_left; + static boolean is_warping; + + static uint8_t acceleration(uint8_t cycles); + static void begin_warping(); + static void end_warping(); + static void warp_jump(uint16_t left, uint16_t top, uint16_t height, uint16_t width); }; extern MouseWrapper_ MouseWrapper;