|
|
|
@ -70,33 +70,9 @@ uint16_t lastMidClick = 0; // Stops scrollwheel from being read if it was press |
|
|
|
|
uint8_t OptLowPin = OPT_ENC1; |
|
|
|
|
bool debug_encoder = false; |
|
|
|
|
|
|
|
|
|
__attribute__((weak)) void process_wheel_user(report_mouse_t* mouse_report, int16_t h, int16_t v) { |
|
|
|
|
// There's no scroller on this device.
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
__attribute__((weak)) void process_wheel(report_mouse_t* mouse_report) { |
|
|
|
|
// There's no scroller on this device.
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
__attribute__((weak)) void process_mouse_user(report_mouse_t* mouse_report, int16_t x, int16_t y) { |
|
|
|
|
// x and y are swapped
|
|
|
|
|
// the sensor is rotated
|
|
|
|
|
// by 90 degrees
|
|
|
|
|
int16_t temp = x; |
|
|
|
|
x = y; |
|
|
|
|
y = temp; |
|
|
|
|
|
|
|
|
|
// Apply delta-X and delta-Y transformations.
|
|
|
|
|
float xt = (float) x * ADNS_X_TRANSFORM; |
|
|
|
|
float yt = (float) y * ADNS_Y_TRANSFORM; |
|
|
|
|
|
|
|
|
|
int16_t xti = xt; |
|
|
|
|
int16_t yti = yt; |
|
|
|
|
|
|
|
|
|
mouse_report->x = xti; |
|
|
|
|
mouse_report->y = yti; |
|
|
|
|
mouse_report->x = x; |
|
|
|
|
mouse_report->y = y; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
__attribute__((weak)) void process_mouse(report_mouse_t* mouse_report) { |
|
|
|
@ -106,7 +82,17 @@ __attribute__((weak)) void process_mouse(report_mouse_t* mouse_report) { |
|
|
|
|
if (debug_mouse) |
|
|
|
|
dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); |
|
|
|
|
|
|
|
|
|
process_mouse_user(mouse_report, data.dx, data.dy); |
|
|
|
|
// Apply delta-X and delta-Y transformations.
|
|
|
|
|
// x and y are swapped
|
|
|
|
|
// the sensor is rotated
|
|
|
|
|
// by 90 degrees
|
|
|
|
|
float xt = (float) data.dy * ADNS_X_TRANSFORM; |
|
|
|
|
float yt = (float) data.dx * ADNS_Y_TRANSFORM; |
|
|
|
|
|
|
|
|
|
int16_t xti = (int16_t)xt; |
|
|
|
|
int16_t yti = (int16_t)yt; |
|
|
|
|
|
|
|
|
|
process_mouse_user(mouse_report, xti, yti); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -182,7 +168,6 @@ void pointing_device_init(void) { |
|
|
|
|
|
|
|
|
|
void pointing_device_task(void) { |
|
|
|
|
report_mouse_t mouse_report = pointing_device_get_report(); |
|
|
|
|
process_wheel(&mouse_report); |
|
|
|
|
process_mouse(&mouse_report); |
|
|
|
|
pointing_device_set_report(mouse_report); |
|
|
|
|
pointing_device_send(); |
|
|
|
|