diff options
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/action.c | 18 | ||||
| -rw-r--r-- | tmk_core/common/keycode.h | 14 | ||||
| -rw-r--r-- | tmk_core/common/mousekey.c | 48 | ||||
| -rw-r--r-- | tmk_core/common/report.h | 5 |
4 files changed, 40 insertions, 45 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index a7432bae5..a3830abbf 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c | |||
| @@ -443,6 +443,15 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 443 | case KC_MS_BTN5: | 443 | case KC_MS_BTN5: |
| 444 | register_button(true, MOUSE_BTN5); | 444 | register_button(true, MOUSE_BTN5); |
| 445 | break; | 445 | break; |
| 446 | case KC_MS_BTN6: | ||
| 447 | register_button(true, MOUSE_BTN6); | ||
| 448 | break; | ||
| 449 | case KC_MS_BTN7: | ||
| 450 | register_button(true, MOUSE_BTN7); | ||
| 451 | break; | ||
| 452 | case KC_MS_BTN8: | ||
| 453 | register_button(true, MOUSE_BTN8); | ||
| 454 | break; | ||
| 446 | # endif | 455 | # endif |
| 447 | default: | 456 | default: |
| 448 | mousekey_send(); | 457 | mousekey_send(); |
| @@ -469,6 +478,15 @@ void process_action(keyrecord_t *record, action_t action) { | |||
| 469 | case KC_MS_BTN5: | 478 | case KC_MS_BTN5: |
| 470 | register_button(false, MOUSE_BTN5); | 479 | register_button(false, MOUSE_BTN5); |
| 471 | break; | 480 | break; |
| 481 | case KC_MS_BTN6: | ||
| 482 | register_button(false, MOUSE_BTN6); | ||
| 483 | break; | ||
| 484 | case KC_MS_BTN7: | ||
| 485 | register_button(false, MOUSE_BTN7); | ||
| 486 | break; | ||
| 487 | case KC_MS_BTN8: | ||
| 488 | register_button(false, MOUSE_BTN8); | ||
| 489 | break; | ||
| 472 | # endif | 490 | # endif |
| 473 | default: | 491 | default: |
| 474 | mousekey_send(); | 492 | mousekey_send(); |
diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index d35e44d8d..efad92b23 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h | |||
| @@ -39,7 +39,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 39 | 39 | ||
| 40 | #define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) | 40 | #define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_ACCEL2) |
| 41 | #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) | 41 | #define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) |
| 42 | #define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN5) | 42 | #define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN8) |
| 43 | #define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) | 43 | #define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) |
| 44 | #define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2) | 44 | #define IS_MOUSEKEY_ACCEL(code) (KC_MS_ACCEL0 <= (code) && (code) <= KC_MS_ACCEL2) |
| 45 | 45 | ||
| @@ -205,6 +205,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 205 | #define KC_BTN3 KC_MS_BTN3 | 205 | #define KC_BTN3 KC_MS_BTN3 |
| 206 | #define KC_BTN4 KC_MS_BTN4 | 206 | #define KC_BTN4 KC_MS_BTN4 |
| 207 | #define KC_BTN5 KC_MS_BTN5 | 207 | #define KC_BTN5 KC_MS_BTN5 |
| 208 | #define KC_BTN6 KC_MS_BTN6 | ||
| 209 | #define KC_BTN7 KC_MS_BTN7 | ||
| 210 | #define KC_BTN8 KC_MS_BTN8 | ||
| 208 | #define KC_WH_U KC_MS_WH_UP | 211 | #define KC_WH_U KC_MS_WH_UP |
| 209 | #define KC_WH_D KC_MS_WH_DOWN | 212 | #define KC_WH_D KC_MS_WH_DOWN |
| 210 | #define KC_WH_L KC_MS_WH_LEFT | 213 | #define KC_WH_L KC_MS_WH_LEFT |
| @@ -521,15 +524,18 @@ enum internal_special_keycodes { | |||
| 521 | 524 | ||
| 522 | enum mouse_keys { | 525 | enum mouse_keys { |
| 523 | /* Mouse Buttons */ | 526 | /* Mouse Buttons */ |
| 524 | KC_MS_UP = 0xF0, | 527 | KC_MS_UP = 0xED, |
| 525 | KC_MS_DOWN, | 528 | KC_MS_DOWN, |
| 526 | KC_MS_LEFT, | 529 | KC_MS_LEFT, |
| 527 | KC_MS_RIGHT, | 530 | KC_MS_RIGHT, // 0xF0 |
| 528 | KC_MS_BTN1, | 531 | KC_MS_BTN1, |
| 529 | KC_MS_BTN2, | 532 | KC_MS_BTN2, |
| 530 | KC_MS_BTN3, | 533 | KC_MS_BTN3, |
| 531 | KC_MS_BTN4, | 534 | KC_MS_BTN4, |
| 532 | KC_MS_BTN5, | 535 | KC_MS_BTN5, |
| 536 | KC_MS_BTN6, | ||
| 537 | KC_MS_BTN7, | ||
| 538 | KC_MS_BTN8, | ||
| 533 | 539 | ||
| 534 | /* Mouse Wheel */ | 540 | /* Mouse Wheel */ |
| 535 | KC_MS_WH_UP, | 541 | KC_MS_WH_UP, |
| @@ -540,5 +546,5 @@ enum mouse_keys { | |||
| 540 | /* Acceleration */ | 546 | /* Acceleration */ |
| 541 | KC_MS_ACCEL0, | 547 | KC_MS_ACCEL0, |
| 542 | KC_MS_ACCEL1, | 548 | KC_MS_ACCEL1, |
| 543 | KC_MS_ACCEL2 | 549 | KC_MS_ACCEL2 // 0xFF |
| 544 | }; | 550 | }; |
diff --git a/tmk_core/common/mousekey.c b/tmk_core/common/mousekey.c index 6c9df6723..d8cf63f77 100644 --- a/tmk_core/common/mousekey.c +++ b/tmk_core/common/mousekey.c | |||
| @@ -278,16 +278,8 @@ void mousekey_on(uint8_t code) { | |||
| 278 | mouse_report.h = wheel_unit() * -1; | 278 | mouse_report.h = wheel_unit() * -1; |
| 279 | else if (code == KC_MS_WH_RIGHT) | 279 | else if (code == KC_MS_WH_RIGHT) |
| 280 | mouse_report.h = wheel_unit(); | 280 | mouse_report.h = wheel_unit(); |
| 281 | else if (code == KC_MS_BTN1) | 281 | else if (IS_MOUSEKEY_BUTTON(code)) |
| 282 | mouse_report.buttons |= MOUSE_BTN1; | 282 | mouse_report.buttons |= 1 << (code - KC_MS_BTN1); |
| 283 | else if (code == KC_MS_BTN2) | ||
| 284 | mouse_report.buttons |= MOUSE_BTN2; | ||
| 285 | else if (code == KC_MS_BTN3) | ||
| 286 | mouse_report.buttons |= MOUSE_BTN3; | ||
| 287 | else if (code == KC_MS_BTN4) | ||
| 288 | mouse_report.buttons |= MOUSE_BTN4; | ||
| 289 | else if (code == KC_MS_BTN5) | ||
| 290 | mouse_report.buttons |= MOUSE_BTN5; | ||
| 291 | else if (code == KC_MS_ACCEL0) | 283 | else if (code == KC_MS_ACCEL0) |
| 292 | mousekey_accel |= (1 << 0); | 284 | mousekey_accel |= (1 << 0); |
| 293 | else if (code == KC_MS_ACCEL1) | 285 | else if (code == KC_MS_ACCEL1) |
| @@ -313,16 +305,8 @@ void mousekey_off(uint8_t code) { | |||
| 313 | mouse_report.h = 0; | 305 | mouse_report.h = 0; |
| 314 | else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0) | 306 | else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0) |
| 315 | mouse_report.h = 0; | 307 | mouse_report.h = 0; |
| 316 | else if (code == KC_MS_BTN1) | 308 | else if (IS_MOUSEKEY_BUTTON(code)) |
| 317 | mouse_report.buttons &= ~MOUSE_BTN1; | 309 | mouse_report.buttons &= ~(1 << (code - KC_MS_BTN1)); |
| 318 | else if (code == KC_MS_BTN2) | ||
| 319 | mouse_report.buttons &= ~MOUSE_BTN2; | ||
| 320 | else if (code == KC_MS_BTN3) | ||
| 321 | mouse_report.buttons &= ~MOUSE_BTN3; | ||
| 322 | else if (code == KC_MS_BTN4) | ||
| 323 | mouse_report.buttons &= ~MOUSE_BTN4; | ||
| 324 | else if (code == KC_MS_BTN5) | ||
| 325 | mouse_report.buttons &= ~MOUSE_BTN5; | ||
| 326 | else if (code == KC_MS_ACCEL0) | 310 | else if (code == KC_MS_ACCEL0) |
| 327 | mousekey_accel &= ~(1 << 0); | 311 | mousekey_accel &= ~(1 << 0); |
| 328 | else if (code == KC_MS_ACCEL1) | 312 | else if (code == KC_MS_ACCEL1) |
| @@ -423,16 +407,8 @@ void mousekey_on(uint8_t code) { | |||
| 423 | mouse_report.h = w_offset * -1; | 407 | mouse_report.h = w_offset * -1; |
| 424 | else if (code == KC_MS_WH_RIGHT) | 408 | else if (code == KC_MS_WH_RIGHT) |
| 425 | mouse_report.h = w_offset; | 409 | mouse_report.h = w_offset; |
| 426 | else if (code == KC_MS_BTN1) | 410 | else if (IS_MOUSEKEY_BUTTON(code)) |
| 427 | mouse_report.buttons |= MOUSE_BTN1; | 411 | mouse_report.buttons |= 1 << (code - KC_MS_BTN1); |
| 428 | else if (code == KC_MS_BTN2) | ||
| 429 | mouse_report.buttons |= MOUSE_BTN2; | ||
| 430 | else if (code == KC_MS_BTN3) | ||
| 431 | mouse_report.buttons |= MOUSE_BTN3; | ||
| 432 | else if (code == KC_MS_BTN4) | ||
| 433 | mouse_report.buttons |= MOUSE_BTN4; | ||
| 434 | else if (code == KC_MS_BTN5) | ||
| 435 | mouse_report.buttons |= MOUSE_BTN5; | ||
| 436 | else if (code == KC_MS_ACCEL0) | 412 | else if (code == KC_MS_ACCEL0) |
| 437 | mk_speed = mkspd_0; | 413 | mk_speed = mkspd_0; |
| 438 | else if (code == KC_MS_ACCEL1) | 414 | else if (code == KC_MS_ACCEL1) |
| @@ -462,16 +438,8 @@ void mousekey_off(uint8_t code) { | |||
| 462 | mouse_report.h = 0; | 438 | mouse_report.h = 0; |
| 463 | else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0) | 439 | else if (code == KC_MS_WH_RIGHT && mouse_report.h > 0) |
| 464 | mouse_report.h = 0; | 440 | mouse_report.h = 0; |
| 465 | else if (code == KC_MS_BTN1) | 441 | else if (IS_MOUSEKEY_BUTTON(code)) |
| 466 | mouse_report.buttons &= ~MOUSE_BTN1; | 442 | mouse_report.buttons &= ~(1 << (code - KC_MS_BTN1)); |
| 467 | else if (code == KC_MS_BTN2) | ||
| 468 | mouse_report.buttons &= ~MOUSE_BTN2; | ||
| 469 | else if (code == KC_MS_BTN3) | ||
| 470 | mouse_report.buttons &= ~MOUSE_BTN3; | ||
| 471 | else if (code == KC_MS_BTN4) | ||
| 472 | mouse_report.buttons &= ~MOUSE_BTN4; | ||
| 473 | else if (code == KC_MS_BTN5) | ||
| 474 | mouse_report.buttons &= ~MOUSE_BTN5; | ||
| 475 | # ifdef MK_MOMENTARY_ACCEL | 443 | # ifdef MK_MOMENTARY_ACCEL |
| 476 | else if (code == KC_MS_ACCEL0) | 444 | else if (code == KC_MS_ACCEL0) |
| 477 | mk_speed = mkspd_DEFAULT; | 445 | mk_speed = mkspd_DEFAULT; |
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h index 5d7c5b3b2..bcf5cab38 100644 --- a/tmk_core/common/report.h +++ b/tmk_core/common/report.h | |||
| @@ -39,7 +39,10 @@ enum mouse_buttons { | |||
| 39 | MOUSE_BTN2 = (1 << 1), | 39 | MOUSE_BTN2 = (1 << 1), |
| 40 | MOUSE_BTN3 = (1 << 2), | 40 | MOUSE_BTN3 = (1 << 2), |
| 41 | MOUSE_BTN4 = (1 << 3), | 41 | MOUSE_BTN4 = (1 << 3), |
| 42 | MOUSE_BTN5 = (1 << 4) | 42 | MOUSE_BTN5 = (1 << 4), |
| 43 | MOUSE_BTN6 = (1 << 5), | ||
| 44 | MOUSE_BTN7 = (1 << 6), | ||
| 45 | MOUSE_BTN8 = (1 << 7) | ||
| 43 | }; | 46 | }; |
| 44 | 47 | ||
| 45 | /* Consumer Page (0x0C) | 48 | /* Consumer Page (0x0C) |
