Commit | Line | Data |
---|---|---|
ee132284 S |
1 | /* |
2 | Copyright 2017 Joshua Broekhuijsen <snipeye+qmk@gmail.com> | |
3 | ||
4 | This program is free software: you can redistribute it and/or modify | |
5 | it under the terms of the GNU General Public License as published by | |
6 | the Free Software Foundation, either version 2 of the License, or | |
7 | (at your option) any later version. | |
8 | ||
9 | This program is distributed in the hope that it will be useful, | |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | GNU General Public License for more details. | |
13 | ||
14 | You should have received a copy of the GNU General Public License | |
15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | */ | |
17 | ||
18 | #include <stdint.h> | |
19 | #include "report.h" | |
20 | #include "host.h" | |
21 | #include "timer.h" | |
22 | #include "print.h" | |
23 | #include "debug.h" | |
24 | #include "pointing_device.h" | |
25 | ||
26 | static report_mouse_t mouseReport = {}; | |
27 | ||
b624f32f | 28 | __attribute__((weak)) void pointing_device_init(void) { |
29 | // initialize device, if that needs to be done. | |
ee132284 S |
30 | } |
31 | ||
b624f32f | 32 | __attribute__((weak)) void pointing_device_send(void) { |
33 | // If you need to do other things, like debugging, this is the place to do it. | |
cfd118d1 | 34 | host_mouse_send(&mouseReport); |
b624f32f | 35 | // send it and 0 it out except for buttons, so those stay until they are explicity over-ridden using update_pointing_device |
36 | mouseReport.x = 0; | |
37 | mouseReport.y = 0; | |
38 | mouseReport.v = 0; | |
39 | mouseReport.h = 0; | |
ee132284 S |
40 | } |
41 | ||
b624f32f | 42 | __attribute__((weak)) void pointing_device_task(void) { |
43 | // gather info and put it in: | |
44 | // mouseReport.x = 127 max -127 min | |
45 | // mouseReport.y = 127 max -127 min | |
46 | // mouseReport.v = 127 max -127 min (scroll vertical) | |
47 | // mouseReport.h = 127 max -127 min (scroll horizontal) | |
48 | // mouseReport.buttons = 0x1F (decimal 31, binary 00011111) max (bitmask for mouse buttons 1-5, 1 is rightmost, 5 is leftmost) 0x00 min | |
49 | // send the report | |
ee132284 S |
50 | pointing_device_send(); |
51 | } | |
52 | ||
b624f32f | 53 | report_mouse_t pointing_device_get_report(void) { return mouseReport; } |
ee132284 | 54 | |
b624f32f | 55 | void pointing_device_set_report(report_mouse_t newMouseReport) { mouseReport = newMouseReport; } |