diff options
| author | James Young <18669334+noroadsleft@users.noreply.github.com> | 2021-10-12 02:40:29 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-11 19:40:29 -0700 |
| commit | 78509658e6b76a843dab82e873421e942f7c076f (patch) | |
| tree | 072dbd286e351f3f87d568aeb66fba49be936d2a | |
| parent | 4b2866dd96545bd11d5b4ae977080b60948850f5 (diff) | |
| download | qmk_firmware-78509658e6b76a843dab82e873421e942f7c076f.tar.gz qmk_firmware-78509658e6b76a843dab82e873421e942f7c076f.zip | |
KabeDon98E Refactor (#14778)
Co-authored-by: Joel Challis <git@zvecr.com>
| -rw-r--r-- | keyboards/kabedon/kabedon98e/info.json | 215 | ||||
| -rw-r--r-- | keyboards/kabedon/kabedon98e/kabedon98e.c | 39 | ||||
| -rw-r--r-- | keyboards/kabedon/kabedon98e/kabedon98e.h | 59 | ||||
| -rw-r--r-- | keyboards/kabedon/kabedon98e/keymaps/default/keymap.c | 73 | ||||
| -rw-r--r-- | keyboards/kabedon/kabedon98e/keymaps/via/keymap.c | 73 |
5 files changed, 225 insertions, 234 deletions
diff --git a/keyboards/kabedon/kabedon98e/info.json b/keyboards/kabedon/kabedon98e/info.json index 1f7ecf586..de8f975b2 100644 --- a/keyboards/kabedon/kabedon98e/info.json +++ b/keyboards/kabedon/kabedon98e/info.json | |||
| @@ -1,112 +1,117 @@ | |||
| 1 | { | 1 | { |
| 2 | "keyboard_name": "KabeDon98E", | 2 | "keyboard_name": "KabeDon98E", |
| 3 | "url": "", | 3 | "url": "", |
| 4 | "maintainer": "370490639", | 4 | "maintainer": "370490639", |
| 5 | "layouts": { | 5 | "layouts": { |
| 6 | "LAYOUT": { | 6 | "LAYOUT": { |
| 7 | "layout": [ | 7 | "layout": [ |
| 8 | {"label":"Esc", "x":0, "y":0}, | 8 | {"label":"Esc", "x":0, "y":0.5}, |
| 9 | {"label":"F1", "x":1.5, "y":0}, | 9 | {"label":"F1", "x":1.667, "y":0.5}, |
| 10 | {"label":"F2", "x":2.5, "y":0}, | 10 | {"label":"F2", "x":2.667, "y":0.5}, |
| 11 | {"label":"F3", "x":3.5, "y":0}, | 11 | {"label":"F3", "x":3.667, "y":0.5}, |
| 12 | {"label":"F4", "x":4.5, "y":0}, | 12 | {"label":"F4", "x":4.667, "y":0.5}, |
| 13 | {"label":"F5", "x":6.25, "y":0}, | 13 | {"label":"F5", "x":6.333, "y":0.5}, |
| 14 | {"label":"F6", "x":7.25, "y":0}, | 14 | {"label":"F6", "x":7.333, "y":0.5}, |
| 15 | {"label":"F7", "x":8.25, "y":0}, | 15 | {"label":"F7", "x":8.333, "y":0.5}, |
| 16 | {"label":"F8", "x":9.25, "y":0}, | 16 | {"label":"F8", "x":9.333, "y":0.5}, |
| 17 | {"label":"F9", "x":11, "y":0}, | 17 | {"label":"F9", "x":11.0, "y":0.5}, |
| 18 | {"label":"F10", "x":12, "y":0}, | 18 | {"label":"F10", "x":12.0, "y":0.5}, |
| 19 | {"label":"F11", "x":13, "y":0}, | 19 | {"label":"F11", "x":13.0, "y":0.5}, |
| 20 | {"label":"F12", "x":14, "y":0}, | 20 | {"label":"F12", "x":14.0, "y":0.5}, |
| 21 | {"label":"Delete", "x":15.5, "y":0}, | 21 | {"label":"Delete", "x":15.5, "y":0.5}, |
| 22 | {"label":"Insert", "x":17, "y":0}, | 22 | {"label":"Home", "x":16.9, "y":0, "w":0.6, "h":0.5}, |
| 23 | {"label":"Mute", "x":18.5, "y":0}, | 23 | {"label":"Insert", "x":17.0, "y":0.5}, |
| 24 | {"label":"~", "x":0, "y":1.5}, | 24 | {"label":"End", "x":17.5, "y":0, "w":0.6, "h":0.5}, |
| 25 | {"label":"!", "x":1, "y":1.5}, | 25 | {"label":"PgUp", "x":18.4, "y":0, "w":0.6, "h":0.5}, |
| 26 | {"label":"@", "x":2, "y":1.5}, | 26 | {"label":"Mute", "x":18.5, "y":0.5}, |
| 27 | {"label":"#", "x":3, "y":1.5}, | 27 | {"label":"PgDn", "x":19, "y":0, "w":0.6, "h":0.5}, |
| 28 | {"label":"$", "x":4, "y":1.5}, | 28 | |
| 29 | {"label":"%", "x":5, "y":1.5}, | 29 | {"label":"~", "x":0, "y":1.75}, |
| 30 | {"label":"^", "x":6, "y":1.5}, | 30 | {"label":"!", "x":1, "y":1.75}, |
| 31 | {"label":"&", "x":7, "y":1.5}, | 31 | {"label":"@", "x":2, "y":1.75}, |
| 32 | {"label":"*", "x":8, "y":1.5}, | 32 | {"label":"#", "x":3, "y":1.75}, |
| 33 | {"label":"(", "x":9, "y":1.5}, | 33 | {"label":"$", "x":4, "y":1.75}, |
| 34 | {"label":")", "x":10, "y":1.5}, | 34 | {"label":"%", "x":5, "y":1.75}, |
| 35 | {"label":"_", "x":11, "y":1.5}, | 35 | {"label":"^", "x":6, "y":1.75}, |
| 36 | {"label":"+", "x":12, "y":1.5}, | 36 | {"label":"&", "x":7, "y":1.75}, |
| 37 | {"label":"Backspace", "x":13, "y":1.5, "w":2}, | 37 | {"label":"*", "x":8, "y":1.75}, |
| 38 | {"label":"Num Lock", "x":15.4, "y":1.5}, | 38 | {"label":"(", "x":9, "y":1.75}, |
| 39 | {"label":"/", "x":16.4, "y":1.5}, | 39 | {"label":")", "x":10, "y":1.75}, |
| 40 | {"label":"*", "x":17.4, "y":1.5}, | 40 | {"label":"_", "x":11, "y":1.75}, |
| 41 | {"label":"-", "x":18.4, "y":1.5}, | 41 | {"label":"+", "x":12, "y":1.75}, |
| 42 | {"label":"Home", "x":19.8, "y":1.5}, | 42 | {"label":"Backspace", "x":13, "y":1.75, "w":2}, |
| 43 | {"label":"Tab", "x":0, "y":2.5, "w":1.5}, | 43 | {"label":"Num Lock", "x":15.5, "y":1.75}, |
| 44 | {"label":"Q", "x":1.5, "y":2.5}, | 44 | {"label":"/", "x":16.5, "y":1.75}, |
| 45 | {"label":"W", "x":2.5, "y":2.5}, | 45 | {"label":"*", "x":17.5, "y":1.75}, |
| 46 | {"label":"E", "x":3.5, "y":2.5}, | 46 | {"label":"-", "x":18.5, "y":1.75}, |
| 47 | {"label":"R", "x":4.5, "y":2.5}, | 47 | |
| 48 | {"label":"T", "x":5.5, "y":2.5}, | 48 | {"label":"Tab", "x":0, "y":2.75, "w":1.5}, |
| 49 | {"label":"Y", "x":6.5, "y":2.5}, | 49 | {"label":"Q", "x":1.5, "y":2.75}, |
| 50 | {"label":"U", "x":7.5, "y":2.5}, | 50 | {"label":"W", "x":2.5, "y":2.75}, |
| 51 | {"label":"I", "x":8.5, "y":2.5}, | 51 | {"label":"E", "x":3.5, "y":2.75}, |
| 52 | {"label":"O", "x":9.5, "y":2.5}, | 52 | {"label":"R", "x":4.5, "y":2.75}, |
| 53 | {"label":"P", "x":10.5, "y":2.5}, | 53 | {"label":"T", "x":5.5, "y":2.75}, |
| 54 | {"label":"{", "x":11.5, "y":2.5}, | 54 | {"label":"Y", "x":6.5, "y":2.75}, |
| 55 | {"label":"}", "x":12.5, "y":2.5}, | 55 | {"label":"U", "x":7.5, "y":2.75}, |
| 56 | {"label":"|", "x":13.5, "y":2.5, "w":1.5}, | 56 | {"label":"I", "x":8.5, "y":2.75}, |
| 57 | {"label":"7", "x":15.4, "y":2.5}, | 57 | {"label":"O", "x":9.5, "y":2.75}, |
| 58 | {"label":"8", "x":16.4, "y":2.5}, | 58 | {"label":"P", "x":10.5, "y":2.75}, |
| 59 | {"label":"9", "x":17.4, "y":2.5}, | 59 | {"label":"{", "x":11.5, "y":2.75}, |
| 60 | {"label":"+", "x":18.4, "y":2.5, "h":2}, | 60 | {"label":"}", "x":12.5, "y":2.75}, |
| 61 | {"label":"End", "x":19.8, "y":2.5}, | 61 | {"label":"|", "x":13.5, "y":2.75, "w":1.5}, |
| 62 | {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, | 62 | {"label":"7", "x":15.5, "y":2.75}, |
| 63 | {"label":"A", "x":1.75, "y":3.5}, | 63 | {"label":"8", "x":16.5, "y":2.75}, |
| 64 | {"label":"S", "x":2.75, "y":3.5}, | 64 | {"label":"9", "x":17.5, "y":2.75}, |
| 65 | {"label":"D", "x":3.75, "y":3.5}, | 65 | |
| 66 | {"label":"F", "x":4.75, "y":3.5}, | 66 | {"label":"Caps Lock", "x":0, "y":3.75, "w":1.75}, |
| 67 | {"label":"G", "x":5.75, "y":3.5}, | 67 | {"label":"A", "x":1.75, "y":3.75}, |
| 68 | {"label":"H", "x":6.75, "y":3.5}, | 68 | {"label":"S", "x":2.75, "y":3.75}, |
| 69 | {"label":"J", "x":7.75, "y":3.5}, | 69 | {"label":"D", "x":3.75, "y":3.75}, |
| 70 | {"label":"K", "x":8.75, "y":3.5}, | 70 | {"label":"F", "x":4.75, "y":3.75}, |
| 71 | {"label":"L", "x":9.75, "y":3.5}, | 71 | {"label":"G", "x":5.75, "y":3.75}, |
| 72 | {"label":":", "x":10.75, "y":3.5}, | 72 | {"label":"H", "x":6.75, "y":3.75}, |
| 73 | {"label":"\"", "x":11.75, "y":3.5}, | 73 | {"label":"J", "x":7.75, "y":3.75}, |
| 74 | {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, | 74 | {"label":"K", "x":8.75, "y":3.75}, |
| 75 | {"label":"4", "x":15.4, "y":3.5}, | 75 | {"label":"L", "x":9.75, "y":3.75}, |
| 76 | {"label":"5", "x":16.4, "y":3.5}, | 76 | {"label":":", "x":10.75, "y":3.75}, |
| 77 | {"label":"6", "x":17.4, "y":3.5}, | 77 | {"label":"\"", "x":11.75, "y":3.75}, |
| 78 | {"label":"Shift", "x":0, "y":4.5, "w":2.25}, | 78 | {"label":"Enter", "x":12.75, "y":3.75, "w":2.25}, |
| 79 | {"label":"Z", "x":2.25, "y":4.5}, | 79 | {"label":"4", "x":15.5, "y":3.75}, |
| 80 | {"label":"X", "x":3.25, "y":4.5}, | 80 | {"label":"5", "x":16.5, "y":3.75}, |
| 81 | {"label":"C", "x":4.25, "y":4.5}, | 81 | {"label":"6", "x":17.5, "y":3.75}, |
| 82 | {"label":"V", "x":5.25, "y":4.5}, | 82 | {"label":"+", "x":18.5, "y":2.75, "h":2}, |
| 83 | {"label":"B", "x":6.25, "y":4.5}, | 83 | |
| 84 | {"label":"N", "x":7.25, "y":4.5}, | 84 | {"label":"Shift", "x":0, "y":4.75, "w":2.25}, |
| 85 | {"label":"M", "x":8.25, "y":4.5}, | 85 | {"label":"Z", "x":2.25, "y":4.75}, |
| 86 | {"label":"<", "x":9.25, "y":4.5}, | 86 | {"label":"X", "x":3.25, "y":4.75}, |
| 87 | {"label":">", "x":10.25, "y":4.5}, | 87 | {"label":"C", "x":4.25, "y":4.75}, |
| 88 | {"label":"?", "x":11.25, "y":4.5}, | 88 | {"label":"V", "x":5.25, "y":4.75}, |
| 89 | {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, | 89 | {"label":"B", "x":6.25, "y":4.75}, |
| 90 | {"label":"Up", "x":14.2, "y":4.7}, | 90 | {"label":"N", "x":7.25, "y":4.75}, |
| 91 | {"label":"1", "x":15.4, "y":4.5}, | 91 | {"label":"M", "x":8.25, "y":4.75}, |
| 92 | {"label":"2", "x":16.4, "y":4.5}, | 92 | {"label":"<", "x":9.25, "y":4.75}, |
| 93 | {"label":"3", "x":17.4, "y":4.5}, | 93 | {"label":">", "x":10.25, "y":4.75}, |
| 94 | {"label":"Enter", "x":18.4, "y":4.5, "h":2}, | 94 | {"label":"?", "x":11.25, "y":4.75}, |
| 95 | {"label":"Pgup", "x":19.8, "y":4.5}, | 95 | {"label":"Shift", "x":12.25, "y":4.75, "w":1.75}, |
| 96 | {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, | 96 | {"label":"\u2191", "x":14.25, "y":5}, |
| 97 | {"label":"Win", "x":1.25, "y":5.5}, | 97 | {"label":"1", "x":15.5, "y":4.75}, |
| 98 | {"label":"Alt", "x":2.25, "y":5.5}, | 98 | {"label":"2", "x":16.5, "y":4.75}, |
| 99 | {"label":"MO(1)", "x":3.25, "y":5.5}, | 99 | {"label":"3", "x":17.5, "y":4.75}, |
| 100 | {"label":"Space", "x":4.25, "y":5.5, "w":6.25}, | 100 | |
| 101 | {"label":"Alt", "x":10.5, "y":5.5, "w":1.25}, | 101 | {"label":"Ctrl", "x":0, "y":5.75, "w":1.25}, |
| 102 | {"label":"Ctrl", "x":11.75, "y":5.5, "w":1.25}, | 102 | {"label":"Win", "x":1.25, "y":5.75}, |
| 103 | {"label":"Left", "x":13.2, "y":5.7}, | 103 | {"label":"Alt", "x":2.25, "y":5.75}, |
| 104 | {"label":"Down", "x":14.2, "y":5.7}, | 104 | {"label":"MO(1)", "x":3.25, "y":5.75}, |
| 105 | {"label":"Right", "x":15.2, "y":5.7}, | 105 | {"label":"Space", "x":4.25, "y":5.75, "w":6.25}, |
| 106 | {"label":"0", "x":16.4, "y":5.5}, | 106 | {"label":"Alt", "x":10.5, "y":5.75, "w":1.25}, |
| 107 | {"label":".", "x":17.4, "y":5.5}, | 107 | {"label":"Ctrl", "x":11.75, "y":5.75, "w":1.25}, |
| 108 | {"label":"Pgdn", "x":19.8, "y":5.5} | 108 | {"label":"\u2190", "x":13.25, "y":6}, |
| 109 | ] | 109 | {"label":"\u2193", "x":14.25, "y":6}, |
| 110 | {"label":"\u2192", "x":15.25, "y":6}, | ||
| 111 | {"label":"0", "x":16.5, "y":5.75}, | ||
| 112 | {"label":".", "x":17.5, "y":5.75}, | ||
| 113 | {"label":"Enter", "x":18.5, "y":4.75, "h":2} | ||
| 114 | ] | ||
| 110 | } | 115 | } |
| 111 | } | 116 | } |
| 112 | } | 117 | } |
diff --git a/keyboards/kabedon/kabedon98e/kabedon98e.c b/keyboards/kabedon/kabedon98e/kabedon98e.c index 5142c5887..09af36de4 100644 --- a/keyboards/kabedon/kabedon98e/kabedon98e.c +++ b/keyboards/kabedon/kabedon98e/kabedon98e.c | |||
| @@ -14,3 +14,42 @@ | |||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 15 | */ | 15 | */ |
| 16 | #include "kabedon98e.h" | 16 | #include "kabedon98e.h" |
| 17 | |||
| 18 | static uint8_t encoder_state[ENCODERS] = {0}; | ||
| 19 | static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; | ||
| 20 | static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; | ||
| 21 | |||
| 22 | void encoder_action_unregister(void) { | ||
| 23 | for (int index = 0; index < ENCODERS; ++index) { | ||
| 24 | if (encoder_state[index]) { | ||
| 25 | keyevent_t encoder_event = (keyevent_t) { | ||
| 26 | .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], | ||
| 27 | .pressed = false, | ||
| 28 | .time = (timer_read() | 1) | ||
| 29 | }; | ||
| 30 | encoder_state[index] = 0; | ||
| 31 | action_exec(encoder_event); | ||
| 32 | } | ||
| 33 | } | ||
| 34 | } | ||
| 35 | |||
| 36 | void encoder_action_register(uint8_t index, bool clockwise) { | ||
| 37 | keyevent_t encoder_event = (keyevent_t) { | ||
| 38 | .key = clockwise ? encoder_cw[index] : encoder_ccw[index], | ||
| 39 | .pressed = true, | ||
| 40 | .time = (timer_read() | 1) | ||
| 41 | }; | ||
| 42 | encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); | ||
| 43 | action_exec(encoder_event); | ||
| 44 | } | ||
| 45 | |||
| 46 | void matrix_scan_kb(void) { | ||
| 47 | encoder_action_unregister(); | ||
| 48 | matrix_scan_user(); | ||
| 49 | } | ||
| 50 | |||
| 51 | bool encoder_update_kb(uint8_t index, bool clockwise) { | ||
| 52 | if (!encoder_update_user(index, clockwise)) { return false; } | ||
| 53 | encoder_action_register(index, clockwise); | ||
| 54 | return true; | ||
| 55 | }; | ||
diff --git a/keyboards/kabedon/kabedon98e/kabedon98e.h b/keyboards/kabedon/kabedon98e/kabedon98e.h index 0ddad3abf..ce4b3fa0b 100644 --- a/keyboards/kabedon/kabedon98e/kabedon98e.h +++ b/keyboards/kabedon/kabedon98e/kabedon98e.h | |||
| @@ -17,26 +17,47 @@ | |||
| 17 | 17 | ||
| 18 | #include "quantum.h" | 18 | #include "quantum.h" |
| 19 | 19 | ||
| 20 | #define XXXX KC_NO | 20 | #define XXX KC_NO |
| 21 | |||
| 22 | /* ┌──┬──┐ ┌──┬──┐ | ||
| 23 | * │00│20│ │60│80│ | ||
| 24 | * └──┴──┘ └──┴──┘ | ||
| 25 | * \─en1┘ └en2─/ | ||
| 26 | * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐ ┌───┐ ┌───┐ | ||
| 27 | * │10 │ │01 │11 │02 │12 │ │03 │13 │04 │14 │ │05 │15 │16 │17 │ │57 │ │48 │ │40 │ | ||
| 28 | * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘ └───┘ └───┘ | ||
| 29 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐ | ||
| 30 | * │30 │21 │31 │22 │32 │23 │33 │24 │34 │25 │35 │26 │36 │37 │ │39 │49 │4A │5A │ | ||
| 31 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ | ||
| 32 | * │50 │41 │51 │42 │52 │43 │53 │44 │54 │45 │55 │46 │56 │47 │ │59 │69 │6A │ │ | ||
| 33 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ │ | ||
| 34 | * │70 │61 │71 │62 │72 │63 │73 │64 │74 │65 │75 │66 │77 │ │79 │89 │8A │7A │ | ||
| 35 | * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ | ||
| 36 | * │90 │91 │82 │92 │83 │93 │84 │94 │85 │95 │86 │97 │┌───┐│99 │A9 │9A │ │ | ||
| 37 | * ├────┬───┼───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴──┬───┘│88 │└───┼───┼───┤ │ | ||
| 38 | * │B0 │A1 │B1 │B3 │B2 │B5 │A7 │┌───┼───┼───┐│B9 │AA │BA │ | ||
| 39 | * └────┴───┴───┴───┴────────────────────────┴────┴────┘│B7 │A8 │B8 │└───┴───┴───┘ | ||
| 40 | * └───┴───┴───┘ | ||
| 41 | */ | ||
| 21 | 42 | ||
| 22 | #define LAYOUT( \ | 43 | #define LAYOUT( \ |
| 23 | KB00, KA01, KB01, KA02, KB02, KA03, KB03, KA04, KB04, KA05, KB05, KB06, KB07, KF07, KE08, KE00, \ | 44 | K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K16, K17, K57, K00,K48,K20, K60,K40,K80, \ |
| 24 | KD00, KC01, KD01, KC02, KD02, KC03, KD03, KC04, KD04, KC05, KD05, KC06, KD06, KD07, KD09, KE09, KE10, KF10, KA00, \ | 45 | K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K37, K39, K49, K4A, K5A, \ |
| 25 | KF00, KE01, KF01, KE02, KF02, KE03, KF03, KE04, KF04, KE05, KF05, KE06, KF06, KE07, KF09, KG09, KG10, KC00, \ | 46 | K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K46, K56, K47, K59, K69, K6A, \ |
| 26 | KH00, KG01, KH01, KG02, KH02, KG03, KH03, KG04, KH04, KG05, KH05, KG06, KH07, KH09, KI09, KI10, KH10, \ | 47 | K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K66, K77, K79, K89, K8A, K7A, \ |
| 27 | KJ00, KJ01, KI02, KJ02, KI03, KJ03, KI04, KJ04, KI05, KJ05, KI06, KJ07, KI08, KJ09, KK09, KJ10, KG00, \ | 48 | K90, K91, K82, K92, K83, K93, K84, K94, K85, K95, K86, K97, K88, K99, KA9, K9A, \ |
| 28 | KL00, KK01, KL01, KL03, KL02, KL05, KK07, KL07, KK08, KL08, KL09, KK10, KL10, KI00 \ | 49 | KB0, KA1, KB1, KB3, KB2, KB5, KA7, KB7, KA8, KB8, KB9, KAA, KBA \ |
| 29 | ) { \ | 50 | ) { \ |
| 30 | { KA00, KA01, KA02, KA03, KA04, KA05, XXXX, XXXX, XXXX, XXXX, XXXX }, \ | 51 | { K00, K01, K02, K03, K04, K05, XXX, XXX, XXX, XXX, XXX }, \ |
| 31 | { KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, XXXX, XXXX, XXXX }, \ | 52 | { K10, K11, K12, K13, K14, K15, K16, K17, XXX, XXX, XXX }, \ |
| 32 | { KC00, KC01, KC02, KC03, KC04, KC05, KC06, XXXX, XXXX, XXXX, XXXX }, \ | 53 | { K20, K21, K22, K23, K24, K25, K26, XXX, XXX, XXX, XXX }, \ |
| 33 | { KD00, KD01, KD02, KD03, KD04, KD05, KD06, KD07, XXXX, KD09, XXXX }, \ | 54 | { K30, K31, K32, K33, K34, K35, K36, K37, XXX, K39, XXX }, \ |
| 34 | { KE00, KE01, KE02, KE03, KE04, KE05, KE06, KE07, KE08, KE09, KE10 }, \ | 55 | { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A }, \ |
| 35 | { KF00, KF01, KF02, KF03, KF04, KF05, KF06, KF07, XXXX, KF09, KF10 }, \ | 56 | { K50, K51, K52, K53, K54, K55, K56, K57, XXX, K59, K5A }, \ |
| 36 | { KG00, KG01, KG02, KG03, KG04, KG05, KG06, XXXX, XXXX, KG09, KG10 }, \ | 57 | { K60, K61, K62, K63, K64, K65, K66, XXX, XXX, K69, K6A }, \ |
| 37 | { KH00, KH01, KH02, KH03, KH04, KH05, XXXX, KH07, XXXX, KH09, KH10 }, \ | 58 | { K70, K71, K72, K73, K74, K75, XXX, K77, XXX, K79, K7A }, \ |
| 38 | { KI00, XXXX, KI02, KI03, KI04, KI05, KI06, XXXX, KI08, KI09, KI10 }, \ | 59 | { K80, XXX, K82, K83, K84, K85, K86, XXX, K88, K89, K8A }, \ |
| 39 | { KJ00, KJ01, KJ02, KJ03, KJ04, KJ05, XXXX, KJ07, XXXX, KJ09, KJ10 }, \ | 60 | { K90, K91, K92, K93, K94, K95, XXX, K97, XXX, K99, K9A }, \ |
| 40 | { XXXX, KK01, XXXX, XXXX, XXXX, XXXX, XXXX, KK07, KK08, KK09, KK10 }, \ | 61 | { XXX, KA1, XXX, XXX, XXX, XXX, XXX, KA7, KA8, KA9, KAA }, \ |
| 41 | { KL00, KL01, KL02, KL03, XXXX, KL05, XXXX, KL07, KL08, KL09, KL10 } \ | 62 | { KB0, KB1, KB2, KB3, XXX, KB5, XXX, KB7, KB8, KB9, KBA } \ |
| 42 | } | 63 | } |
diff --git a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c index bace7931d..608110417 100644 --- a/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c +++ b/keyboards/kabedon/kabedon98e/keymaps/default/keymap.c | |||
| @@ -45,64 +45,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 45 | └──┘└──┘└──┘ | 45 | └──┘└──┘└──┘ |
| 46 | */ | 46 | */ |
| 47 | [_BASE] = LAYOUT( | 47 | [_BASE] = LAYOUT( |
| 48 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, KC_MUTE, | 48 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, |
| 49 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_HOME, | 49 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, |
| 50 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_END, | 50 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, |
| 51 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, | 51 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, |
| 52 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PGUP, | 52 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, |
| 53 | KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_PGDN), | 53 | KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), |
| 54 | 54 | ||
| 55 | [_FN] = LAYOUT( | 55 | [_FN] = LAYOUT( |
| 56 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 56 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 57 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 57 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 58 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 58 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 59 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 59 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 60 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 60 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, |
| 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), |
| 62 | 62 | ||
| 63 | [_FN1] = LAYOUT( | 63 | [_FN1] = LAYOUT( |
| 64 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 64 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 65 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 65 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 66 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 66 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 67 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 67 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 68 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 68 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 69 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) | 69 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) |
| 70 | |||
| 71 | }; | ||
| 72 | |||
| 73 | static uint8_t encoder_state[ENCODERS] = {0}; | ||
| 74 | static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; | ||
| 75 | static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; | ||
| 76 | |||
| 77 | void encoder_action_unregister(void) { | ||
| 78 | for (int index = 0; index < ENCODERS; ++index) { | ||
| 79 | if (encoder_state[index]) { | ||
| 80 | keyevent_t encoder_event = (keyevent_t) { | ||
| 81 | .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], | ||
| 82 | .pressed = false, | ||
| 83 | .time = (timer_read() | 1) | ||
| 84 | }; | ||
| 85 | encoder_state[index] = 0; | ||
| 86 | action_exec(encoder_event); | ||
| 87 | } | ||
| 88 | } | ||
| 89 | } | ||
| 90 | |||
| 91 | void encoder_action_register(uint8_t index, bool clockwise) { | ||
| 92 | keyevent_t encoder_event = (keyevent_t) { | ||
| 93 | .key = clockwise ? encoder_cw[index] : encoder_ccw[index], | ||
| 94 | .pressed = true, | ||
| 95 | .time = (timer_read() | 1) | ||
| 96 | }; | ||
| 97 | encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); | ||
| 98 | action_exec(encoder_event); | ||
| 99 | } | ||
| 100 | |||
| 101 | void matrix_scan_user(void) { | ||
| 102 | encoder_action_unregister(); | ||
| 103 | } | ||
| 104 | 70 | ||
| 105 | bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 106 | encoder_action_register(index, clockwise); | ||
| 107 | return true; | ||
| 108 | }; | 71 | }; |
diff --git a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c index bace7931d..608110417 100644 --- a/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c +++ b/keyboards/kabedon/kabedon98e/keymaps/via/keymap.c | |||
| @@ -45,64 +45,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 45 | └──┘└──┘└──┘ | 45 | └──┘└──┘└──┘ |
| 46 | */ | 46 | */ |
| 47 | [_BASE] = LAYOUT( | 47 | [_BASE] = LAYOUT( |
| 48 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS, KC_MUTE, | 48 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_HOME, KC_INS, KC_END, KC_PGUP, KC_MUTE, KC_PGDN, |
| 49 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_HOME, | 49 | KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, |
| 50 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_END, | 50 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, |
| 51 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, | 51 | KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, |
| 52 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PGUP, | 52 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, |
| 53 | KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_PGDN), | 53 | KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT), |
| 54 | 54 | ||
| 55 | [_FN] = LAYOUT( | 55 | [_FN] = LAYOUT( |
| 56 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 56 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 57 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 57 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 58 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 58 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 59 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 59 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 60 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 60 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, |
| 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS), |
| 62 | 62 | ||
| 63 | [_FN1] = LAYOUT( | 63 | [_FN1] = LAYOUT( |
| 64 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 64 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 65 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 65 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 66 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 66 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 67 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 67 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 68 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 68 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 69 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) | 69 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) |
| 70 | |||
| 71 | }; | ||
| 72 | |||
| 73 | static uint8_t encoder_state[ENCODERS] = {0}; | ||
| 74 | static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; | ||
| 75 | static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; | ||
| 76 | |||
| 77 | void encoder_action_unregister(void) { | ||
| 78 | for (int index = 0; index < ENCODERS; ++index) { | ||
| 79 | if (encoder_state[index]) { | ||
| 80 | keyevent_t encoder_event = (keyevent_t) { | ||
| 81 | .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], | ||
| 82 | .pressed = false, | ||
| 83 | .time = (timer_read() | 1) | ||
| 84 | }; | ||
| 85 | encoder_state[index] = 0; | ||
| 86 | action_exec(encoder_event); | ||
| 87 | } | ||
| 88 | } | ||
| 89 | } | ||
| 90 | |||
| 91 | void encoder_action_register(uint8_t index, bool clockwise) { | ||
| 92 | keyevent_t encoder_event = (keyevent_t) { | ||
| 93 | .key = clockwise ? encoder_cw[index] : encoder_ccw[index], | ||
| 94 | .pressed = true, | ||
| 95 | .time = (timer_read() | 1) | ||
| 96 | }; | ||
| 97 | encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); | ||
| 98 | action_exec(encoder_event); | ||
| 99 | } | ||
| 100 | |||
| 101 | void matrix_scan_user(void) { | ||
| 102 | encoder_action_unregister(); | ||
| 103 | } | ||
| 104 | 70 | ||
| 105 | bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 106 | encoder_action_register(index, clockwise); | ||
| 107 | return true; | ||
| 108 | }; | 71 | }; |
