diff options
Diffstat (limited to 'keyboards/amj40/amj40.h')
| -rwxr-xr-x | keyboards/amj40/amj40.h | 109 |
1 files changed, 90 insertions, 19 deletions
diff --git a/keyboards/amj40/amj40.h b/keyboards/amj40/amj40.h index 613f3740f..14ea38381 100755 --- a/keyboards/amj40/amj40.h +++ b/keyboards/amj40/amj40.h | |||
| @@ -1,26 +1,52 @@ | |||
| 1 | #ifndef AMJ40_H | 1 | /* Copyright 2017 Fabian Topfstedt |
| 2 | #define AMJ40_H | 2 | * Copyright 2021 James Young (@noroadsleft) |
| 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 | #pragma once | ||
| 3 | 19 | ||
| 4 | #include "quantum.h" | 20 | #include "quantum.h" |
| 5 | 21 | ||
| 6 | // readability | ||
| 7 | #define XXX KC_NO | 22 | #define XXX KC_NO |
| 8 | 23 | ||
| 9 | /* AMJ40 ver2.0 layout1 ι εδΈ | 24 | /* AMJ40 ver2.0 staggered layouts |
| 10 | * ,-----------------------------------------------------------. | 25 | * ,-----------------------------------------------. |
| 11 | * | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | | 26 | * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b | |
| 12 | * |-----------------------------------------------------------| | 27 | * |-----------------------------------------------| |
| 13 | * | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1B | | 28 | * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1b | |
| 14 | * |-----------------------------------------------------------| | 29 | * |-----------------------------------------------| |
| 15 | * | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | | 30 | * |20 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b | |
| 16 | * |-----------------------------------------------------------| | 31 | * |-----------------------------------------------| |
| 17 | * | 30 | 31 | 32 | 34 | 35 | 39 | 3A | 3B | | 32 | * |30 |31 |32 | 34 |35 |39 |3a |3b | Layout 1 Bottom Row |
| 18 | * `-----------------------------------------------------------' | 33 | * `-----------------------------------------------' |
| 34 | * ,-----------------------------------------------. | ||
| 35 | * |30 |31 |32 | 35 |3a |3b | Layout 2 | ||
| 36 | * `-----------------------------------------------' | ||
| 37 | * ,-----------------------------------------------. | ||
| 38 | * |30 |31 |32 | 34 | 35 |39 |3a |3b | Layout 3 | ||
| 39 | * `-----------------------------------------------' | ||
| 40 | * ,-----------------------------------------------. | ||
| 41 | * |30 |31 |32 | 35 |3a |3b | Layout 4 | ||
| 42 | * `-----------------------------------------------' | ||
| 19 | */ | 43 | */ |
| 44 | |||
| 45 | // a.k.a. Layout 1 or Layout 3 (matrix is the same for both) | ||
| 20 | #define LAYOUT( \ | 46 | #define LAYOUT( \ |
| 21 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ | 47 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ |
| 22 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ | 48 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ |
| 23 | k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ | 49 | k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ |
| 24 | k30, k31, k32, k34, k35, k39, k3a, k3b \ | 50 | k30, k31, k32, k34, k35, k39, k3a, k3b \ |
| 25 | ) { \ | 51 | ) { \ |
| 26 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \ | 52 | {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b}, \ |
| @@ -29,10 +55,55 @@ | |||
| 29 | {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \ | 55 | {k30, k31, k32, XXX, k34, k35, XXX, XXX, XXX, k39, k3a, k3b} \ |
| 30 | } | 56 | } |
| 31 | 57 | ||
| 58 | // a.k.a. Layout 2 or Layout 4 (matrix is the same for both) | ||
| 59 | #define LAYOUT_625u_space( \ | ||
| 60 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ | ||
| 61 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1b, \ | ||
| 62 | k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ | ||
| 63 | k30, k31, k32, k35, k3a, k3b \ | ||
| 64 | ) { \ | ||
| 65 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ | ||
| 66 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, XXX, k1b }, \ | ||
| 67 | { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ | ||
| 68 | { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, XXX, k3a, k3b } \ | ||
| 69 | } | ||
| 32 | 70 | ||
| 71 | /* AMJ40 ver2.0 ortholinear layouts | ||
| 72 | * ,-----------------------------------------------. | ||
| 73 | * |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0a |0b | | ||
| 74 | * |-----------------------------------------------| | ||
| 75 | * |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1a |1b | | ||
| 76 | * |-----------------------------------------------| | ||
| 77 | * |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2a |2b | | ||
| 78 | * |-----------------------------------------------| | ||
| 79 | * |30 |31 |32 |33 |34 | 35 |38 |39 |3a |3b | 2.75u Spacebar | ||
| 80 | * `-----------------------------------------------' | ||
| 81 | * ,-----------------------------------------------. | ||
| 82 | * |30 |31 |32 | 35 |39 |3a |3b | 6u Spacebar | ||
| 83 | * `-----------------------------------------------' | ||
| 84 | */ | ||
| 33 | 85 | ||
| 86 | // equivalent to LAYOUT_all | ||
| 87 | #define LAYOUT_ortho_275u_space( \ | ||
| 88 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ | ||
| 89 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ | ||
| 90 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ | ||
| 91 | k30, k31, k32, k33, k34, k35, k38, k39, k3a, k3b \ | ||
| 92 | ) { \ | ||
| 93 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ | ||
| 94 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ | ||
| 95 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ | ||
| 96 | { k30, k31, k32, k33, k34, k35, XXX, XXX, k38, k39, k3a, k3b } \ | ||
| 97 | } | ||
| 34 | 98 | ||
| 35 | void matrix_init_user(void); | 99 | #define LAYOUT_ortho_600u_space( \ |
| 36 | void matrix_scan_user(void); | 100 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ |
| 37 | 101 | k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ | |
| 38 | #endif | 102 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ |
| 103 | k30, k31, k32, k35, k39, k3a, k3b \ | ||
| 104 | ) { \ | ||
| 105 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ | ||
| 106 | { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ | ||
| 107 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ | ||
| 108 | { k30, k31, k32, XXX, XXX, k35, XXX, XXX, XXX, k39, k3a, k3b } \ | ||
| 109 | } | ||
