diff options
author | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 21:52:51 +0200 |
---|---|---|
committer | Ofer Plesser <plesserofer@gmail.com> | 2016-12-16 21:52:51 +0200 |
commit | 6a462c818cc35ad5a51576bee96077d9614b1a8d (patch) | |
tree | cda535a4e64bd0183b800b6abe87005c3f98a74f /tmk_core/protocol/ps2_mouse.h | |
parent | 6e7cfa83b9424061914793b02757fa4ec75b356b (diff) | |
parent | b8e13167c813b59ebd6f4484dccae37bde2bfdba (diff) |
Merge branch 'master' into feature/combos
Diffstat (limited to 'tmk_core/protocol/ps2_mouse.h')
-rw-r--r-- | tmk_core/protocol/ps2_mouse.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tmk_core/protocol/ps2_mouse.h b/tmk_core/protocol/ps2_mouse.h index e11c705fc6..3c93a46342 100644 --- a/tmk_core/protocol/ps2_mouse.h +++ b/tmk_core/protocol/ps2_mouse.h @@ -19,6 +19,53 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define PS2_MOUSE_H #include <stdbool.h> +#include "debug.h" + +#define PS2_MOUSE_SEND(command, message) \ +do { \ + uint8_t rcv = ps2_host_send(command); \ + if (debug_mouse) { \ + print((message)); \ + xprintf(" command: %X, result: %X, error: %X \n", command, rcv, ps2_error); \ + } \ +} while(0) + +#define PS2_MOUSE_SEND_SAFE(command, message) \ +do { \ + if (PS2_MOUSE_STREAM_MODE == ps2_mouse_mode) { \ + ps2_mouse_disable_data_reporting(); \ + } \ + PS2_MOUSE_SEND(command, message); \ + if (PS2_MOUSE_STREAM_MODE == ps2_mouse_mode) { \ + ps2_mouse_enable_data_reporting(); \ + } \ +} while(0) + +#define PS2_MOUSE_SET_SAFE(command, value, message) \ +do { \ + if (PS2_MOUSE_STREAM_MODE == ps2_mouse_mode) { \ + ps2_mouse_disable_data_reporting(); \ + } \ + PS2_MOUSE_SEND(command, message); \ + PS2_MOUSE_SEND(value, "Sending value"); \ + if (PS2_MOUSE_STREAM_MODE == ps2_mouse_mode) { \ + ps2_mouse_enable_data_reporting(); \ + } \ +} while(0) + +#define PS2_MOUSE_RECEIVE(message) \ +do { \ + uint8_t rcv = ps2_host_recv_response(); \ + if (debug_mouse) { \ + print((message)); \ + xprintf(" result: %X, error: %X \n", rcv, ps2_error); \ + } \ +} while(0) + +static enum ps2_mouse_mode_e { + PS2_MOUSE_STREAM_MODE, + PS2_MOUSE_REMOTE_MODE, +} ps2_mouse_mode = PS2_MOUSE_STREAM_MODE; /* * Data format: @@ -107,6 +154,8 @@ typedef enum ps2_mouse_sample_rate_e { void ps2_mouse_init(void); +void ps2_mouse_init_user(void); + void ps2_mouse_task(void); void ps2_mouse_disable_data_reporting(void); |