]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/georgi/sten.h
[Keymap] Jarred's Plaid keymap (#6049)
[qmk_firmware.git] / keyboards / georgi / sten.h
index 5a9771d9a02800e51684e55f9fe0b7fe68aaf5b3..e94f10fc2881d99f528d40b8ff2fdc6b07de43a4 100644 (file)
@@ -13,6 +13,9 @@
 
 extern size_t keymapsCount;                    // Total keymaps
 extern uint32_t cChord;                                // Current Chord
+extern uint32_t stenoLayers[];         // Chords that simulate QMK layers
+extern size_t stenoLayerCount;         // Number of simulated layers
+uint32_t refChord;                                     // Reference chord for PC macro
 
 // Function defs
 void                   processChord(bool useFakeSteno);
@@ -30,6 +33,11 @@ void                         CLICK_MOUSE(uint8_t);
 
 // Keymap helper
 #define P(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;}
+#define PC(chord, act) if (cChord == (chord)) { if (!lookup) {act;} return chord;} \
+       for(int i = 0; i < stenoLayerCount; i++) { \
+               refChord = stenoLayers[i] | chord; \
+               if (cChord == (refChord)) { if (!lookup) {act;} return refChord;}; \
+}
 
 // Shift to internal representation
 // i.e) S(teno)R(ight)F