From 142a965559e8b5500cf1e4bb189231db4dc3c6a7 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Tue, 5 Apr 2016 02:10:56 -0500 Subject: [PATCH] added infinity ergodox --- inf_ergodox/readme.md | 13 + inf_ergodox/src/MDErgo1-Default-0.kll | 84 ++ inf_ergodox/src/MDErgo1-Default-1.kll | 62 + inf_ergodox/src/MDErgo1-Default-2.kll | 34 + inf_ergodox/src/MDErgo1-Default.json | 1298 +++++++++++++++++++ inf_ergodox/src/kll/MDErgo1-Default-0.kll | 84 ++ inf_ergodox/src/kll/MDErgo1-Default-1.kll | 62 + inf_ergodox/src/kll/MDErgo1-Default-2.kll | 34 + inf_ergodox/src/left_kiibohd.dfu.bin | Bin 0 -> 43664 bytes inf_ergodox/src/log/build.log | 174 +++ inf_ergodox/src/log/left_generatedKeymap.h | 1030 +++++++++++++++ inf_ergodox/src/log/left_kll_defs.h | 243 ++++ inf_ergodox/src/log/right_generatedKeymap.h | 1017 +++++++++++++++ inf_ergodox/src/log/right_kll_defs.h | 243 ++++ inf_ergodox/src/right_kiibohd.dfu.bin | Bin 0 -> 43568 bytes 15 files changed, 4378 insertions(+) create mode 100644 inf_ergodox/readme.md create mode 100644 inf_ergodox/src/MDErgo1-Default-0.kll create mode 100644 inf_ergodox/src/MDErgo1-Default-1.kll create mode 100644 inf_ergodox/src/MDErgo1-Default-2.kll create mode 100644 inf_ergodox/src/MDErgo1-Default.json create mode 100644 inf_ergodox/src/kll/MDErgo1-Default-0.kll create mode 100644 inf_ergodox/src/kll/MDErgo1-Default-1.kll create mode 100644 inf_ergodox/src/kll/MDErgo1-Default-2.kll create mode 100644 inf_ergodox/src/left_kiibohd.dfu.bin create mode 100644 inf_ergodox/src/log/build.log create mode 100644 inf_ergodox/src/log/left_generatedKeymap.h create mode 100644 inf_ergodox/src/log/left_kll_defs.h create mode 100644 inf_ergodox/src/log/right_generatedKeymap.h create mode 100644 inf_ergodox/src/log/right_kll_defs.h create mode 100644 inf_ergodox/src/right_kiibohd.dfu.bin diff --git a/inf_ergodox/readme.md b/inf_ergodox/readme.md new file mode 100644 index 0000000..ae67012 --- /dev/null +++ b/inf_ergodox/readme.md @@ -0,0 +1,13 @@ +# Infinity Ergodox +This contains my kiibohd controller compatible Infinity Ergodox keymap. + +Everything in the `src` folder in this directory is unzipped output from [the ergodox configurator][ergodox_configurator]. + +## Flashing + +* Disconnect your ergodox from your flashing PC +* Connect ONE side of the ergodox, noting which side and press it's flash button (orange LED should be on, LCD should be red) +* Open a terminal in the `src` directory and run `dfu-util -D _kiibohd.dfu.bin` (depending on which half of the keyboard you plugged in +* Repeat last three steps for other side + +[ergodox_configurator]: https://input.club/configurator-ergodox diff --git a/inf_ergodox/src/MDErgo1-Default-0.kll b/inf_ergodox/src/MDErgo1-Default-0.kll new file mode 100644 index 0000000..08b18fc --- /dev/null +++ b/inf_ergodox/src/MDErgo1-Default-0.kll @@ -0,0 +1,84 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"5" : U"5"; +U"4" : U"4"; +U"3" : U"3"; +U"2" : U"2"; +U"1" : U"1"; +U"EQUALS" : '~'; +U"FUNCTION1" : U"NEXT LAYER"; +U"T" : U"T"; +U"R" : U"R"; +U"E" : U"E"; +U"W" : U"W"; +U"Q" : U"Q"; +U"BACKSLASH" : U"TAB"; +U"G" : U"G"; +U"F" : U"F"; +U"D" : U"D"; +U"S" : U"S"; +U"A" : U"A"; +U"TAB" : U"ESCAPE"; +U"LALT" : U"MENU"; +U"LCTRL" : CONS"VOLUMEDOWN"; +U"FUNCTION2" : U"PREV LAYER"; +U"B" : U"B"; +U"V" : U"V"; +U"C" : U"C"; +U"X" : U"X"; +U"Z" : U"Z"; +U"LSHIFT" : U"LSHIFT"; +U"HOME" : U"HOME"; +U"END" : U"NUMLOCK"; +U"DELETE" : U"BACKSPACE"; +U"BACKSPACE" : U"SPACE"; +U"FUNCTION5" : U"FUN1"; +U"FUNCTION4" : U"LGUI"; +U"FUNCTION3" : U"LALT"; +U"BACKTICK" : flashMode(); +U"LGUI" : U"LCTRL"; +U"6" : U"6"; +U"7" : U"7"; +U"8" : U"8"; +U"9" : U"9"; +U"0" : U"0"; +U"MINUS" : U"BACKSPACE"; +U"LBRACE" : U"NEXT LAYER"; +U"Y" : U"Y"; +U"U" : U"U"; +U"I" : U"I"; +U"O" : U"O"; +U"P" : U"P"; +U"RBRACE" : U"BACKSPACE"; +U"H" : U"H"; +U"J" : U"J"; +U"K" : U"K"; +U"L" : U"L"; +U"SEMICOLON" : U"SEMICOLON"; +U"QUOTE" : U"QUOTE"; +U"RALT" : U"INSERT"; +U"RCTRL" : CONS"VOLUMEUP"; +U"FUNCTION7" : U"PREV LAYER"; +U"N" : U"N"; +U"M" : U"M"; +U"COMMA" : U"COMMA"; +U"PERIOD" : U"PERIOD"; +U"SLASH" : U"SLASH"; +U"RSHIFT" : U"ENTER"; +U"PAGEUP" : U"END"; +U"PAGEDOWN" : U"PRINTSCREEN"; +U"ENTER" : U"ENTER"; +U"SPACE" : U"SPACE"; +U"LEFT" : U"FUN2"; +U"DOWN" : U"LEFT"; +U"UP" : U"DOWN"; +U"RIGHT" : U"UP"; +U"RGUI" : U"RIGHT"; + diff --git a/inf_ergodox/src/MDErgo1-Default-1.kll b/inf_ergodox/src/MDErgo1-Default-1.kll new file mode 100644 index 0000000..5570169 --- /dev/null +++ b/inf_ergodox/src/MDErgo1-Default-1.kll @@ -0,0 +1,62 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"ESC" : U"F11"; +U"5" : U"F5"; +U"4" : U"F4"; +U"3" : U"F3"; +U"2" : U"F2"; +U"1" : U"F1"; +U"EQUALS" : U"ESCAPE"; +U"T" : '%'; +U"R" : '$'; +U"E" : '#'; +U"W" : '@'; +U"Q" : '!'; +U"BACKSLASH" : '~'; +U"G" : U"F5"; +U"F" : U"F4"; +U"D" : U"F3"; +U"S" : U"F2"; +U"A" : U"F1"; +U"LALT" : CONS"BRIGHTNESSDECREMENT"; +U"LCTRL" : CONS"MUTE"; +U"B" : U"F11"; +U"V" : U"F10"; +U"C" : U"F9"; +U"X" : U"F8"; +U"Z" : U"F7"; +U"DELETE" : U"DELETE"; +U"FUNCTION6" : U"F12"; +U"6" : U"F6"; +U"7" : U"F7"; +U"8" : U"F8"; +U"9" : U"F9"; +U"0" : U"F10"; +U"MINUS" : U"DELETE"; +U"Y" : '^'; +U"U" : '&'; +U"I" : '*'; +U"O" : '('; +U"P" : ')'; +U"RBRACE" : U"DELETE"; +U"H" : U"F6"; +U"J" : U"MINUS"; +U"K" : U"EQUAL"; +U"L" : U"LBRACE"; +U"SEMICOLON" : U"RBRACE"; +U"QUOTE" : U"BACKSLASH"; +U"RALT" : CONS"BRIGHTNESSINCREMENT"; +U"RCTRL" : CONS"PAUSEPLAY"; +U"N" : U"F12"; +U"DOWN" : U"HOME"; +U"UP" : U"PAGEDOWN"; +U"RIGHT" : U"PAGEUP"; +U"RGUI" : U"END"; + diff --git a/inf_ergodox/src/MDErgo1-Default-2.kll b/inf_ergodox/src/MDErgo1-Default-2.kll new file mode 100644 index 0000000..e82df14 --- /dev/null +++ b/inf_ergodox/src/MDErgo1-Default-2.kll @@ -0,0 +1,34 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"EQUALS" : U"BACKTICK"; +U"T" : U"5"; +U"R" : U"4"; +U"E" : U"3"; +U"W" : U"2"; +U"Q" : U"1"; +U"BACKSLASH" : U"BACKTICK"; +U"S" : U"F2"; +U"A" : U"F1"; +U"LALT" : CONS"SCANPREVIOUSTRACK"; +U"LCTRL" : CONS"STOP"; +U"Y" : U"6"; +U"U" : U"7"; +U"I" : U"8"; +U"O" : U"9"; +U"P" : U"0"; +U"J" : '_'; +U"K" : '+'; +U"L" : '{'; +U"SEMICOLON" : '}'; +U"QUOTE" : '|'; +U"RALT" : CONS"SCANNEXTTRACK"; +U"RCTRL" : CONS"FILEBROWSER"; +U"M" : U"INSERT"; + diff --git a/inf_ergodox/src/MDErgo1-Default.json b/inf_ergodox/src/MDErgo1-Default.json new file mode 100644 index 0000000..2cd315a --- /dev/null +++ b/inf_ergodox/src/MDErgo1-Default.json @@ -0,0 +1,1298 @@ +{ + "header": { + "Name": "MDErgo1", + "Layout": "Default", + "Base": "Blank", + "Version": "0.1", + "Author": "HaaTa (Jacob Alexander) 2015", + "KLL": "0.3c", + "Date": "2015-09-12", + "Generator": "KIICONF 0.2" + }, + "matrix": [ + { + "code": "0x02", + "x": 26, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "1": { + "key": "F11", + "label": "F11" + } + } + }, + { + "code": "0x03", + "x": 22, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "5", + "label": "5" + }, + "1": { + "key": "F5", + "label": "F5" + } + } + }, + { + "code": "0x04", + "x": 18, + "y": 1, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "4", + "label": "4" + }, + "1": { + "key": "F4", + "label": "F4" + } + } + }, + { + "code": "0x05", + "x": 14, + "y": 0, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "3", + "label": "3" + }, + "1": { + "key": "F3", + "label": "F3" + } + } + }, + { + "code": "0x06", + "x": 10, + "y": 1, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "2", + "label": "2" + }, + "1": { + "key": "F2", + "label": "F2" + } + } + }, + { + "code": "0x07", + "x": 6, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "1", + "label": "1" + }, + "1": { + "key": "F1", + "label": "F1" + } + } + }, + { + "code": "0x08", + "x": 0, + "y": 2, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "#:'~'", + "label": "~" + }, + "1": { + "key": "ESCAPE", + "label": "ESC" + }, + "2": { + "key": "BACKTICK", + "label": "`" + } + } + }, + { + "code": "0x0B", + "x": 26, + "y": 6, + "w": 4, + "h": 6, + "layers": { + "0": { + "key": "NEXT LAYER", + "label": "NEXT-\u0192" + } + } + }, + { + "code": "0x0C", + "x": 22, + "y": 6, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "T", + "label": "T" + }, + "1": { + "key": "#:'%'", + "label": "%" + }, + "2": { + "key": "5", + "label": "5" + } + } + }, + { + "code": "0x0D", + "x": 18, + "y": 5, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "R", + "label": "R" + }, + "1": { + "key": "#:'$'", + "label": "$" + }, + "2": { + "key": "4", + "label": "4" + } + } + }, + { + "code": "0x0E", + "x": 14, + "y": 4, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "E", + "label": "E" + }, + "1": { + "key": "#:'#'", + "label": "#" + }, + "2": { + "key": "3", + "label": "3" + } + } + }, + { + "code": "0x0F", + "x": 10, + "y": 5, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "W", + "label": "W" + }, + "1": { + "key": "#:'@'", + "label": "@" + }, + "2": { + "key": "2", + "label": "2" + } + } + }, + { + "code": "0x10", + "x": 6, + "y": 6, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "Q", + "label": "Q" + }, + "1": { + "key": "#:'!'", + "label": "!" + }, + "2": { + "key": "1", + "label": "1" + } + } + }, + { + "code": "0x11", + "x": 0, + "y": 6, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "TAB", + "label": "TAB" + }, + "1": { + "key": "#:'~'", + "label": "~" + }, + "2": { + "key": "BACKTICK", + "label": "`" + } + } + }, + { + "code": "0x15", + "x": 22, + "y": 10, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "G", + "label": "G" + }, + "1": { + "key": "F5", + "label": "F5" + } + } + }, + { + "code": "0x16", + "x": 18, + "y": 9, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "F", + "label": "F" + }, + "1": { + "key": "F4", + "label": "F4" + } + } + }, + { + "code": "0x17", + "x": 14, + "y": 8, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "D", + "label": "D" + }, + "1": { + "key": "F3", + "label": "F3" + } + } + }, + { + "code": "0x18", + "x": 10, + "y": 9, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "S", + "label": "S" + }, + "1": { + "key": "F2", + "label": "F2" + }, + "2": { + "key": "F2", + "label": "F2" + } + } + }, + { + "code": "0x19", + "x": 6, + "y": 10, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "A", + "label": "A" + }, + "1": { + "key": "F1", + "label": "F1" + }, + "2": { + "key": "F1", + "label": "F1" + } + } + }, + { + "code": "0x1A", + "x": 0, + "y": 10, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "ESCAPE", + "label": "ESC" + } + } + }, + { + "code": "0x1B", + "x": 30, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "MENU", + "label": "MENU" + }, + "1": { + "key": "CONS:BRIGHTNESSDECREMENT", + "label": "SCRN-" + }, + "2": { + "key": "CONS:SCANPREVIOUSTRACK", + "label": "PREV" + } + } + }, + { + "code": "0x1C", + "x": 26, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "CONS:VOLUMEDOWN", + "label": "VOL-" + }, + "1": { + "key": "CONS:MUTE", + "label": "MUTE" + }, + "2": { + "key": "CONS:STOP", + "label": "STOP" + } + } + }, + { + "code": "0x1D", + "x": 26, + "y": 12, + "w": 4, + "h": 6, + "layers": { + "0": { + "key": "PREV LAYER", + "label": "PREV-\u0192" + } + } + }, + { + "code": "0x1E", + "x": 22, + "y": 14, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "B", + "label": "B" + }, + "1": { + "key": "F11", + "label": "F11" + } + } + }, + { + "code": "0x1F", + "x": 18, + "y": 13, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "V", + "label": "V" + }, + "1": { + "key": "F10", + "label": "F10" + } + } + }, + { + "code": "0x20", + "x": 14, + "y": 12, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "C", + "label": "C" + }, + "1": { + "key": "F9", + "label": "F9" + } + } + }, + { + "code": "0x21", + "x": 10, + "y": 13, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "X", + "label": "X" + }, + "1": { + "key": "F8", + "label": "F8" + } + } + }, + { + "code": "0x22", + "x": 6, + "y": 14, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "Z", + "label": "Z" + }, + "1": { + "key": "F7", + "label": "F7" + } + } + }, + { + "code": "0x23", + "x": 0, + "y": 14, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "LSHIFT", + "label": "L\u21d1" + } + } + }, + { + "code": "0x24", + "x": 30, + "y": 22, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "HOME", + "label": "HOME" + } + } + }, + { + "code": "0x25", + "x": 30, + "y": 26, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "NUMLOCK", + "label": "NMLK" + } + } + }, + { + "code": "0x26", + "x": 26, + "y": 22, + "w": 4, + "h": 8, + "layers": { + "0": { + "key": "BACKSPACE", + "label": "BKSP" + }, + "1": { + "key": "DELETE", + "label": "DEL" + } + } + }, + { + "code": "0x27", + "x": 22, + "y": 22, + "w": 4, + "h": 8, + "layers": { + "0": { + "key": "SPACE", + "label": "[ ]" + } + } + }, + { + "code": "0x28", + "x": 18, + "y": 17, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "FUN1", + "label": "\u01921" + } + } + }, + { + "code": "0x29", + "x": 14, + "y": 16, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "LGUI", + "label": "LGUI" + } + } + }, + { + "code": "0x2A", + "x": 10, + "y": 17, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "LALT", + "label": "LALT" + } + } + }, + { + "code": "0x2B", + "x": 6, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "#:flashMode()", + "label": "FLASH" + } + } + }, + { + "code": "0x2C", + "x": 2, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "LCTRL", + "label": "LCTRL" + } + } + }, + { + "code": "0x02", + "x": 42, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "1": { + "key": "F12", + "label": "F12" + } + } + }, + { + "code": "0x03", + "x": 46, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "6", + "label": "6" + }, + "1": { + "key": "F6", + "label": "F6" + } + } + }, + { + "code": "0x04", + "x": 50, + "y": 1, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "7", + "label": "7" + }, + "1": { + "key": "F7", + "label": "F7" + } + } + }, + { + "code": "0x05", + "x": 54, + "y": 0, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "8", + "label": "8" + }, + "1": { + "key": "F8", + "label": "F8" + } + } + }, + { + "code": "0x06", + "x": 58, + "y": 1, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "9", + "label": "9" + }, + "1": { + "key": "F9", + "label": "F9" + } + } + }, + { + "code": "0x07", + "x": 62, + "y": 2, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "0", + "label": "0" + }, + "1": { + "key": "F10", + "label": "F10" + } + } + }, + { + "code": "0x08", + "x": 66, + "y": 2, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "BACKSPACE", + "label": "BKSP" + }, + "1": { + "key": "DELETE", + "label": "DEL" + } + } + }, + { + "code": "0x0B", + "x": 42, + "y": 6, + "w": 4, + "h": 6, + "layers": { + "0": { + "key": "NEXT LAYER", + "label": "NEXT-\u0192" + } + } + }, + { + "code": "0x0C", + "x": 46, + "y": 6, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "Y", + "label": "Y" + }, + "1": { + "key": "#:'^'", + "label": "^" + }, + "2": { + "key": "6", + "label": "6" + } + } + }, + { + "code": "0x0D", + "x": 50, + "y": 5, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "U", + "label": "U" + }, + "1": { + "key": "#:'&'", + "label": "&" + }, + "2": { + "key": "7", + "label": "7" + } + } + }, + { + "code": "0x0E", + "x": 54, + "y": 4, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "I", + "label": "I" + }, + "1": { + "key": "#:'*'", + "label": "*" + }, + "2": { + "key": "8", + "label": "8" + } + } + }, + { + "code": "0x0F", + "x": 58, + "y": 5, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "O", + "label": "O" + }, + "1": { + "key": "#:'('", + "label": "(" + }, + "2": { + "key": "9", + "label": "9" + } + } + }, + { + "code": "0x10", + "x": 62, + "y": 6, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "P", + "label": "P" + }, + "1": { + "key": "#:')'", + "label": ")" + }, + "2": { + "key": "0", + "label": "0" + } + } + }, + { + "code": "0x11", + "x": 66, + "y": 6, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "BACKSPACE", + "label": "BKSP" + }, + "1": { + "key": "DELETE", + "label": "DEL" + } + } + }, + { + "code": "0x15", + "x": 46, + "y": 10, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "H", + "label": "H" + }, + "1": { + "key": "F6", + "label": "F6" + } + } + }, + { + "code": "0x16", + "x": 50, + "y": 9, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "J", + "label": "J" + }, + "1": { + "key": "MINUS", + "label": "-" + }, + "2": { + "key": "#:'_'", + "label": "_" + } + } + }, + { + "code": "0x17", + "x": 54, + "y": 8, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "K", + "label": "K" + }, + "1": { + "key": "EQUAL", + "label": "=" + }, + "2": { + "key": "#:'+'", + "label": "+" + } + } + }, + { + "code": "0x18", + "x": 58, + "y": 9, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "L", + "label": "L" + }, + "1": { + "key": "LBRACE", + "label": "[" + }, + "2": { + "key": "#:'{'", + "label": "{" + } + } + }, + { + "code": "0x19", + "x": 62, + "y": 10, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "SEMICOLON", + "label": ";" + }, + "1": { + "key": "RBRACE", + "label": "]" + }, + "2": { + "key": "#:'}'", + "label": "}" + } + } + }, + { + "code": "0x1A", + "x": 66, + "y": 10, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "QUOTE", + "label": "'" + }, + "1": { + "key": "BACKSLASH", + "label": "\\" + }, + "2": { + "key": "#:'|'", + "label": "|" + } + } + }, + { + "code": "0x1B", + "x": 38, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "INSERT", + "label": "INS" + }, + "1": { + "key": "CONS:BRIGHTNESSINCREMENT", + "label": "SCRN+" + }, + "2": { + "key": "CONS:SCANNEXTTRACK", + "label": "NEXT" + } + } + }, + { + "code": "0x1C", + "x": 42, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "CONS:VOLUMEUP", + "label": "VOL+" + }, + "1": { + "key": "CONS:PAUSEPLAY", + "label": "PL\/PS" + }, + "2": { + "key": "CONS:FILEBROWSER", + "label": "FILES" + } + } + }, + { + "code": "0x1D", + "x": 42, + "y": 12, + "w": 4, + "h": 6, + "layers": { + "0": { + "key": "PREV LAYER", + "label": "PREV-\u0192" + } + } + }, + { + "code": "0x1E", + "x": 46, + "y": 14, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "N", + "label": "N" + }, + "1": { + "key": "F12", + "label": "F12" + } + } + }, + { + "code": "0x1F", + "x": 50, + "y": 13, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "M", + "label": "M" + }, + "2": { + "key": "INSERT", + "label": "INS" + } + } + }, + { + "code": "0x20", + "x": 54, + "y": 12, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "COMMA", + "label": "," + } + } + }, + { + "code": "0x21", + "x": 58, + "y": 13, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "PERIOD", + "label": "." + } + } + }, + { + "code": "0x22", + "x": 62, + "y": 14, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "SLASH", + "label": "\/" + } + } + }, + { + "code": "0x23", + "x": 66, + "y": 14, + "w": 6, + "h": 4, + "layers": { + "0": { + "key": "ENTER", + "label": "\u21b5" + } + } + }, + { + "code": "0x24", + "x": 38, + "y": 22, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "END", + "label": "END" + } + } + }, + { + "code": "0x25", + "x": 38, + "y": 26, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "PRINTSCREEN", + "label": "PRSC" + } + } + }, + { + "code": "0x26", + "x": 42, + "y": 22, + "w": 4, + "h": 8, + "layers": { + "0": { + "key": "ENTER", + "label": "\u21b5" + } + } + }, + { + "code": "0x27", + "x": 46, + "y": 22, + "w": 4, + "h": 8, + "layers": { + "0": { + "key": "SPACE", + "label": "[ ]" + } + } + }, + { + "code": "0x28", + "x": 50, + "y": 17, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "FUN2", + "label": "\u01922" + } + } + }, + { + "code": "0x29", + "x": 54, + "y": 16, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "LEFT", + "label": "\u2190" + }, + "1": { + "key": "HOME", + "label": "HOME" + } + } + }, + { + "code": "0x2A", + "x": 58, + "y": 17, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "DOWN", + "label": "\u2193" + }, + "1": { + "key": "PAGEDOWN", + "label": "PGDN" + } + } + }, + { + "code": "0x2B", + "x": 62, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "UP", + "label": "\u2191" + }, + "1": { + "key": "PAGEUP", + "label": "PGUP" + } + } + }, + { + "code": "0x2C", + "x": 66, + "y": 18, + "w": 4, + "h": 4, + "layers": { + "0": { + "key": "RIGHT", + "label": "\u2192" + }, + "1": { + "key": "END", + "label": "END" + } + } + } + ] +} \ No newline at end of file diff --git a/inf_ergodox/src/kll/MDErgo1-Default-0.kll b/inf_ergodox/src/kll/MDErgo1-Default-0.kll new file mode 100644 index 0000000..08b18fc --- /dev/null +++ b/inf_ergodox/src/kll/MDErgo1-Default-0.kll @@ -0,0 +1,84 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"5" : U"5"; +U"4" : U"4"; +U"3" : U"3"; +U"2" : U"2"; +U"1" : U"1"; +U"EQUALS" : '~'; +U"FUNCTION1" : U"NEXT LAYER"; +U"T" : U"T"; +U"R" : U"R"; +U"E" : U"E"; +U"W" : U"W"; +U"Q" : U"Q"; +U"BACKSLASH" : U"TAB"; +U"G" : U"G"; +U"F" : U"F"; +U"D" : U"D"; +U"S" : U"S"; +U"A" : U"A"; +U"TAB" : U"ESCAPE"; +U"LALT" : U"MENU"; +U"LCTRL" : CONS"VOLUMEDOWN"; +U"FUNCTION2" : U"PREV LAYER"; +U"B" : U"B"; +U"V" : U"V"; +U"C" : U"C"; +U"X" : U"X"; +U"Z" : U"Z"; +U"LSHIFT" : U"LSHIFT"; +U"HOME" : U"HOME"; +U"END" : U"NUMLOCK"; +U"DELETE" : U"BACKSPACE"; +U"BACKSPACE" : U"SPACE"; +U"FUNCTION5" : U"FUN1"; +U"FUNCTION4" : U"LGUI"; +U"FUNCTION3" : U"LALT"; +U"BACKTICK" : flashMode(); +U"LGUI" : U"LCTRL"; +U"6" : U"6"; +U"7" : U"7"; +U"8" : U"8"; +U"9" : U"9"; +U"0" : U"0"; +U"MINUS" : U"BACKSPACE"; +U"LBRACE" : U"NEXT LAYER"; +U"Y" : U"Y"; +U"U" : U"U"; +U"I" : U"I"; +U"O" : U"O"; +U"P" : U"P"; +U"RBRACE" : U"BACKSPACE"; +U"H" : U"H"; +U"J" : U"J"; +U"K" : U"K"; +U"L" : U"L"; +U"SEMICOLON" : U"SEMICOLON"; +U"QUOTE" : U"QUOTE"; +U"RALT" : U"INSERT"; +U"RCTRL" : CONS"VOLUMEUP"; +U"FUNCTION7" : U"PREV LAYER"; +U"N" : U"N"; +U"M" : U"M"; +U"COMMA" : U"COMMA"; +U"PERIOD" : U"PERIOD"; +U"SLASH" : U"SLASH"; +U"RSHIFT" : U"ENTER"; +U"PAGEUP" : U"END"; +U"PAGEDOWN" : U"PRINTSCREEN"; +U"ENTER" : U"ENTER"; +U"SPACE" : U"SPACE"; +U"LEFT" : U"FUN2"; +U"DOWN" : U"LEFT"; +U"UP" : U"DOWN"; +U"RIGHT" : U"UP"; +U"RGUI" : U"RIGHT"; + diff --git a/inf_ergodox/src/kll/MDErgo1-Default-1.kll b/inf_ergodox/src/kll/MDErgo1-Default-1.kll new file mode 100644 index 0000000..5570169 --- /dev/null +++ b/inf_ergodox/src/kll/MDErgo1-Default-1.kll @@ -0,0 +1,62 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"ESC" : U"F11"; +U"5" : U"F5"; +U"4" : U"F4"; +U"3" : U"F3"; +U"2" : U"F2"; +U"1" : U"F1"; +U"EQUALS" : U"ESCAPE"; +U"T" : '%'; +U"R" : '$'; +U"E" : '#'; +U"W" : '@'; +U"Q" : '!'; +U"BACKSLASH" : '~'; +U"G" : U"F5"; +U"F" : U"F4"; +U"D" : U"F3"; +U"S" : U"F2"; +U"A" : U"F1"; +U"LALT" : CONS"BRIGHTNESSDECREMENT"; +U"LCTRL" : CONS"MUTE"; +U"B" : U"F11"; +U"V" : U"F10"; +U"C" : U"F9"; +U"X" : U"F8"; +U"Z" : U"F7"; +U"DELETE" : U"DELETE"; +U"FUNCTION6" : U"F12"; +U"6" : U"F6"; +U"7" : U"F7"; +U"8" : U"F8"; +U"9" : U"F9"; +U"0" : U"F10"; +U"MINUS" : U"DELETE"; +U"Y" : '^'; +U"U" : '&'; +U"I" : '*'; +U"O" : '('; +U"P" : ')'; +U"RBRACE" : U"DELETE"; +U"H" : U"F6"; +U"J" : U"MINUS"; +U"K" : U"EQUAL"; +U"L" : U"LBRACE"; +U"SEMICOLON" : U"RBRACE"; +U"QUOTE" : U"BACKSLASH"; +U"RALT" : CONS"BRIGHTNESSINCREMENT"; +U"RCTRL" : CONS"PAUSEPLAY"; +U"N" : U"F12"; +U"DOWN" : U"HOME"; +U"UP" : U"PAGEDOWN"; +U"RIGHT" : U"PAGEUP"; +U"RGUI" : U"END"; + diff --git a/inf_ergodox/src/kll/MDErgo1-Default-2.kll b/inf_ergodox/src/kll/MDErgo1-Default-2.kll new file mode 100644 index 0000000..e82df14 --- /dev/null +++ b/inf_ergodox/src/kll/MDErgo1-Default-2.kll @@ -0,0 +1,34 @@ +Name = "MDErgo1"; +Layout = "Default"; +Base = "Blank"; +Version = "0.1"; +Author = "HaaTa (Jacob Alexander) 2015"; +KLL = "0.3c"; +Date = "2015-09-12"; +Generator = "KIICONF 0.2"; + +U"EQUALS" : U"BACKTICK"; +U"T" : U"5"; +U"R" : U"4"; +U"E" : U"3"; +U"W" : U"2"; +U"Q" : U"1"; +U"BACKSLASH" : U"BACKTICK"; +U"S" : U"F2"; +U"A" : U"F1"; +U"LALT" : CONS"SCANPREVIOUSTRACK"; +U"LCTRL" : CONS"STOP"; +U"Y" : U"6"; +U"U" : U"7"; +U"I" : U"8"; +U"O" : U"9"; +U"P" : U"0"; +U"J" : '_'; +U"K" : '+'; +U"L" : '{'; +U"SEMICOLON" : '}'; +U"QUOTE" : '|'; +U"RALT" : CONS"SCANNEXTTRACK"; +U"RCTRL" : CONS"FILEBROWSER"; +U"M" : U"INSERT"; + diff --git a/inf_ergodox/src/left_kiibohd.dfu.bin b/inf_ergodox/src/left_kiibohd.dfu.bin new file mode 100644 index 0000000000000000000000000000000000000000..6ffc00a0198021146a00db96973b4e7ebe2a78fd GIT binary patch literal 43664 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 Gh5rH19MG}= literal 0 HcmV?d00001 diff --git a/inf_ergodox/src/log/build.log b/inf_ergodox/src/log/build.log new file mode 100644 index 0000000..74940a1 --- /dev/null +++ b/inf_ergodox/src/log/build.log @@ -0,0 +1,174 @@ +cgi-bin/build_layout.bash 1efe6f93b27899aeae10fefb1336f230 MDErgo1 "MDErgo1-Default-0.kll" "MDErgo1-Default-1.kll" "MDErgo1-Default-2.kll" 2>&1 +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230 +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230 ++ mkdir -p left ++ mkdir -p right ++ cd left ++ cd right ++ cp ../MDErgo1-Default-0.kll ../MDErgo1-Default-1.kll ../MDErgo1-Default-2.kll . ++ cp ../MDErgo1-Default-0.kll ../MDErgo1-Default-1.kll ../MDErgo1-Default-2.kll . ++ cmake /srv/KiiConf/controller -DScanModule=MDErgo1 -DCHIP=mk20dx256vlh7 '-DBaseMap=defaultMap leftHand slave1 rightHand' -DMacroModule=PartialMap -DOutputModule=pjrcUSB -DDebugModule=full '-DDefaultMap=MDErgo1-Default-0 lcdFuncMap' '-DPartialMaps=MDErgo1-Default-1 lcdFuncMap;MDErgo1-Default-2 lcdFuncMap' ++ cmake /srv/KiiConf/controller -DScanModule=MDErgo1 -DCHIP=mk20dx256vlh7 '-DBaseMap=defaultMap rightHand slave1 leftHand' -DMacroModule=PartialMap -DOutputModule=pjrcUSB -DDebugModule=full '-DDefaultMap=MDErgo1-Default-0 lcdFuncMap' '-DPartialMaps=MDErgo1-Default-1 lcdFuncMap;MDErgo1-Default-2 lcdFuncMap' +-- Compiler Family: +arm +-- Compiler Family: +arm +-- Compiler Selected: +gcc +-- Chip Selected: +mk20dx256vlh7 +-- Compiler Selected: +-- Chip Family: +mk20dx +-- CPU Selected: +cortex-m4 +-- Compiler Source Files: +Lib/mk20dx.c;Lib/delay.cgcc +-- Chip Selected: +mk20dx256vlh7 + +-- Bootloader Type: +dfu-- Chip Family: + +mk20dx +-- CPU Selected: +cortex-m4 +-- Compiler Source Files: +Lib/mk20dx.c;Lib/delay.c +-- Bootloader Type: +dfu +-- Detected Scan Module Source Files: +Scan/ISSILed/led_scan.c;Scan/MatrixARM/matrix_scan.c;Scan/STLcd/lcd_scan.c;Scan/UARTConnect/connect_scan.c;Scan/MDErgo1/scan_loop.c +-- Detected Macro Module Source Files: +Macro/PartialMap/macro.c +-- Detected Output Module Source Files: +Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;Output/pjrcUSB/arm/usb_joystick.c;Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_mouse.c;Output/pjrcUSB/arm/usb_serial.c +-- Detected Scan Module Source Files: +Scan/ISSILed/led_scan.c;Scan/MatrixARM/matrix_scan.c;Scan/STLcd/lcd_scan.c;Scan/UARTConnect/connect_scan.c;Scan/MDErgo1/scan_loop.c +-- Detected Macro Module Source Files: +Macro/PartialMap/macro.c +-- Detected Debug Module Source Files: +Debug/cli/cli.c;Debug/led/led.c;Debug/print/print.c +-- Detected Output Module Source Files: +Output/pjrcUSB/output_com.c;Output/pjrcUSB/arm/usb_desc.c;Output/pjrcUSB/arm/usb_dev.c;Output/pjrcUSB/arm/usb_joystick.c;Output/pjrcUSB/arm/usb_keyboard.c;Output/pjrcUSB/arm/usb_mem.c;Output/pjrcUSB/arm/usb_mouse.c;Output/pjrcUSB/arm/usb_serial.c +-- Detected Debug Module Source Files: +Debug/cli/cli.c;Debug/led/led.c;Debug/print/print.c +-- Found Git: /usr/bin/git (found version "1.9.1") +-- Found Ctags: /usr/bin/ctags (found version "5.9~svn20110310") +-- Found Git: /usr/bin/git (found version "1.9.1") +-- Found Ctags: /usr/bin/ctags (found version "5.9~svn20110310") +ctags: ctags: cannot open tag file : Permission denied +cannot open tag file : Permission denied +-- Detected Layout Files: +-- Detected Layout Files: +/srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +/srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +/srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +/srv/KiiConf/controller/Scan/STLcd/capabilities.kll +/srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +/srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +/srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +/srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +/srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +/srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +/srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/right/MDErgo1-Default-0.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/right/MDErgo1-Default-1.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/right/MDErgo1-Default-2.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +/srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +/srv/KiiConf/controller/Scan/STLcd/capabilities.kll +/srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +/srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +/srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +/srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +/srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +/srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +/srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/left/MDErgo1-Default-0.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/left/MDErgo1-Default-1.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/left/MDErgo1-Default-2.kll +/srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +-- Found DFU_SUFFIX: /usr/local/bin/dfu-suffix (found version "0.8") +-- Found DFU_SUFFIX: /usr/local/bin/dfu-suffix (found version "0.8") +-- Configuring done +-- Configuring done +-- Generating done +-- Build files have been written to: /srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/left +-- Generating done ++ make -j +-- Build files have been written to: /srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230/right ++ make -j +[ 4%] [ 4%] Generating KLL Layout +Generating KLL Layout +Scanning dependencies of target kiibohd.elf +[ 9%] [ 13%] [ 18%] [ 22%] [ 27%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/mk20dx.c.o +Building C object CMakeFiles/kiibohd.elf.dir/main.c.o +[ 31%] [ 36%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/delay.c.o +[ 40%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/STLcd/lcd_scan.c.o +[ 45%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/ISSILed/led_scan.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Scan/MatrixARM/matrix_scan.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Scan/MDErgo1/scan_loop.c.o +[ 50%] Scanning dependencies of target kiibohd.elf +Building C object CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/macro.c.o +[ 54%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/UARTConnect/connect_scan.c.o +[ 9%] [ 13%] [ 18%] Building C object CMakeFiles/kiibohd.elf.dir/main.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/output_com.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Lib/mk20dx.c.o +[ 59%] [ 63%] Building C object CMakeFiles/kiibohd.elf.dir/Lib/delay.c.o +[ 22%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_desc.c.o +[ 68%] [ 72%] [ 27%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/ISSILed/led_scan.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_dev.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Scan/MatrixARM/matrix_scan.c.o +[ 31%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_keyboard.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_joystick.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mem.c.o +[ 77%] [ 36%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/STLcd/lcd_scan.c.o +[ 81%] [ 86%] [ 40%] [ 45%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mouse.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Scan/UARTConnect/connect_scan.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_serial.c.o +[ 50%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Macro/PartialMap/macro.c.o +[ 90%] Building C object CMakeFiles/kiibohd.elf.dir/Scan/MDErgo1/scan_loop.c.o +[ 54%] [ 95%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/output_com.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Debug/led/led.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_desc.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Debug/print/print.c.o +[ 59%] [ 63%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_dev.c.o +[ 68%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_joystick.c.o +[ 72%] [ 77%] [ 81%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_keyboard.c.o +[ 86%] Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_serial.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mem.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Output/pjrcUSB/arm/usb_mouse.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Debug/cli/cli.c.o +[ 90%] [ 95%] Building C object CMakeFiles/kiibohd.elf.dir/Debug/print/print.c.o +Building C object CMakeFiles/kiibohd.elf.dir/Debug/led/led.c.o +Linking C executable kiibohd.elf +Create and sign dfu bin file: kiibohd.dfu.bin +Creating Extended Listing: kiibohd.lss +Linking C executable kiibohd.elf +Creating Symbol Table: kiibohd.sym +[ 95%] Built target kiibohd.elf +Scanning dependencies of target SizeAfter +[100%] Chip usage for mk20dx256vlh7 +  SRAM: 14% 9664/65536 bytes +Create and sign dfu bin file: kiibohd.dfu.bin + Flash: 17% 43552/253952 bytes +Creating Extended Listing: kiibohd.lss +[100%] Built target SizeAfter ++ RETVAL=0 ++ set +x +/srv/KiiConf/tmp/1efe6f93b27899aeae10fefb1336f230 +Creating Symbol Table: kiibohd.sym +[ 95%] Built target kiibohd.elf +Scanning dependencies of target SizeAfter +[100%] Chip usage for mk20dx256vlh7 +  SRAM: 14% 9716/65536 bytes + Flash: 17% 43648/253952 bytes +[100%] Built target SizeAfter ++ RETVAL=0 ++ set +x diff --git a/inf_ergodox/src/log/left_generatedKeymap.h b/inf_ergodox/src/log/left_generatedKeymap.h new file mode 100644 index 0000000..c2b01ae --- /dev/null +++ b/inf_ergodox/src/log/left_generatedKeymap.h @@ -0,0 +1,1030 @@ +/* Copyright (C) 2014-2015 by Jacob Alexander + * + * This file is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this file. If not, see . + */ + +// This file was generated by the kll compiler, DO NOT EDIT. +// Generation Date: 2016-04-05 +// KLL Backend: kiibohd +// KLL Git Rev: b6cf0f13a88fef650f48270a1d1e20ccb1972d21 +// KLL Git Changes: None +// Compiler arguments: +// /srv/KiiConf/controller/kll/kll.py +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// -d +// MDErgo1-Default-0.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-1.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-2.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// --backend +// kiibohd +// --templates +// /srv/KiiConf/controller/kll/templates/kiibohdKeymap.h +// /srv/KiiConf/controller/kll/templates/kiibohdDefs.h +// --outputs +// generatedKeymap.h +// kll_defs.h +// +// - Base Layer - +// ISSILedCapabilities +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// MatrixArmCapabilities +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// STLcdCapabilities +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// UARTConnectCapabilities +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// PartialMapCapabilities +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// pjrcUSBCapabilities +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// MDErgo1 +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// MDErgo1LeftHand +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// MDErgo1Slave1 +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// MDErgo1RightHand +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// - Default Layer - +// MDErgo1 +// MDErgo1-Default-0.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// - Partial Layers - +// Layer 1 +// MDErgo1 +// MDErgo1-Default-1.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// Layer 2 +// MDErgo1 +// MDErgo1-Default-2.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll + + + +#pragma once + +// ----- Includes ----- + +// KLL Include +#include + + + +// ----- Capabilities ----- + +// Capability function declarations +void LCD_layerStackExact_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void LCD_layerStack_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void LED_control_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerLatch_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerLock_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerRotate_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerShift_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerState_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_flashMode_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_noneSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); + + + +// Indexed Capabilities Table +const Capability CapabilitiesList[] = { + { LCD_layerStackExact_capability, 9 }, + { LCD_layerStack_capability, 0 }, + { LED_control_capability, 4 }, + { Macro_layerLatch_capability, 2 }, + { Macro_layerLock_capability, 2 }, + { Macro_layerRotate_capability, 1 }, + { Macro_layerShift_capability, 2 }, + { Macro_layerState_capability, 3 }, + { Output_consCtrlSend_capability, 2 }, + { Output_flashMode_capability, 0 }, + { Output_kbdProtocolBoot_capability, 0 }, + { Output_kbdProtocolNKRO_capability, 0 }, + { Output_noneSend_capability, 0 }, + { Output_sysCtrlSend_capability, 1 }, + { Output_usbCodeSend_capability, 1 }, +}; + + +// -- Result Macros + +// Result Macro Guides +Guide_RM( 0 ) = { 1, 14, KEY_2, 0 }; +Guide_RM( 1 ) = { 2, 6, 6, 0, 1, 0 }; +Guide_RM( 2 ) = { 1, 14, KEY_F, 0 }; +Guide_RM( 3 ) = { 1, 14, KEY_SEMICOLON, 0 }; +Guide_RM( 4 ) = { 1, 14, KEY_ESC, 0 }; +Guide_RM( 5 ) = { 1, 14, KEY_J, 0 }; +Guide_RM( 6 ) = { 1, 14, KEY_QUOTE, 0 }; +Guide_RM( 7 ) = { 1, 14, KEY_LGUI, 0 }; +Guide_RM( 8 ) = { 1, 14, KEY_MENU, 0 }; +Guide_RM( 9 ) = { 1, 14, KEY_K, 0 }; +Guide_RM( 10 ) = { 1, 14, KEY_BACKSPACE, 0 }; +Guide_RM( 11 ) = { 1, 14, KEY_LEFT, 0 }; +Guide_RM( 12 ) = { 1, 14, KEY_5, 0 }; +Guide_RM( 13 ) = { 1, 14, KEY_LALT, 0 }; +Guide_RM( 14 ) = { 1, 14, KEY_ENTER, 0 }; +Guide_RM( 15 ) = { 1, 14, KEY_D, 0 }; +Guide_RM( 16 ) = { 1, 14, KEY_DOWN, 0 }; +Guide_RM( 17 ) = { 1, 14, KEY_P, 0 }; +Guide_RM( 18 ) = { 1, 9, 0 }; +Guide_RM( 19 ) = { 1, 14, KEY_TAB, 0 }; +Guide_RM( 20 ) = { 1, 14, KEY_SPACE, 0 }; +Guide_RM( 21 ) = { 1, 14, KEY_U, 0 }; +Guide_RM( 22 ) = { 1, 14, KEY_S, 0 }; +Guide_RM( 23 ) = { 1, 14, KEY_G, 0 }; +Guide_RM( 24 ) = { 1, 14, KEY_H, 0 }; +Guide_RM( 25 ) = { 1, 14, KEY_HOME, 0 }; +Guide_RM( 26 ) = { 1, 14, KEY_COMMA, 0 }; +Guide_RM( 27 ) = { 2, 6, 1, 0, 1, 0 }; +Guide_RM( 28 ) = { 1, 14, KEY_E, 0 }; +Guide_RM( 29 ) = { 1, 14, KEY_END, 0 }; +Guide_RM( 30 ) = { 1, 14, KEY_NUM_LOCK, 0 }; +Guide_RM( 31 ) = { 2, 5, 0, 1, 0 }; +Guide_RM( 32 ) = { 1, 14, KEY_I, 0 }; +Guide_RM( 33 ) = { 1, 14, KEY_W, 0 }; +Guide_RM( 34 ) = { 1, 14, KEY_PRINTSCREEN, 0 }; +Guide_RM( 35 ) = { 1, 14, KEY_O, 0 }; +Guide_RM( 36 ) = { 1, 14, KEY_X, 0 }; +Guide_RM( 37 ) = { 1, 14, KEY_Q, 0 }; +Guide_RM( 38 ) = { 1, 14, KEY_Y, 0 }; +Guide_RM( 39 ) = { 1, 14, KEY_B, 0 }; +Guide_RM( 40 ) = { 1, 14, KEY_PERIOD, 0 }; +Guide_RM( 41 ) = { 1, 14, KEY_Z, 0 }; +Guide_RM( 42 ) = { 1, 14, KEY_N, 0 }; +Guide_RM( 43 ) = { 1, 14, KEY_T, 0 }; +Guide_RM( 44 ) = { 1, 14, KEY_SLASH, 0 }; +Guide_RM( 45 ) = { 1, 14, KEY_9, 0 }; +Guide_RM( 46 ) = { 1, 14, KEY_LSHIFT, 0 }; +Guide_RM( 47 ) = { 1, 14, KEY_1, 0 }; +Guide_RM( 48 ) = { 1, 14, KEY_M, 0 }; +Guide_RM( 49 ) = { 1, 14, KEY_6, 0 }; +Guide_RM( 50 ) = { 1, 14, KEY_R, 0 }; +Guide_RM( 51 ) = { 1, 14, KEY_0, 0 }; +Guide_RM( 52 ) = { 2, 14, KEY_LSHIFT, 14, KEY_BACKTICK, 0 }; +Guide_RM( 53 ) = { 1, 14, KEY_V, 0 }; +Guide_RM( 54 ) = { 1, 14, KEY_INSERT, 0 }; +Guide_RM( 55 ) = { 1, 8, 234, 0, 0 }; +Guide_RM( 56 ) = { 1, 14, KEY_L, 0 }; +Guide_RM( 57 ) = { 1, 14, KEY_C, 0 }; +Guide_RM( 58 ) = { 1, 14, KEY_4, 0 }; +Guide_RM( 59 ) = { 1, 8, 233, 0, 0 }; +Guide_RM( 60 ) = { 2, 5, 1, 1, 0 }; +Guide_RM( 61 ) = { 1, 14, KEY_7, 0 }; +Guide_RM( 62 ) = { 1, 14, KEY_UP, 0 }; +Guide_RM( 63 ) = { 1, 14, KEY_3, 0 }; +Guide_RM( 64 ) = { 1, 14, KEY_LCTRL, 0 }; +Guide_RM( 65 ) = { 2, 6, 2, 0, 1, 0 }; +Guide_RM( 66 ) = { 1, 14, KEY_8, 0 }; +Guide_RM( 67 ) = { 1, 14, KEY_A, 0 }; +Guide_RM( 68 ) = { 1, 14, KEY_RIGHT, 0 }; +Guide_RM( 69 ) = { 1, 14, KEY_F2, 0 }; +Guide_RM( 70 ) = { 1, 14, KEY_F12, 0 }; +Guide_RM( 71 ) = { 1, 14, KEY_F4, 0 }; +Guide_RM( 72 ) = { 1, 14, KEY_RIGHT_BRACKET, 0 }; +Guide_RM( 73 ) = { 1, 14, KEY_MINUS, 0 }; +Guide_RM( 74 ) = { 1, 14, KEY_F11, 0 }; +Guide_RM( 75 ) = { 1, 14, KEY_BACKSLASH, 0 }; +Guide_RM( 76 ) = { 1, 8, 112, 0, 0 }; +Guide_RM( 77 ) = { 1, 14, KEY_EQUAL, 0 }; +Guide_RM( 78 ) = { 1, 14, KEY_DELETE, 0 }; +Guide_RM( 79 ) = { 1, 14, KEY_F5, 0 }; +Guide_RM( 80 ) = { 1, 14, KEY_F3, 0 }; +Guide_RM( 81 ) = { 1, 14, KEY_PAGE_DOWN, 0 }; +Guide_RM( 82 ) = { 2, 14, KEY_LSHIFT, 14, KEY_0, 0 }; +Guide_RM( 83 ) = { 2, 14, KEY_LSHIFT, 14, KEY_7, 0 }; +Guide_RM( 84 ) = { 1, 14, KEY_F6, 0 }; +Guide_RM( 85 ) = { 2, 14, KEY_LSHIFT, 14, KEY_3, 0 }; +Guide_RM( 86 ) = { 2, 14, KEY_LSHIFT, 14, KEY_8, 0 }; +Guide_RM( 87 ) = { 2, 14, KEY_LSHIFT, 14, KEY_2, 0 }; +Guide_RM( 88 ) = { 2, 14, KEY_LSHIFT, 14, KEY_9, 0 }; +Guide_RM( 89 ) = { 1, 14, KEY_F8, 0 }; +Guide_RM( 90 ) = { 2, 14, KEY_LSHIFT, 14, KEY_1, 0 }; +Guide_RM( 91 ) = { 2, 14, KEY_LSHIFT, 14, KEY_6, 0 }; +Guide_RM( 92 ) = { 1, 14, KEY_F7, 0 }; +Guide_RM( 93 ) = { 2, 14, KEY_LSHIFT, 14, KEY_5, 0 }; +Guide_RM( 94 ) = { 1, 14, KEY_F9, 0 }; +Guide_RM( 95 ) = { 1, 14, KEY_F1, 0 }; +Guide_RM( 96 ) = { 2, 14, KEY_LSHIFT, 14, KEY_4, 0 }; +Guide_RM( 97 ) = { 1, 14, KEY_F10, 0 }; +Guide_RM( 98 ) = { 1, 8, 111, 0, 0 }; +Guide_RM( 99 ) = { 1, 8, 226, 0, 0 }; +Guide_RM( 100 ) = { 1, 14, KEY_LEFT_BRACKET, 0 }; +Guide_RM( 101 ) = { 1, 8, 205, 0, 0 }; +Guide_RM( 102 ) = { 1, 14, KEY_PAGE_UP, 0 }; +Guide_RM( 103 ) = { 2, 14, KEY_LSHIFT, 14, KEY_RIGHT_BRACKET, 0 }; +Guide_RM( 104 ) = { 2, 14, KEY_LSHIFT, 14, KEY_MINUS, 0 }; +Guide_RM( 105 ) = { 2, 14, KEY_LSHIFT, 14, KEY_BACKSLASH, 0 }; +Guide_RM( 106 ) = { 1, 8, 182, 0, 0 }; +Guide_RM( 107 ) = { 2, 14, KEY_LSHIFT, 14, KEY_EQUAL, 0 }; +Guide_RM( 108 ) = { 1, 14, KEY_BACKTICK, 0 }; +Guide_RM( 109 ) = { 1, 8, 181, 0, 0 }; +Guide_RM( 110 ) = { 1, 8, 38, 2, 0 }; +Guide_RM( 111 ) = { 2, 14, KEY_LSHIFT, 14, KEY_LEFT_BRACKET, 0 }; +Guide_RM( 112 ) = { 1, 8, 180, 1, 0 }; + + +// -- Result Macro List + +// Indexed Table of Result Macros +const ResultMacro ResultMacroList[] = { + Define_RM( 0 ), + Define_RM( 1 ), + Define_RM( 2 ), + Define_RM( 3 ), + Define_RM( 4 ), + Define_RM( 5 ), + Define_RM( 6 ), + Define_RM( 7 ), + Define_RM( 8 ), + Define_RM( 9 ), + Define_RM( 10 ), + Define_RM( 11 ), + Define_RM( 12 ), + Define_RM( 13 ), + Define_RM( 14 ), + Define_RM( 15 ), + Define_RM( 16 ), + Define_RM( 17 ), + Define_RM( 18 ), + Define_RM( 19 ), + Define_RM( 20 ), + Define_RM( 21 ), + Define_RM( 22 ), + Define_RM( 23 ), + Define_RM( 24 ), + Define_RM( 25 ), + Define_RM( 26 ), + Define_RM( 27 ), + Define_RM( 28 ), + Define_RM( 29 ), + Define_RM( 30 ), + Define_RM( 31 ), + Define_RM( 32 ), + Define_RM( 33 ), + Define_RM( 34 ), + Define_RM( 35 ), + Define_RM( 36 ), + Define_RM( 37 ), + Define_RM( 38 ), + Define_RM( 39 ), + Define_RM( 40 ), + Define_RM( 41 ), + Define_RM( 42 ), + Define_RM( 43 ), + Define_RM( 44 ), + Define_RM( 45 ), + Define_RM( 46 ), + Define_RM( 47 ), + Define_RM( 48 ), + Define_RM( 49 ), + Define_RM( 50 ), + Define_RM( 51 ), + Define_RM( 52 ), + Define_RM( 53 ), + Define_RM( 54 ), + Define_RM( 55 ), + Define_RM( 56 ), + Define_RM( 57 ), + Define_RM( 58 ), + Define_RM( 59 ), + Define_RM( 60 ), + Define_RM( 61 ), + Define_RM( 62 ), + Define_RM( 63 ), + Define_RM( 64 ), + Define_RM( 65 ), + Define_RM( 66 ), + Define_RM( 67 ), + Define_RM( 68 ), + Define_RM( 69 ), + Define_RM( 70 ), + Define_RM( 71 ), + Define_RM( 72 ), + Define_RM( 73 ), + Define_RM( 74 ), + Define_RM( 75 ), + Define_RM( 76 ), + Define_RM( 77 ), + Define_RM( 78 ), + Define_RM( 79 ), + Define_RM( 80 ), + Define_RM( 81 ), + Define_RM( 82 ), + Define_RM( 83 ), + Define_RM( 84 ), + Define_RM( 85 ), + Define_RM( 86 ), + Define_RM( 87 ), + Define_RM( 88 ), + Define_RM( 89 ), + Define_RM( 90 ), + Define_RM( 91 ), + Define_RM( 92 ), + Define_RM( 93 ), + Define_RM( 94 ), + Define_RM( 95 ), + Define_RM( 96 ), + Define_RM( 97 ), + Define_RM( 98 ), + Define_RM( 99 ), + Define_RM( 100 ), + Define_RM( 101 ), + Define_RM( 102 ), + Define_RM( 103 ), + Define_RM( 104 ), + Define_RM( 105 ), + Define_RM( 106 ), + Define_RM( 107 ), + Define_RM( 108 ), + Define_RM( 109 ), + Define_RM( 110 ), + Define_RM( 111 ), + Define_RM( 112 ), +}; + + +// -- Trigger Macro Record + +// Keeps a record/state of each result macro +ResultMacroRecord ResultMacroRecordList[ ResultMacroNum ]; + + +// -- Trigger Macros + +// Trigger Macro Guides +Guide_TM( 0 ) = { 1, 0x00, 0x01, 0x06, 0 }; +Guide_TM( 1 ) = { 1, 0x00, 0x01, 0x2F, 0 }; +Guide_TM( 2 ) = { 1, 0x00, 0x01, 0x16, 0 }; +Guide_TM( 3 ) = { 1, 0x00, 0x01, 0x46, 0 }; +Guide_TM( 4 ) = { 1, 0x00, 0x01, 0x1A, 0 }; +Guide_TM( 5 ) = { 1, 0x00, 0x01, 0x43, 0 }; +Guide_TM( 6 ) = { 1, 0x00, 0x01, 0x02, 0 }; +Guide_TM( 7 ) = { 1, 0x00, 0x01, 0x47, 0 }; +Guide_TM( 8 ) = { 1, 0x00, 0x01, 0x29, 0 }; +Guide_TM( 9 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 10 ) = { 1, 0x00, 0x01, 0x44, 0 }; +Guide_TM( 11 ) = { 1, 0x00, 0x01, 0x26, 0 }; +Guide_TM( 12 ) = { 1, 0x00, 0x01, 0x56, 0 }; +Guide_TM( 13 ) = { 1, 0x00, 0x01, 0x03, 0 }; +Guide_TM( 14 ) = { 1, 0x00, 0x01, 0x2A, 0 }; +Guide_TM( 15 ) = { 1, 0x00, 0x01, 0x53, 0 }; +Guide_TM( 16 ) = { 1, 0x00, 0x01, 0x17, 0 }; +Guide_TM( 17 ) = { 1, 0x00, 0x01, 0x57, 0 }; +Guide_TM( 18 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 19 ) = { 1, 0x00, 0x01, 0x2B, 0 }; +Guide_TM( 20 ) = { 1, 0x00, 0x01, 0x11, 0 }; +Guide_TM( 21 ) = { 1, 0x00, 0x01, 0x54, 0 }; +Guide_TM( 22 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 23 ) = { 1, 0x00, 0x01, 0x18, 0 }; +Guide_TM( 24 ) = { 1, 0x00, 0x01, 0x3E, 0 }; +Guide_TM( 25 ) = { 1, 0x00, 0x01, 0x15, 0 }; +Guide_TM( 26 ) = { 1, 0x00, 0x01, 0x27, 0 }; +Guide_TM( 27 ) = { 1, 0x00, 0x01, 0x50, 0 }; +Guide_TM( 28 ) = { 1, 0x00, 0x01, 0x42, 0 }; +Guide_TM( 29 ) = { 1, 0x00, 0x01, 0x24, 0 }; +Guide_TM( 30 ) = { 1, 0x00, 0x01, 0x4D, 0 }; +Guide_TM( 31 ) = { 1, 0x00, 0x01, 0x28, 0 }; +Guide_TM( 32 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 33 ) = { 1, 0x00, 0x01, 0x51, 0 }; +Guide_TM( 34 ) = { 1, 0x00, 0x01, 0x25, 0 }; +Guide_TM( 35 ) = { 1, 0x00, 0x01, 0x0B, 0 }; +Guide_TM( 36 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 37 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 38 ) = { 1, 0x00, 0x01, 0x52, 0 }; +Guide_TM( 39 ) = { 1, 0x00, 0x01, 0x38, 0 }; +Guide_TM( 40 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 41 ) = { 1, 0x00, 0x01, 0x21, 0 }; +Guide_TM( 42 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 43 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 44 ) = { 1, 0x00, 0x01, 0x1E, 0 }; +Guide_TM( 45 ) = { 1, 0x00, 0x01, 0x4E, 0 }; +Guide_TM( 46 ) = { 1, 0x00, 0x01, 0x22, 0 }; +Guide_TM( 47 ) = { 1, 0x00, 0x01, 0x4B, 0 }; +Guide_TM( 48 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 49 ) = { 1, 0x00, 0x01, 0x4F, 0 }; +Guide_TM( 50 ) = { 1, 0x00, 0x01, 0x33, 0 }; +Guide_TM( 51 ) = { 1, 0x00, 0x01, 0x23, 0 }; +Guide_TM( 52 ) = { 1, 0x00, 0x01, 0x07, 0 }; +Guide_TM( 53 ) = { 1, 0x00, 0x01, 0x4C, 0 }; +Guide_TM( 54 ) = { 1, 0x00, 0x01, 0x30, 0 }; +Guide_TM( 55 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 56 ) = { 1, 0x00, 0x01, 0x34, 0 }; +Guide_TM( 57 ) = { 1, 0x00, 0x01, 0x08, 0 }; +Guide_TM( 58 ) = { 1, 0x00, 0x01, 0x1F, 0 }; +Guide_TM( 59 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 60 ) = { 1, 0x00, 0x01, 0x35, 0 }; +Guide_TM( 61 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 62 ) = { 1, 0x00, 0x01, 0x45, 0 }; +Guide_TM( 63 ) = { 1, 0x00, 0x01, 0x20, 0 }; +Guide_TM( 64 ) = { 1, 0x00, 0x01, 0x04, 0 }; +Guide_TM( 65 ) = { 1, 0x00, 0x01, 0x49, 0 }; +Guide_TM( 66 ) = { 1, 0x00, 0x01, 0x1D, 0 }; +Guide_TM( 67 ) = { 1, 0x00, 0x01, 0x31, 0 }; +Guide_TM( 68 ) = { 1, 0x00, 0x01, 0x58, 0 }; +Guide_TM( 69 ) = { 1, 0x00, 0x01, 0x05, 0 }; +Guide_TM( 70 ) = { 1, 0x00, 0x01, 0x4A, 0 }; +Guide_TM( 71 ) = { 1, 0x00, 0x01, 0x2C, 0 }; +Guide_TM( 72 ) = { 1, 0x00, 0x01, 0x55, 0 }; +Guide_TM( 73 ) = { 1, 0x00, 0x01, 0x32, 0 }; +Guide_TM( 74 ) = { 1, 0x00, 0x01, 0x19, 0 }; +Guide_TM( 75 ) = { 1, 0x00, 0x01, 0x59, 0 }; +Guide_TM( 76 ) = { 1, 0x00, 0x01, 0x06, 0 }; +Guide_TM( 77 ) = { 1, 0x00, 0x01, 0x2F, 0 }; +Guide_TM( 78 ) = { 1, 0x00, 0x01, 0x16, 0 }; +Guide_TM( 79 ) = { 1, 0x00, 0x01, 0x46, 0 }; +Guide_TM( 80 ) = { 1, 0x00, 0x01, 0x43, 0 }; +Guide_TM( 81 ) = { 1, 0x00, 0x01, 0x02, 0 }; +Guide_TM( 82 ) = { 1, 0x00, 0x01, 0x47, 0 }; +Guide_TM( 83 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 84 ) = { 1, 0x00, 0x01, 0x44, 0 }; +Guide_TM( 85 ) = { 1, 0x00, 0x01, 0x26, 0 }; +Guide_TM( 86 ) = { 1, 0x00, 0x01, 0x56, 0 }; +Guide_TM( 87 ) = { 1, 0x00, 0x01, 0x03, 0 }; +Guide_TM( 88 ) = { 1, 0x00, 0x01, 0x17, 0 }; +Guide_TM( 89 ) = { 1, 0x00, 0x01, 0x57, 0 }; +Guide_TM( 90 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 91 ) = { 1, 0x00, 0x01, 0x11, 0 }; +Guide_TM( 92 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 93 ) = { 1, 0x00, 0x01, 0x18, 0 }; +Guide_TM( 94 ) = { 1, 0x00, 0x01, 0x3E, 0 }; +Guide_TM( 95 ) = { 1, 0x00, 0x01, 0x15, 0 }; +Guide_TM( 96 ) = { 1, 0x00, 0x01, 0x42, 0 }; +Guide_TM( 97 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 98 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 99 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 100 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 101 ) = { 1, 0x00, 0x01, 0x21, 0 }; +Guide_TM( 102 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 103 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 104 ) = { 1, 0x00, 0x01, 0x1E, 0 }; +Guide_TM( 105 ) = { 1, 0x00, 0x01, 0x22, 0 }; +Guide_TM( 106 ) = { 1, 0x00, 0x01, 0x4B, 0 }; +Guide_TM( 107 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 108 ) = { 1, 0x00, 0x01, 0x33, 0 }; +Guide_TM( 109 ) = { 1, 0x00, 0x01, 0x07, 0 }; +Guide_TM( 110 ) = { 1, 0x00, 0x01, 0x30, 0 }; +Guide_TM( 111 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 112 ) = { 1, 0x00, 0x01, 0x34, 0 }; +Guide_TM( 113 ) = { 1, 0x00, 0x01, 0x08, 0 }; +Guide_TM( 114 ) = { 1, 0x00, 0x01, 0x1F, 0 }; +Guide_TM( 115 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 116 ) = { 1, 0x00, 0x01, 0x35, 0 }; +Guide_TM( 117 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 118 ) = { 1, 0x00, 0x01, 0x45, 0 }; +Guide_TM( 119 ) = { 1, 0x00, 0x01, 0x20, 0 }; +Guide_TM( 120 ) = { 1, 0x00, 0x01, 0x04, 0 }; +Guide_TM( 121 ) = { 1, 0x00, 0x01, 0x49, 0 }; +Guide_TM( 122 ) = { 1, 0x00, 0x01, 0x31, 0 }; +Guide_TM( 123 ) = { 1, 0x00, 0x01, 0x58, 0 }; +Guide_TM( 124 ) = { 1, 0x00, 0x01, 0x05, 0 }; +Guide_TM( 125 ) = { 1, 0x00, 0x01, 0x32, 0 }; +Guide_TM( 126 ) = { 1, 0x00, 0x01, 0x19, 0 }; +Guide_TM( 127 ) = { 1, 0x00, 0x01, 0x59, 0 }; +Guide_TM( 128 ) = { 1, 0x00, 0x01, 0x46, 0 }; +Guide_TM( 129 ) = { 1, 0x00, 0x01, 0x43, 0 }; +Guide_TM( 130 ) = { 1, 0x00, 0x01, 0x47, 0 }; +Guide_TM( 131 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 132 ) = { 1, 0x00, 0x01, 0x44, 0 }; +Guide_TM( 133 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 134 ) = { 1, 0x00, 0x01, 0x11, 0 }; +Guide_TM( 135 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 136 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 137 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 138 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 139 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 140 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 141 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 142 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 143 ) = { 1, 0x00, 0x01, 0x4C, 0 }; +Guide_TM( 144 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 145 ) = { 1, 0x00, 0x01, 0x08, 0 }; +Guide_TM( 146 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 147 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 148 ) = { 1, 0x00, 0x01, 0x45, 0 }; +Guide_TM( 149 ) = { 1, 0x00, 0x01, 0x49, 0 }; + + +// -- Trigger Macro List + +// Indexed Table of Trigger Macros +const TriggerMacro TriggerMacroList[] = { + Define_TM( 0, 0 ), + Define_TM( 1, 1 ), + Define_TM( 2, 2 ), + Define_TM( 3, 3 ), + Define_TM( 4, 4 ), + Define_TM( 5, 5 ), + Define_TM( 6, 4 ), + Define_TM( 7, 6 ), + Define_TM( 8, 7 ), + Define_TM( 9, 8 ), + Define_TM( 10, 9 ), + Define_TM( 11, 10 ), + Define_TM( 12, 11 ), + Define_TM( 13, 12 ), + Define_TM( 14, 13 ), + Define_TM( 15, 14 ), + Define_TM( 16, 15 ), + Define_TM( 17, 16 ), + Define_TM( 18, 17 ), + Define_TM( 19, 18 ), + Define_TM( 20, 19 ), + Define_TM( 21, 20 ), + Define_TM( 22, 21 ), + Define_TM( 23, 22 ), + Define_TM( 24, 10 ), + Define_TM( 25, 23 ), + Define_TM( 26, 20 ), + Define_TM( 27, 14 ), + Define_TM( 28, 24 ), + Define_TM( 29, 25 ), + Define_TM( 30, 26 ), + Define_TM( 31, 27 ), + Define_TM( 32, 28 ), + Define_TM( 33, 29 ), + Define_TM( 34, 30 ), + Define_TM( 35, 31 ), + Define_TM( 36, 32 ), + Define_TM( 37, 33 ), + Define_TM( 38, 34 ), + Define_TM( 39, 31 ), + Define_TM( 40, 35 ), + Define_TM( 41, 36 ), + Define_TM( 42, 37 ), + Define_TM( 43, 38 ), + Define_TM( 44, 39 ), + Define_TM( 45, 40 ), + Define_TM( 46, 41 ), + Define_TM( 47, 42 ), + Define_TM( 48, 43 ), + Define_TM( 49, 44 ), + Define_TM( 50, 45 ), + Define_TM( 51, 46 ), + Define_TM( 52, 47 ), + Define_TM( 53, 48 ), + Define_TM( 54, 49 ), + Define_TM( 55, 50 ), + Define_TM( 56, 51 ), + Define_TM( 57, 52 ), + Define_TM( 58, 53 ), + Define_TM( 59, 54 ), + Define_TM( 60, 10 ), + Define_TM( 61, 55 ), + Define_TM( 62, 56 ), + Define_TM( 63, 57 ), + Define_TM( 64, 58 ), + Define_TM( 65, 59 ), + Define_TM( 66, 60 ), + Define_TM( 67, 61 ), + Define_TM( 68, 62 ), + Define_TM( 69, 63 ), + Define_TM( 70, 60 ), + Define_TM( 71, 64 ), + Define_TM( 72, 65 ), + Define_TM( 73, 66 ), + Define_TM( 74, 67 ), + Define_TM( 75, 68 ), + Define_TM( 76, 69 ), + Define_TM( 77, 70 ), + Define_TM( 78, 71 ), + Define_TM( 79, 72 ), + Define_TM( 80, 73 ), + Define_TM( 81, 74 ), + Define_TM( 82, 75 ), + Define_TM( 83, 76 ), + Define_TM( 84, 77 ), + Define_TM( 85, 78 ), + Define_TM( 86, 25 ), + Define_TM( 87, 79 ), + Define_TM( 88, 80 ), + Define_TM( 89, 81 ), + Define_TM( 90, 82 ), + Define_TM( 91, 52 ), + Define_TM( 92, 83 ), + Define_TM( 93, 69 ), + Define_TM( 94, 78 ), + Define_TM( 95, 79 ), + Define_TM( 96, 84 ), + Define_TM( 97, 85 ), + Define_TM( 98, 86 ), + Define_TM( 99, 87 ), + Define_TM( 100, 88 ), + Define_TM( 101, 89 ), + Define_TM( 102, 90 ), + Define_TM( 103, 91 ), + Define_TM( 104, 74 ), + Define_TM( 105, 92 ), + Define_TM( 106, 70 ), + Define_TM( 107, 93 ), + Define_TM( 108, 94 ), + Define_TM( 109, 95 ), + Define_TM( 110, 84 ), + Define_TM( 111, 96 ), + Define_TM( 112, 97 ), + Define_TM( 113, 4 ), + Define_TM( 114, 97 ), + Define_TM( 115, 98 ), + Define_TM( 116, 78 ), + Define_TM( 117, 99 ), + Define_TM( 118, 100 ), + Define_TM( 119, 94 ), + Define_TM( 120, 71 ), + Define_TM( 121, 101 ), + Define_TM( 122, 92 ), + Define_TM( 123, 102 ), + Define_TM( 124, 80 ), + Define_TM( 125, 89 ), + Define_TM( 126, 95 ), + Define_TM( 127, 29 ), + Define_TM( 128, 103 ), + Define_TM( 129, 104 ), + Define_TM( 130, 105 ), + Define_TM( 131, 106 ), + Define_TM( 132, 107 ), + Define_TM( 133, 51 ), + Define_TM( 134, 108 ), + Define_TM( 135, 61 ), + Define_TM( 136, 63 ), + Define_TM( 137, 66 ), + Define_TM( 138, 0 ), + Define_TM( 139, 45 ), + Define_TM( 140, 47 ), + Define_TM( 141, 49 ), + Define_TM( 142, 12 ), + Define_TM( 143, 54 ), + Define_TM( 144, 58 ), + Define_TM( 145, 108 ), + Define_TM( 146, 109 ), + Define_TM( 147, 110 ), + Define_TM( 148, 111 ), + Define_TM( 149, 112 ), +}; + + +// -- Trigger Macro Record List + +// Keeps a record/state of each trigger macro +TriggerMacroRecord TriggerMacroRecordList[ TriggerMacroNum ]; + + + +// ----- Trigger Maps ----- + +// MaxScanCode +// - This is retrieved from the KLL configuration +// - Should be corollated with the max scan code in the scan module +// - Maximum value is 0x100 (0x0 to 0xFF) +// - Increasing it beyond the keyboard's capabilities is just a waste of ram... +#define MaxScanCode 0x59 + +// -- Trigger Lists +// +// Index 0: # of triggers in list +// Index n: pointer to trigger macro - use tm() macro + +// - Default Layer - +Define_TL( default, 0x02 ) = { 1, 6 }; +Define_TL( default, 0x03 ) = { 1, 13 }; +Define_TL( default, 0x04 ) = { 1, 64 }; +Define_TL( default, 0x05 ) = { 1, 69 }; +Define_TL( default, 0x06 ) = { 1, 0 }; +Define_TL( default, 0x07 ) = { 1, 52 }; +Define_TL( default, 0x08 ) = { 1, 57 }; +Define_TL( default, 0x09 ) = { 0 }; +Define_TL( default, 0x0A ) = { 0 }; +Define_TL( default, 0x0B ) = { 1, 35 }; +Define_TL( default, 0x0C ) = { 1, 48 }; +Define_TL( default, 0x0D ) = { 1, 55 }; +Define_TL( default, 0x0E ) = { 1, 32 }; +Define_TL( default, 0x0F ) = { 1, 37 }; +Define_TL( default, 0x10 ) = { 1, 42 }; +Define_TL( default, 0x11 ) = { 1, 20 }; +Define_TL( default, 0x12 ) = { 0 }; +Define_TL( default, 0x13 ) = { 0 }; +Define_TL( default, 0x14 ) = { 0 }; +Define_TL( default, 0x15 ) = { 1, 25 }; +Define_TL( default, 0x16 ) = { 1, 2 }; +Define_TL( default, 0x17 ) = { 1, 16 }; +Define_TL( default, 0x18 ) = { 1, 23 }; +Define_TL( default, 0x19 ) = { 1, 74 }; +Define_TL( default, 0x1A ) = { 1, 4 }; +Define_TL( default, 0x1B ) = { 1, 9 }; +Define_TL( default, 0x1C ) = { 1, 61 }; +Define_TL( default, 0x1D ) = { 1, 66 }; +Define_TL( default, 0x1E ) = { 1, 44 }; +Define_TL( default, 0x1F ) = { 1, 58 }; +Define_TL( default, 0x20 ) = { 1, 63 }; +Define_TL( default, 0x21 ) = { 1, 41 }; +Define_TL( default, 0x22 ) = { 1, 46 }; +Define_TL( default, 0x23 ) = { 1, 51 }; +Define_TL( default, 0x24 ) = { 1, 29 }; +Define_TL( default, 0x25 ) = { 1, 34 }; +Define_TL( default, 0x26 ) = { 1, 11 }; +Define_TL( default, 0x27 ) = { 1, 26 }; +Define_TL( default, 0x28 ) = { 1, 31 }; +Define_TL( default, 0x29 ) = { 1, 8 }; +Define_TL( default, 0x2A ) = { 1, 14 }; +Define_TL( default, 0x2B ) = { 1, 19 }; +Define_TL( default, 0x2C ) = { 1, 71 }; +Define_TL( default, 0x2D ) = { 0 }; +Define_TL( default, 0x2E ) = { 0 }; +Define_TL( default, 0x2F ) = { 1, 1 }; +Define_TL( default, 0x30 ) = { 1, 54 }; +Define_TL( default, 0x31 ) = { 1, 67 }; +Define_TL( default, 0x32 ) = { 1, 73 }; +Define_TL( default, 0x33 ) = { 1, 50 }; +Define_TL( default, 0x34 ) = { 1, 56 }; +Define_TL( default, 0x35 ) = { 1, 60 }; +Define_TL( default, 0x36 ) = { 0 }; +Define_TL( default, 0x37 ) = { 0 }; +Define_TL( default, 0x38 ) = { 1, 39 }; +Define_TL( default, 0x39 ) = { 1, 43 }; +Define_TL( default, 0x3A ) = { 1, 22 }; +Define_TL( default, 0x3B ) = { 1, 36 }; +Define_TL( default, 0x3C ) = { 1, 40 }; +Define_TL( default, 0x3D ) = { 1, 18 }; +Define_TL( default, 0x3E ) = { 1, 24 }; +Define_TL( default, 0x3F ) = { 0 }; +Define_TL( default, 0x40 ) = { 0 }; +Define_TL( default, 0x41 ) = { 0 }; +Define_TL( default, 0x42 ) = { 1, 28 }; +Define_TL( default, 0x43 ) = { 1, 5 }; +Define_TL( default, 0x44 ) = { 1, 10 }; +Define_TL( default, 0x45 ) = { 1, 62 }; +Define_TL( default, 0x46 ) = { 1, 3 }; +Define_TL( default, 0x47 ) = { 1, 7 }; +Define_TL( default, 0x48 ) = { 1, 59 }; +Define_TL( default, 0x49 ) = { 1, 65 }; +Define_TL( default, 0x4A ) = { 1, 70 }; +Define_TL( default, 0x4B ) = { 1, 47 }; +Define_TL( default, 0x4C ) = { 1, 53 }; +Define_TL( default, 0x4D ) = { 1, 30 }; +Define_TL( default, 0x4E ) = { 1, 45 }; +Define_TL( default, 0x4F ) = { 1, 49 }; +Define_TL( default, 0x50 ) = { 1, 27 }; +Define_TL( default, 0x51 ) = { 1, 33 }; +Define_TL( default, 0x52 ) = { 1, 38 }; +Define_TL( default, 0x53 ) = { 1, 15 }; +Define_TL( default, 0x54 ) = { 1, 21 }; +Define_TL( default, 0x55 ) = { 1, 72 }; +Define_TL( default, 0x56 ) = { 1, 12 }; +Define_TL( default, 0x57 ) = { 1, 17 }; +Define_TL( default, 0x58 ) = { 1, 68 }; +Define_TL( default, 0x59 ) = { 1, 75 }; + + +// - Partial Layers - +// Partial Layer 1 +Define_TL( layer1, 0x02 ) = { 1, 81 }; +Define_TL( layer1, 0x03 ) = { 1, 87 }; +Define_TL( layer1, 0x04 ) = { 1, 120 }; +Define_TL( layer1, 0x05 ) = { 1, 124 }; +Define_TL( layer1, 0x06 ) = { 1, 76 }; +Define_TL( layer1, 0x07 ) = { 1, 109 }; +Define_TL( layer1, 0x08 ) = { 1, 113 }; +Define_TL( layer1, 0x09 ) = { 0 }; +Define_TL( layer1, 0x0A ) = { 0 }; +Define_TL( layer1, 0x0B ) = { 0 }; +Define_TL( layer1, 0x0C ) = { 1, 107 }; +Define_TL( layer1, 0x0D ) = { 1, 111 }; +Define_TL( layer1, 0x0E ) = { 1, 97 }; +Define_TL( layer1, 0x0F ) = { 1, 99 }; +Define_TL( layer1, 0x10 ) = { 1, 102 }; +Define_TL( layer1, 0x11 ) = { 1, 91 }; +Define_TL( layer1, 0x12 ) = { 0 }; +Define_TL( layer1, 0x13 ) = { 0 }; +Define_TL( layer1, 0x14 ) = { 0 }; +Define_TL( layer1, 0x15 ) = { 1, 95 }; +Define_TL( layer1, 0x16 ) = { 1, 78 }; +Define_TL( layer1, 0x17 ) = { 1, 88 }; +Define_TL( layer1, 0x18 ) = { 1, 93 }; +Define_TL( layer1, 0x19 ) = { 1, 126 }; +Define_TL( layer1, 0x1A ) = { 0 }; +Define_TL( layer1, 0x1B ) = { 1, 83 }; +Define_TL( layer1, 0x1C ) = { 1, 117 }; +Define_TL( layer1, 0x1D ) = { 0 }; +Define_TL( layer1, 0x1E ) = { 1, 104 }; +Define_TL( layer1, 0x1F ) = { 1, 114 }; +Define_TL( layer1, 0x20 ) = { 1, 119 }; +Define_TL( layer1, 0x21 ) = { 1, 101 }; +Define_TL( layer1, 0x22 ) = { 1, 105 }; +Define_TL( layer1, 0x23 ) = { 0 }; +Define_TL( layer1, 0x24 ) = { 0 }; +Define_TL( layer1, 0x25 ) = { 0 }; +Define_TL( layer1, 0x26 ) = { 1, 85 }; +Define_TL( layer1, 0x27 ) = { 0 }; +Define_TL( layer1, 0x28 ) = { 0 }; +Define_TL( layer1, 0x29 ) = { 0 }; +Define_TL( layer1, 0x2A ) = { 0 }; +Define_TL( layer1, 0x2B ) = { 0 }; +Define_TL( layer1, 0x2C ) = { 0 }; +Define_TL( layer1, 0x2D ) = { 0 }; +Define_TL( layer1, 0x2E ) = { 0 }; +Define_TL( layer1, 0x2F ) = { 1, 77 }; +Define_TL( layer1, 0x30 ) = { 1, 110 }; +Define_TL( layer1, 0x31 ) = { 1, 122 }; +Define_TL( layer1, 0x32 ) = { 1, 125 }; +Define_TL( layer1, 0x33 ) = { 1, 108 }; +Define_TL( layer1, 0x34 ) = { 1, 112 }; +Define_TL( layer1, 0x35 ) = { 1, 116 }; +Define_TL( layer1, 0x36 ) = { 0 }; +Define_TL( layer1, 0x37 ) = { 0 }; +Define_TL( layer1, 0x38 ) = { 0 }; +Define_TL( layer1, 0x39 ) = { 1, 103 }; +Define_TL( layer1, 0x3A ) = { 1, 92 }; +Define_TL( layer1, 0x3B ) = { 1, 98 }; +Define_TL( layer1, 0x3C ) = { 1, 100 }; +Define_TL( layer1, 0x3D ) = { 1, 90 }; +Define_TL( layer1, 0x3E ) = { 1, 94 }; +Define_TL( layer1, 0x3F ) = { 0 }; +Define_TL( layer1, 0x40 ) = { 0 }; +Define_TL( layer1, 0x41 ) = { 0 }; +Define_TL( layer1, 0x42 ) = { 1, 96 }; +Define_TL( layer1, 0x43 ) = { 1, 80 }; +Define_TL( layer1, 0x44 ) = { 1, 84 }; +Define_TL( layer1, 0x45 ) = { 1, 118 }; +Define_TL( layer1, 0x46 ) = { 1, 79 }; +Define_TL( layer1, 0x47 ) = { 1, 82 }; +Define_TL( layer1, 0x48 ) = { 1, 115 }; +Define_TL( layer1, 0x49 ) = { 1, 121 }; +Define_TL( layer1, 0x4A ) = { 0 }; +Define_TL( layer1, 0x4B ) = { 1, 106 }; +Define_TL( layer1, 0x4C ) = { 0 }; +Define_TL( layer1, 0x4D ) = { 0 }; +Define_TL( layer1, 0x4E ) = { 0 }; +Define_TL( layer1, 0x4F ) = { 0 }; +Define_TL( layer1, 0x50 ) = { 0 }; +Define_TL( layer1, 0x51 ) = { 0 }; +Define_TL( layer1, 0x52 ) = { 0 }; +Define_TL( layer1, 0x53 ) = { 0 }; +Define_TL( layer1, 0x54 ) = { 0 }; +Define_TL( layer1, 0x55 ) = { 0 }; +Define_TL( layer1, 0x56 ) = { 1, 86 }; +Define_TL( layer1, 0x57 ) = { 1, 89 }; +Define_TL( layer1, 0x58 ) = { 1, 123 }; +Define_TL( layer1, 0x59 ) = { 1, 127 }; + +// Partial Layer 2 +Define_TL( layer2, 0x08 ) = { 1, 145 }; +Define_TL( layer2, 0x09 ) = { 0 }; +Define_TL( layer2, 0x0A ) = { 0 }; +Define_TL( layer2, 0x0B ) = { 0 }; +Define_TL( layer2, 0x0C ) = { 1, 142 }; +Define_TL( layer2, 0x0D ) = { 1, 144 }; +Define_TL( layer2, 0x0E ) = { 1, 136 }; +Define_TL( layer2, 0x0F ) = { 1, 138 }; +Define_TL( layer2, 0x10 ) = { 1, 140 }; +Define_TL( layer2, 0x11 ) = { 1, 134 }; +Define_TL( layer2, 0x12 ) = { 0 }; +Define_TL( layer2, 0x13 ) = { 0 }; +Define_TL( layer2, 0x14 ) = { 0 }; +Define_TL( layer2, 0x15 ) = { 0 }; +Define_TL( layer2, 0x16 ) = { 0 }; +Define_TL( layer2, 0x17 ) = { 0 }; +Define_TL( layer2, 0x18 ) = { 1, 93 }; +Define_TL( layer2, 0x19 ) = { 1, 126 }; +Define_TL( layer2, 0x1A ) = { 0 }; +Define_TL( layer2, 0x1B ) = { 1, 131 }; +Define_TL( layer2, 0x1C ) = { 1, 147 }; +Define_TL( layer2, 0x1D ) = { 0 }; +Define_TL( layer2, 0x1E ) = { 0 }; +Define_TL( layer2, 0x1F ) = { 0 }; +Define_TL( layer2, 0x20 ) = { 0 }; +Define_TL( layer2, 0x21 ) = { 0 }; +Define_TL( layer2, 0x22 ) = { 0 }; +Define_TL( layer2, 0x23 ) = { 0 }; +Define_TL( layer2, 0x24 ) = { 0 }; +Define_TL( layer2, 0x25 ) = { 0 }; +Define_TL( layer2, 0x26 ) = { 0 }; +Define_TL( layer2, 0x27 ) = { 0 }; +Define_TL( layer2, 0x28 ) = { 0 }; +Define_TL( layer2, 0x29 ) = { 0 }; +Define_TL( layer2, 0x2A ) = { 0 }; +Define_TL( layer2, 0x2B ) = { 0 }; +Define_TL( layer2, 0x2C ) = { 0 }; +Define_TL( layer2, 0x2D ) = { 0 }; +Define_TL( layer2, 0x2E ) = { 0 }; +Define_TL( layer2, 0x2F ) = { 0 }; +Define_TL( layer2, 0x30 ) = { 0 }; +Define_TL( layer2, 0x31 ) = { 0 }; +Define_TL( layer2, 0x32 ) = { 0 }; +Define_TL( layer2, 0x33 ) = { 0 }; +Define_TL( layer2, 0x34 ) = { 0 }; +Define_TL( layer2, 0x35 ) = { 0 }; +Define_TL( layer2, 0x36 ) = { 0 }; +Define_TL( layer2, 0x37 ) = { 0 }; +Define_TL( layer2, 0x38 ) = { 0 }; +Define_TL( layer2, 0x39 ) = { 1, 141 }; +Define_TL( layer2, 0x3A ) = { 1, 135 }; +Define_TL( layer2, 0x3B ) = { 1, 137 }; +Define_TL( layer2, 0x3C ) = { 1, 139 }; +Define_TL( layer2, 0x3D ) = { 1, 133 }; +Define_TL( layer2, 0x3E ) = { 0 }; +Define_TL( layer2, 0x3F ) = { 0 }; +Define_TL( layer2, 0x40 ) = { 0 }; +Define_TL( layer2, 0x41 ) = { 0 }; +Define_TL( layer2, 0x42 ) = { 0 }; +Define_TL( layer2, 0x43 ) = { 1, 129 }; +Define_TL( layer2, 0x44 ) = { 1, 132 }; +Define_TL( layer2, 0x45 ) = { 1, 148 }; +Define_TL( layer2, 0x46 ) = { 1, 128 }; +Define_TL( layer2, 0x47 ) = { 1, 130 }; +Define_TL( layer2, 0x48 ) = { 1, 146 }; +Define_TL( layer2, 0x49 ) = { 1, 149 }; +Define_TL( layer2, 0x4A ) = { 0 }; +Define_TL( layer2, 0x4B ) = { 0 }; +Define_TL( layer2, 0x4C ) = { 1, 143 }; + + +// -- ScanCode Offset Map +// Maps interconnect ids to scancode offsets +// +// Only used for keyboards with an interconnect +const uint8_t InterconnectOffsetList[] = { + 0x2D, + 0x59, +}; + + +// -- ScanCode Indexed Maps +// Maps to a trigger list of macro pointers +// _ +// -> |T| +// |r| -> +// |i| +// |g| -> +// |g| +// |e| -> +// |r| +// |s| -> +// - + +// - Default Map for ScanCode Lookup - +const nat_ptr_t *default_scanMap[] = { +default_tl_0x02, default_tl_0x03, default_tl_0x04, default_tl_0x05, default_tl_0x06, default_tl_0x07, default_tl_0x08, default_tl_0x09, default_tl_0x0A, default_tl_0x0B, default_tl_0x0C, default_tl_0x0D, default_tl_0x0E, default_tl_0x0F, default_tl_0x10, default_tl_0x11, default_tl_0x12, default_tl_0x13, default_tl_0x14, default_tl_0x15, default_tl_0x16, default_tl_0x17, default_tl_0x18, default_tl_0x19, default_tl_0x1A, default_tl_0x1B, default_tl_0x1C, default_tl_0x1D, default_tl_0x1E, default_tl_0x1F, default_tl_0x20, default_tl_0x21, default_tl_0x22, default_tl_0x23, default_tl_0x24, default_tl_0x25, default_tl_0x26, default_tl_0x27, default_tl_0x28, default_tl_0x29, default_tl_0x2A, default_tl_0x2B, default_tl_0x2C, default_tl_0x2D, default_tl_0x2E, default_tl_0x2F, default_tl_0x30, default_tl_0x31, default_tl_0x32, default_tl_0x33, default_tl_0x34, default_tl_0x35, default_tl_0x36, default_tl_0x37, default_tl_0x38, default_tl_0x39, default_tl_0x3A, default_tl_0x3B, default_tl_0x3C, default_tl_0x3D, default_tl_0x3E, default_tl_0x3F, default_tl_0x40, default_tl_0x41, default_tl_0x42, default_tl_0x43, default_tl_0x44, default_tl_0x45, default_tl_0x46, default_tl_0x47, default_tl_0x48, default_tl_0x49, default_tl_0x4A, default_tl_0x4B, default_tl_0x4C, default_tl_0x4D, default_tl_0x4E, default_tl_0x4F, default_tl_0x50, default_tl_0x51, default_tl_0x52, default_tl_0x53, default_tl_0x54, default_tl_0x55, default_tl_0x56, default_tl_0x57, default_tl_0x58, default_tl_0x59 +}; + + +// - Partial Layer ScanCode Lookup Maps - +// Partial Layer 1 +const nat_ptr_t *layer1_scanMap[] = { +layer1_tl_0x02, layer1_tl_0x03, layer1_tl_0x04, layer1_tl_0x05, layer1_tl_0x06, layer1_tl_0x07, layer1_tl_0x08, layer1_tl_0x09, layer1_tl_0x0A, layer1_tl_0x0B, layer1_tl_0x0C, layer1_tl_0x0D, layer1_tl_0x0E, layer1_tl_0x0F, layer1_tl_0x10, layer1_tl_0x11, layer1_tl_0x12, layer1_tl_0x13, layer1_tl_0x14, layer1_tl_0x15, layer1_tl_0x16, layer1_tl_0x17, layer1_tl_0x18, layer1_tl_0x19, layer1_tl_0x1A, layer1_tl_0x1B, layer1_tl_0x1C, layer1_tl_0x1D, layer1_tl_0x1E, layer1_tl_0x1F, layer1_tl_0x20, layer1_tl_0x21, layer1_tl_0x22, layer1_tl_0x23, layer1_tl_0x24, layer1_tl_0x25, layer1_tl_0x26, layer1_tl_0x27, layer1_tl_0x28, layer1_tl_0x29, layer1_tl_0x2A, layer1_tl_0x2B, layer1_tl_0x2C, layer1_tl_0x2D, layer1_tl_0x2E, layer1_tl_0x2F, layer1_tl_0x30, layer1_tl_0x31, layer1_tl_0x32, layer1_tl_0x33, layer1_tl_0x34, layer1_tl_0x35, layer1_tl_0x36, layer1_tl_0x37, layer1_tl_0x38, layer1_tl_0x39, layer1_tl_0x3A, layer1_tl_0x3B, layer1_tl_0x3C, layer1_tl_0x3D, layer1_tl_0x3E, layer1_tl_0x3F, layer1_tl_0x40, layer1_tl_0x41, layer1_tl_0x42, layer1_tl_0x43, layer1_tl_0x44, layer1_tl_0x45, layer1_tl_0x46, layer1_tl_0x47, layer1_tl_0x48, layer1_tl_0x49, layer1_tl_0x4A, layer1_tl_0x4B, layer1_tl_0x4C, layer1_tl_0x4D, layer1_tl_0x4E, layer1_tl_0x4F, layer1_tl_0x50, layer1_tl_0x51, layer1_tl_0x52, layer1_tl_0x53, layer1_tl_0x54, layer1_tl_0x55, layer1_tl_0x56, layer1_tl_0x57, layer1_tl_0x58, layer1_tl_0x59 +}; + +// Partial Layer 2 +const nat_ptr_t *layer2_scanMap[] = { +layer2_tl_0x08, layer2_tl_0x09, layer2_tl_0x0A, layer2_tl_0x0B, layer2_tl_0x0C, layer2_tl_0x0D, layer2_tl_0x0E, layer2_tl_0x0F, layer2_tl_0x10, layer2_tl_0x11, layer2_tl_0x12, layer2_tl_0x13, layer2_tl_0x14, layer2_tl_0x15, layer2_tl_0x16, layer2_tl_0x17, layer2_tl_0x18, layer2_tl_0x19, layer2_tl_0x1A, layer2_tl_0x1B, layer2_tl_0x1C, layer2_tl_0x1D, layer2_tl_0x1E, layer2_tl_0x1F, layer2_tl_0x20, layer2_tl_0x21, layer2_tl_0x22, layer2_tl_0x23, layer2_tl_0x24, layer2_tl_0x25, layer2_tl_0x26, layer2_tl_0x27, layer2_tl_0x28, layer2_tl_0x29, layer2_tl_0x2A, layer2_tl_0x2B, layer2_tl_0x2C, layer2_tl_0x2D, layer2_tl_0x2E, layer2_tl_0x2F, layer2_tl_0x30, layer2_tl_0x31, layer2_tl_0x32, layer2_tl_0x33, layer2_tl_0x34, layer2_tl_0x35, layer2_tl_0x36, layer2_tl_0x37, layer2_tl_0x38, layer2_tl_0x39, layer2_tl_0x3A, layer2_tl_0x3B, layer2_tl_0x3C, layer2_tl_0x3D, layer2_tl_0x3E, layer2_tl_0x3F, layer2_tl_0x40, layer2_tl_0x41, layer2_tl_0x42, layer2_tl_0x43, layer2_tl_0x44, layer2_tl_0x45, layer2_tl_0x46, layer2_tl_0x47, layer2_tl_0x48, layer2_tl_0x49, layer2_tl_0x4A, layer2_tl_0x4B, layer2_tl_0x4C +}; + + + +// ----- Layer Index ----- + +// -- Layer Index List +// +// Index 0: Default map +// Index n: Additional layers +const Layer LayerIndex[] = { + Layer_IN( default_scanMap, "D: MDErgo1 + lcdFuncMap", 0x02 ), + Layer_IN( layer1_scanMap, "1: MDErgo1 + lcdFuncMap", 0x02 ), + Layer_IN( layer2_scanMap, "2: MDErgo1 + lcdFuncMap", 0x08 ), +}; + + +// - Layer State +uint8_t LayerState[ LayerNum ]; + diff --git a/inf_ergodox/src/log/left_kll_defs.h b/inf_ergodox/src/log/left_kll_defs.h new file mode 100644 index 0000000..78178b0 --- /dev/null +++ b/inf_ergodox/src/log/left_kll_defs.h @@ -0,0 +1,243 @@ +/* Copyright (C) 2014-2015 by Jacob Alexander + * + * This file is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this file. If not, see . + */ + +// This file was generated by the kll compiler, DO NOT EDIT. +// Generation Date: 2016-04-05 +// KLL Backend: kiibohd +// KLL Git Rev: b6cf0f13a88fef650f48270a1d1e20ccb1972d21 +// KLL Git Changes: None +// Compiler arguments: +// /srv/KiiConf/controller/kll/kll.py +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// -d +// MDErgo1-Default-0.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-1.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-2.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// --backend +// kiibohd +// --templates +// /srv/KiiConf/controller/kll/templates/kiibohdKeymap.h +// /srv/KiiConf/controller/kll/templates/kiibohdDefs.h +// --outputs +// generatedKeymap.h +// kll_defs.h +// +// - Base Layer - +// ISSILedCapabilities +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// MatrixArmCapabilities +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// STLcdCapabilities +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// UARTConnectCapabilities +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// PartialMapCapabilities +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// pjrcUSBCapabilities +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// MDErgo1 +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// MDErgo1LeftHand +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// MDErgo1Slave1 +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// MDErgo1RightHand +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// - Default Layer - +// MDErgo1 +// MDErgo1-Default-0.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// - Partial Layers - +// Layer 1 +// MDErgo1 +// MDErgo1-Default-1.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// Layer 2 +// MDErgo1 +// MDErgo1-Default-2.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll + + + +#pragma once + +// ----- Enums ----- + +// Capability Indices +typedef enum CapabilityIndex { + LCD_layerStackExact_capability_index, + LCD_layerStack_capability_index, + LED_control_capability_index, + Macro_layerLatch_capability_index, + Macro_layerLock_capability_index, + Macro_layerRotate_capability_index, + Macro_layerShift_capability_index, + Macro_layerState_capability_index, + Output_consCtrlSend_capability_index, + Output_flashMode_capability_index, + Output_kbdProtocolBoot_capability_index, + Output_kbdProtocolNKRO_capability_index, + Output_noneSend_capability_index, + Output_sysCtrlSend_capability_index, + Output_usbCodeSend_capability_index, +} CapabilityIndex; + + + +// ----- KLL Variables ----- + + + + +// ----- Defines ----- + +// -- Interconnect Node Maximum -- +#define InterconnectNodeMax 0x2 + + + +#define UARTConnectBufSize_define 128 +#define STLcdNumber2Color_define 0x4B4B, 0x8D8D, 0x34B5 +#define STLcdNumber9Color_define 0x09CA, 0x12D3, 0x8484 +#define STLcdNumber1Color_define 0xA8A8, 0x2727, 0x1FA0 +#define KeyboardLocale_define 0 +#define STLcdNumber9_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdBacklightRed_define 4095 +#define StateWordSize_define 8 +#define STLcdNumber8_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber6_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, \ + +#define UARTConnectBaudFine_define 0 +#define ISSILedBrightness1_define \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ \ + +#define LCDEnabled_define 1 +#define STLcdNumber8Color_define 0x8303, 0x1394, 0xB9F9 +#define STLcdNumber4_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber2_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define UARTConnectBaud_define 1 +#define DebounceDivThreshold_define 65535 +#define STLcdBacklightPrescalar_define 0 +#define STLcdNumber5Color_define 0xB7B7, 0x5D5D, 0x8545 +#define STLcdNumber0_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define DebounceThrottleDiv_define 0 +#define STLcdNumber3_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define flashModeEnabled_define 0 +#define STLcdNumber4Color_define 0xF6F6, 0xA5A5, 0x4949 +#define STLcdBacklightGreen_define 4095 +#define STLcdNumber3Color_define 0x0000, 0x8242, 0xB3F3 +#define MinDebounceTime_define 5 +#define STLcdNumber5_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, \ + +#define STLcdNumber7Color_define 0x00C1, 0x7E7E, 0x3C3C +#define STLcdNumber7_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdBacklightBlue_define 4095 +#define ISSILedMask1_define \ + 0xFF, 0x00, /* C1-1 -> C1-16 */ \ + 0xFF, 0x00, /* C2-1 -> C2-16 */ \ + 0xFF, 0x00, /* C3-1 -> C3-16 */ \ + 0xFF, 0x00, /* C4-1 -> C4-16 */ \ + 0x3F, 0x00, /* C5-1 -> C5-16 */ \ + 0x00, 0x00, /* C6-1 -> C6-16 */ \ + 0x00, 0x00, /* C7-1 -> C7-16 */ \ + 0x00, 0x00, /* C8-1 -> C8-16 */ \ + 0x00, 0x00, /* C9-1 -> C9-16 */ \ + +#define ConnectEnabled_define 1 +#define STLcdNumber1_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + +#define STLcdNumber0Color_define 0xB939, 0xAAEA, 0x8D8D +#define UARTConnectCableCheckLength_define 2 +#define STLcdDefaultImage_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + +#define STLcdNumber6Color_define 0xBCFC, 0xB6F6, 0x2D2D + diff --git a/inf_ergodox/src/log/right_generatedKeymap.h b/inf_ergodox/src/log/right_generatedKeymap.h new file mode 100644 index 0000000..36a9a28 --- /dev/null +++ b/inf_ergodox/src/log/right_generatedKeymap.h @@ -0,0 +1,1017 @@ +/* Copyright (C) 2014-2015 by Jacob Alexander + * + * This file is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this file. If not, see . + */ + +// This file was generated by the kll compiler, DO NOT EDIT. +// Generation Date: 2016-04-05 +// KLL Backend: kiibohd +// KLL Git Rev: b6cf0f13a88fef650f48270a1d1e20ccb1972d21 +// KLL Git Changes: None +// Compiler arguments: +// /srv/KiiConf/controller/kll/kll.py +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// -d +// MDErgo1-Default-0.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-1.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-2.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// --backend +// kiibohd +// --templates +// /srv/KiiConf/controller/kll/templates/kiibohdKeymap.h +// /srv/KiiConf/controller/kll/templates/kiibohdDefs.h +// --outputs +// generatedKeymap.h +// kll_defs.h +// +// - Base Layer - +// ISSILedCapabilities +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// MatrixArmCapabilities +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// STLcdCapabilities +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// UARTConnectCapabilities +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// PartialMapCapabilities +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// pjrcUSBCapabilities +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// MDErgo1 +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// MDErgo1RightHand +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// MDErgo1Slave1 +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// MDErgo1LeftHand +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// - Default Layer - +// MDErgo1 +// MDErgo1-Default-0.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// - Partial Layers - +// Layer 1 +// MDErgo1 +// MDErgo1-Default-1.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// Layer 2 +// MDErgo1 +// MDErgo1-Default-2.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll + + + +#pragma once + +// ----- Includes ----- + +// KLL Include +#include + + + +// ----- Capabilities ----- + +// Capability function declarations +void LCD_layerStackExact_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void LCD_layerStack_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void LED_control_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerLatch_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerLock_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerRotate_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerShift_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Macro_layerState_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_flashMode_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_noneSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); +void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); + + + +// Indexed Capabilities Table +const Capability CapabilitiesList[] = { + { LCD_layerStackExact_capability, 9 }, + { LCD_layerStack_capability, 0 }, + { LED_control_capability, 4 }, + { Macro_layerLatch_capability, 2 }, + { Macro_layerLock_capability, 2 }, + { Macro_layerRotate_capability, 1 }, + { Macro_layerShift_capability, 2 }, + { Macro_layerState_capability, 3 }, + { Output_consCtrlSend_capability, 2 }, + { Output_flashMode_capability, 0 }, + { Output_kbdProtocolBoot_capability, 0 }, + { Output_kbdProtocolNKRO_capability, 0 }, + { Output_noneSend_capability, 0 }, + { Output_sysCtrlSend_capability, 1 }, + { Output_usbCodeSend_capability, 1 }, +}; + + +// -- Result Macros + +// Result Macro Guides +Guide_RM( 0 ) = { 1, 14, KEY_9, 0 }; +Guide_RM( 1 ) = { 1, 14, KEY_ESC, 0 }; +Guide_RM( 2 ) = { 1, 14, KEY_J, 0 }; +Guide_RM( 3 ) = { 1, 14, KEY_A, 0 }; +Guide_RM( 4 ) = { 1, 14, KEY_QUOTE, 0 }; +Guide_RM( 5 ) = { 1, 14, KEY_F, 0 }; +Guide_RM( 6 ) = { 2, 6, 6, 0, 1, 0 }; +Guide_RM( 7 ) = { 1, 14, KEY_LEFT, 0 }; +Guide_RM( 8 ) = { 1, 14, KEY_INSERT, 0 }; +Guide_RM( 9 ) = { 1, 14, KEY_D, 0 }; +Guide_RM( 10 ) = { 1, 14, KEY_ENTER, 0 }; +Guide_RM( 11 ) = { 1, 14, KEY_LGUI, 0 }; +Guide_RM( 12 ) = { 1, 14, KEY_6, 0 }; +Guide_RM( 13 ) = { 1, 14, KEY_DOWN, 0 }; +Guide_RM( 14 ) = { 1, 14, KEY_BACKSPACE, 0 }; +Guide_RM( 15 ) = { 1, 14, KEY_K, 0 }; +Guide_RM( 16 ) = { 1, 14, KEY_LALT, 0 }; +Guide_RM( 17 ) = { 1, 14, KEY_Q, 0 }; +Guide_RM( 18 ) = { 1, 14, KEY_UP, 0 }; +Guide_RM( 19 ) = { 1, 14, KEY_SPACE, 0 }; +Guide_RM( 20 ) = { 1, 14, KEY_R, 0 }; +Guide_RM( 21 ) = { 1, 14, KEY_L, 0 }; +Guide_RM( 22 ) = { 1, 14, KEY_TAB, 0 }; +Guide_RM( 23 ) = { 1, 14, KEY_H, 0 }; +Guide_RM( 24 ) = { 1, 14, KEY_LSHIFT, 0 }; +Guide_RM( 25 ) = { 1, 14, KEY_G, 0 }; +Guide_RM( 26 ) = { 1, 14, KEY_END, 0 }; +Guide_RM( 27 ) = { 1, 14, KEY_C, 0 }; +Guide_RM( 28 ) = { 2, 6, 2, 0, 1, 0 }; +Guide_RM( 29 ) = { 1, 14, KEY_I, 0 }; +Guide_RM( 30 ) = { 1, 14, KEY_HOME, 0 }; +Guide_RM( 31 ) = { 1, 14, KEY_PRINTSCREEN, 0 }; +Guide_RM( 32 ) = { 2, 5, 0, 1, 0 }; +Guide_RM( 33 ) = { 1, 14, KEY_E, 0 }; +Guide_RM( 34 ) = { 1, 14, KEY_O, 0 }; +Guide_RM( 35 ) = { 1, 14, KEY_NUM_LOCK, 0 }; +Guide_RM( 36 ) = { 1, 14, KEY_W, 0 }; +Guide_RM( 37 ) = { 1, 14, KEY_PERIOD, 0 }; +Guide_RM( 38 ) = { 1, 14, KEY_P, 0 }; +Guide_RM( 39 ) = { 1, 14, KEY_T, 0 }; +Guide_RM( 40 ) = { 1, 14, KEY_N, 0 }; +Guide_RM( 41 ) = { 1, 14, KEY_X, 0 }; +Guide_RM( 42 ) = { 1, 14, KEY_SLASH, 0 }; +Guide_RM( 43 ) = { 1, 14, KEY_B, 0 }; +Guide_RM( 44 ) = { 1, 14, KEY_Y, 0 }; +Guide_RM( 45 ) = { 1, 14, KEY_Z, 0 }; +Guide_RM( 46 ) = { 1, 14, KEY_2, 0 }; +Guide_RM( 47 ) = { 1, 14, KEY_0, 0 }; +Guide_RM( 48 ) = { 1, 14, KEY_V, 0 }; +Guide_RM( 49 ) = { 1, 14, KEY_5, 0 }; +Guide_RM( 50 ) = { 1, 14, KEY_U, 0 }; +Guide_RM( 51 ) = { 1, 14, KEY_1, 0 }; +Guide_RM( 52 ) = { 1, 14, KEY_M, 0 }; +Guide_RM( 53 ) = { 1, 14, KEY_MENU, 0 }; +Guide_RM( 54 ) = { 2, 14, KEY_LSHIFT, 14, KEY_BACKTICK, 0 }; +Guide_RM( 55 ) = { 1, 8, 233, 0, 0 }; +Guide_RM( 56 ) = { 1, 14, KEY_S, 0 }; +Guide_RM( 57 ) = { 1, 14, KEY_COMMA, 0 }; +Guide_RM( 58 ) = { 1, 14, KEY_7, 0 }; +Guide_RM( 59 ) = { 1, 8, 234, 0, 0 }; +Guide_RM( 60 ) = { 2, 5, 1, 1, 0 }; +Guide_RM( 61 ) = { 1, 14, KEY_4, 0 }; +Guide_RM( 62 ) = { 1, 9, 0 }; +Guide_RM( 63 ) = { 1, 14, KEY_8, 0 }; +Guide_RM( 64 ) = { 1, 14, KEY_RIGHT, 0 }; +Guide_RM( 65 ) = { 2, 6, 1, 0, 1, 0 }; +Guide_RM( 66 ) = { 1, 14, KEY_3, 0 }; +Guide_RM( 67 ) = { 1, 14, KEY_SEMICOLON, 0 }; +Guide_RM( 68 ) = { 1, 14, KEY_LCTRL, 0 }; +Guide_RM( 69 ) = { 1, 14, KEY_F9, 0 }; +Guide_RM( 70 ) = { 1, 14, KEY_F11, 0 }; +Guide_RM( 71 ) = { 1, 14, KEY_MINUS, 0 }; +Guide_RM( 72 ) = { 1, 14, KEY_F1, 0 }; +Guide_RM( 73 ) = { 1, 14, KEY_BACKSLASH, 0 }; +Guide_RM( 74 ) = { 1, 14, KEY_F4, 0 }; +Guide_RM( 75 ) = { 1, 14, KEY_F12, 0 }; +Guide_RM( 76 ) = { 1, 8, 111, 0, 0 }; +Guide_RM( 77 ) = { 1, 14, KEY_F3, 0 }; +Guide_RM( 78 ) = { 1, 14, KEY_F6, 0 }; +Guide_RM( 79 ) = { 1, 14, KEY_PAGE_DOWN, 0 }; +Guide_RM( 80 ) = { 1, 14, KEY_DELETE, 0 }; +Guide_RM( 81 ) = { 1, 14, KEY_EQUAL, 0 }; +Guide_RM( 82 ) = { 2, 14, KEY_LSHIFT, 14, KEY_1, 0 }; +Guide_RM( 83 ) = { 1, 14, KEY_PAGE_UP, 0 }; +Guide_RM( 84 ) = { 2, 14, KEY_LSHIFT, 14, KEY_4, 0 }; +Guide_RM( 85 ) = { 1, 14, KEY_LEFT_BRACKET, 0 }; +Guide_RM( 86 ) = { 1, 14, KEY_F5, 0 }; +Guide_RM( 87 ) = { 2, 14, KEY_LSHIFT, 14, KEY_8, 0 }; +Guide_RM( 88 ) = { 2, 14, KEY_LSHIFT, 14, KEY_3, 0 }; +Guide_RM( 89 ) = { 2, 14, KEY_LSHIFT, 14, KEY_9, 0 }; +Guide_RM( 90 ) = { 2, 14, KEY_LSHIFT, 14, KEY_2, 0 }; +Guide_RM( 91 ) = { 2, 14, KEY_LSHIFT, 14, KEY_0, 0 }; +Guide_RM( 92 ) = { 2, 14, KEY_LSHIFT, 14, KEY_5, 0 }; +Guide_RM( 93 ) = { 1, 14, KEY_F8, 0 }; +Guide_RM( 94 ) = { 2, 14, KEY_LSHIFT, 14, KEY_6, 0 }; +Guide_RM( 95 ) = { 1, 14, KEY_F7, 0 }; +Guide_RM( 96 ) = { 1, 14, KEY_F2, 0 }; +Guide_RM( 97 ) = { 1, 14, KEY_F10, 0 }; +Guide_RM( 98 ) = { 2, 14, KEY_LSHIFT, 14, KEY_7, 0 }; +Guide_RM( 99 ) = { 1, 8, 112, 0, 0 }; +Guide_RM( 100 ) = { 1, 8, 205, 0, 0 }; +Guide_RM( 101 ) = { 1, 8, 226, 0, 0 }; +Guide_RM( 102 ) = { 1, 14, KEY_RIGHT_BRACKET, 0 }; +Guide_RM( 103 ) = { 2, 14, KEY_LSHIFT, 14, KEY_MINUS, 0 }; +Guide_RM( 104 ) = { 2, 14, KEY_LSHIFT, 14, KEY_BACKSLASH, 0 }; +Guide_RM( 105 ) = { 1, 8, 181, 0, 0 }; +Guide_RM( 106 ) = { 2, 14, KEY_LSHIFT, 14, KEY_EQUAL, 0 }; +Guide_RM( 107 ) = { 2, 14, KEY_LSHIFT, 14, KEY_LEFT_BRACKET, 0 }; +Guide_RM( 108 ) = { 1, 14, KEY_BACKTICK, 0 }; +Guide_RM( 109 ) = { 1, 8, 182, 0, 0 }; +Guide_RM( 110 ) = { 1, 8, 180, 1, 0 }; +Guide_RM( 111 ) = { 1, 8, 38, 2, 0 }; +Guide_RM( 112 ) = { 2, 14, KEY_LSHIFT, 14, KEY_RIGHT_BRACKET, 0 }; + + +// -- Result Macro List + +// Indexed Table of Result Macros +const ResultMacro ResultMacroList[] = { + Define_RM( 0 ), + Define_RM( 1 ), + Define_RM( 2 ), + Define_RM( 3 ), + Define_RM( 4 ), + Define_RM( 5 ), + Define_RM( 6 ), + Define_RM( 7 ), + Define_RM( 8 ), + Define_RM( 9 ), + Define_RM( 10 ), + Define_RM( 11 ), + Define_RM( 12 ), + Define_RM( 13 ), + Define_RM( 14 ), + Define_RM( 15 ), + Define_RM( 16 ), + Define_RM( 17 ), + Define_RM( 18 ), + Define_RM( 19 ), + Define_RM( 20 ), + Define_RM( 21 ), + Define_RM( 22 ), + Define_RM( 23 ), + Define_RM( 24 ), + Define_RM( 25 ), + Define_RM( 26 ), + Define_RM( 27 ), + Define_RM( 28 ), + Define_RM( 29 ), + Define_RM( 30 ), + Define_RM( 31 ), + Define_RM( 32 ), + Define_RM( 33 ), + Define_RM( 34 ), + Define_RM( 35 ), + Define_RM( 36 ), + Define_RM( 37 ), + Define_RM( 38 ), + Define_RM( 39 ), + Define_RM( 40 ), + Define_RM( 41 ), + Define_RM( 42 ), + Define_RM( 43 ), + Define_RM( 44 ), + Define_RM( 45 ), + Define_RM( 46 ), + Define_RM( 47 ), + Define_RM( 48 ), + Define_RM( 49 ), + Define_RM( 50 ), + Define_RM( 51 ), + Define_RM( 52 ), + Define_RM( 53 ), + Define_RM( 54 ), + Define_RM( 55 ), + Define_RM( 56 ), + Define_RM( 57 ), + Define_RM( 58 ), + Define_RM( 59 ), + Define_RM( 60 ), + Define_RM( 61 ), + Define_RM( 62 ), + Define_RM( 63 ), + Define_RM( 64 ), + Define_RM( 65 ), + Define_RM( 66 ), + Define_RM( 67 ), + Define_RM( 68 ), + Define_RM( 69 ), + Define_RM( 70 ), + Define_RM( 71 ), + Define_RM( 72 ), + Define_RM( 73 ), + Define_RM( 74 ), + Define_RM( 75 ), + Define_RM( 76 ), + Define_RM( 77 ), + Define_RM( 78 ), + Define_RM( 79 ), + Define_RM( 80 ), + Define_RM( 81 ), + Define_RM( 82 ), + Define_RM( 83 ), + Define_RM( 84 ), + Define_RM( 85 ), + Define_RM( 86 ), + Define_RM( 87 ), + Define_RM( 88 ), + Define_RM( 89 ), + Define_RM( 90 ), + Define_RM( 91 ), + Define_RM( 92 ), + Define_RM( 93 ), + Define_RM( 94 ), + Define_RM( 95 ), + Define_RM( 96 ), + Define_RM( 97 ), + Define_RM( 98 ), + Define_RM( 99 ), + Define_RM( 100 ), + Define_RM( 101 ), + Define_RM( 102 ), + Define_RM( 103 ), + Define_RM( 104 ), + Define_RM( 105 ), + Define_RM( 106 ), + Define_RM( 107 ), + Define_RM( 108 ), + Define_RM( 109 ), + Define_RM( 110 ), + Define_RM( 111 ), + Define_RM( 112 ), +}; + + +// -- Trigger Macro Record + +// Keeps a record/state of each result macro +ResultMacroRecord ResultMacroRecordList[ ResultMacroNum ]; + + +// -- Trigger Macros + +// Trigger Macro Guides +Guide_TM( 0 ) = { 1, 0x00, 0x01, 0x06, 0 }; +Guide_TM( 1 ) = { 1, 0x00, 0x01, 0x2F, 0 }; +Guide_TM( 2 ) = { 1, 0x00, 0x01, 0x16, 0 }; +Guide_TM( 3 ) = { 1, 0x00, 0x01, 0x46, 0 }; +Guide_TM( 4 ) = { 1, 0x00, 0x01, 0x1A, 0 }; +Guide_TM( 5 ) = { 1, 0x00, 0x01, 0x43, 0 }; +Guide_TM( 6 ) = { 1, 0x00, 0x01, 0x02, 0 }; +Guide_TM( 7 ) = { 1, 0x00, 0x01, 0x47, 0 }; +Guide_TM( 8 ) = { 1, 0x00, 0x01, 0x29, 0 }; +Guide_TM( 9 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 10 ) = { 1, 0x00, 0x01, 0x44, 0 }; +Guide_TM( 11 ) = { 1, 0x00, 0x01, 0x26, 0 }; +Guide_TM( 12 ) = { 1, 0x00, 0x01, 0x56, 0 }; +Guide_TM( 13 ) = { 1, 0x00, 0x01, 0x03, 0 }; +Guide_TM( 14 ) = { 1, 0x00, 0x01, 0x2A, 0 }; +Guide_TM( 15 ) = { 1, 0x00, 0x01, 0x53, 0 }; +Guide_TM( 16 ) = { 1, 0x00, 0x01, 0x17, 0 }; +Guide_TM( 17 ) = { 1, 0x00, 0x01, 0x57, 0 }; +Guide_TM( 18 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 19 ) = { 1, 0x00, 0x01, 0x2B, 0 }; +Guide_TM( 20 ) = { 1, 0x00, 0x01, 0x11, 0 }; +Guide_TM( 21 ) = { 1, 0x00, 0x01, 0x54, 0 }; +Guide_TM( 22 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 23 ) = { 1, 0x00, 0x01, 0x18, 0 }; +Guide_TM( 24 ) = { 1, 0x00, 0x01, 0x3E, 0 }; +Guide_TM( 25 ) = { 1, 0x00, 0x01, 0x15, 0 }; +Guide_TM( 26 ) = { 1, 0x00, 0x01, 0x27, 0 }; +Guide_TM( 27 ) = { 1, 0x00, 0x01, 0x50, 0 }; +Guide_TM( 28 ) = { 1, 0x00, 0x01, 0x42, 0 }; +Guide_TM( 29 ) = { 1, 0x00, 0x01, 0x24, 0 }; +Guide_TM( 30 ) = { 1, 0x00, 0x01, 0x4D, 0 }; +Guide_TM( 31 ) = { 1, 0x00, 0x01, 0x28, 0 }; +Guide_TM( 32 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 33 ) = { 1, 0x00, 0x01, 0x51, 0 }; +Guide_TM( 34 ) = { 1, 0x00, 0x01, 0x25, 0 }; +Guide_TM( 35 ) = { 1, 0x00, 0x01, 0x0B, 0 }; +Guide_TM( 36 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 37 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 38 ) = { 1, 0x00, 0x01, 0x52, 0 }; +Guide_TM( 39 ) = { 1, 0x00, 0x01, 0x38, 0 }; +Guide_TM( 40 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 41 ) = { 1, 0x00, 0x01, 0x21, 0 }; +Guide_TM( 42 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 43 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 44 ) = { 1, 0x00, 0x01, 0x1E, 0 }; +Guide_TM( 45 ) = { 1, 0x00, 0x01, 0x4E, 0 }; +Guide_TM( 46 ) = { 1, 0x00, 0x01, 0x22, 0 }; +Guide_TM( 47 ) = { 1, 0x00, 0x01, 0x4B, 0 }; +Guide_TM( 48 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 49 ) = { 1, 0x00, 0x01, 0x4F, 0 }; +Guide_TM( 50 ) = { 1, 0x00, 0x01, 0x33, 0 }; +Guide_TM( 51 ) = { 1, 0x00, 0x01, 0x23, 0 }; +Guide_TM( 52 ) = { 1, 0x00, 0x01, 0x07, 0 }; +Guide_TM( 53 ) = { 1, 0x00, 0x01, 0x4C, 0 }; +Guide_TM( 54 ) = { 1, 0x00, 0x01, 0x30, 0 }; +Guide_TM( 55 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 56 ) = { 1, 0x00, 0x01, 0x34, 0 }; +Guide_TM( 57 ) = { 1, 0x00, 0x01, 0x08, 0 }; +Guide_TM( 58 ) = { 1, 0x00, 0x01, 0x1F, 0 }; +Guide_TM( 59 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 60 ) = { 1, 0x00, 0x01, 0x35, 0 }; +Guide_TM( 61 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 62 ) = { 1, 0x00, 0x01, 0x45, 0 }; +Guide_TM( 63 ) = { 1, 0x00, 0x01, 0x20, 0 }; +Guide_TM( 64 ) = { 1, 0x00, 0x01, 0x04, 0 }; +Guide_TM( 65 ) = { 1, 0x00, 0x01, 0x49, 0 }; +Guide_TM( 66 ) = { 1, 0x00, 0x01, 0x1D, 0 }; +Guide_TM( 67 ) = { 1, 0x00, 0x01, 0x31, 0 }; +Guide_TM( 68 ) = { 1, 0x00, 0x01, 0x58, 0 }; +Guide_TM( 69 ) = { 1, 0x00, 0x01, 0x05, 0 }; +Guide_TM( 70 ) = { 1, 0x00, 0x01, 0x4A, 0 }; +Guide_TM( 71 ) = { 1, 0x00, 0x01, 0x2C, 0 }; +Guide_TM( 72 ) = { 1, 0x00, 0x01, 0x55, 0 }; +Guide_TM( 73 ) = { 1, 0x00, 0x01, 0x32, 0 }; +Guide_TM( 74 ) = { 1, 0x00, 0x01, 0x19, 0 }; +Guide_TM( 75 ) = { 1, 0x00, 0x01, 0x59, 0 }; +Guide_TM( 76 ) = { 1, 0x00, 0x01, 0x06, 0 }; +Guide_TM( 77 ) = { 1, 0x00, 0x01, 0x2F, 0 }; +Guide_TM( 78 ) = { 1, 0x00, 0x01, 0x16, 0 }; +Guide_TM( 79 ) = { 1, 0x00, 0x01, 0x46, 0 }; +Guide_TM( 80 ) = { 1, 0x00, 0x01, 0x1A, 0 }; +Guide_TM( 81 ) = { 1, 0x00, 0x01, 0x43, 0 }; +Guide_TM( 82 ) = { 1, 0x00, 0x01, 0x02, 0 }; +Guide_TM( 83 ) = { 1, 0x00, 0x01, 0x29, 0 }; +Guide_TM( 84 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 85 ) = { 1, 0x00, 0x01, 0x44, 0 }; +Guide_TM( 86 ) = { 1, 0x00, 0x01, 0x03, 0 }; +Guide_TM( 87 ) = { 1, 0x00, 0x01, 0x2A, 0 }; +Guide_TM( 88 ) = { 1, 0x00, 0x01, 0x53, 0 }; +Guide_TM( 89 ) = { 1, 0x00, 0x01, 0x17, 0 }; +Guide_TM( 90 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 91 ) = { 1, 0x00, 0x01, 0x2B, 0 }; +Guide_TM( 92 ) = { 1, 0x00, 0x01, 0x11, 0 }; +Guide_TM( 93 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 94 ) = { 1, 0x00, 0x01, 0x18, 0 }; +Guide_TM( 95 ) = { 1, 0x00, 0x01, 0x3E, 0 }; +Guide_TM( 96 ) = { 1, 0x00, 0x01, 0x15, 0 }; +Guide_TM( 97 ) = { 1, 0x00, 0x01, 0x42, 0 }; +Guide_TM( 98 ) = { 1, 0x00, 0x01, 0x4D, 0 }; +Guide_TM( 99 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 100 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 101 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 102 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 103 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 104 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 105 ) = { 1, 0x00, 0x01, 0x1E, 0 }; +Guide_TM( 106 ) = { 1, 0x00, 0x01, 0x4E, 0 }; +Guide_TM( 107 ) = { 1, 0x00, 0x01, 0x4B, 0 }; +Guide_TM( 108 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 109 ) = { 1, 0x00, 0x01, 0x4F, 0 }; +Guide_TM( 110 ) = { 1, 0x00, 0x01, 0x33, 0 }; +Guide_TM( 111 ) = { 1, 0x00, 0x01, 0x07, 0 }; +Guide_TM( 112 ) = { 1, 0x00, 0x01, 0x4C, 0 }; +Guide_TM( 113 ) = { 1, 0x00, 0x01, 0x30, 0 }; +Guide_TM( 114 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 115 ) = { 1, 0x00, 0x01, 0x34, 0 }; +Guide_TM( 116 ) = { 1, 0x00, 0x01, 0x08, 0 }; +Guide_TM( 117 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 118 ) = { 1, 0x00, 0x01, 0x35, 0 }; +Guide_TM( 119 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 120 ) = { 1, 0x00, 0x01, 0x45, 0 }; +Guide_TM( 121 ) = { 1, 0x00, 0x01, 0x04, 0 }; +Guide_TM( 122 ) = { 1, 0x00, 0x01, 0x49, 0 }; +Guide_TM( 123 ) = { 1, 0x00, 0x01, 0x31, 0 }; +Guide_TM( 124 ) = { 1, 0x00, 0x01, 0x05, 0 }; +Guide_TM( 125 ) = { 1, 0x00, 0x01, 0x2C, 0 }; +Guide_TM( 126 ) = { 1, 0x00, 0x01, 0x32, 0 }; +Guide_TM( 127 ) = { 1, 0x00, 0x01, 0x19, 0 }; +Guide_TM( 128 ) = { 1, 0x00, 0x01, 0x16, 0 }; +Guide_TM( 129 ) = { 1, 0x00, 0x01, 0x1A, 0 }; +Guide_TM( 130 ) = { 1, 0x00, 0x01, 0x1B, 0 }; +Guide_TM( 131 ) = { 1, 0x00, 0x01, 0x17, 0 }; +Guide_TM( 132 ) = { 1, 0x00, 0x01, 0x3D, 0 }; +Guide_TM( 133 ) = { 1, 0x00, 0x01, 0x3A, 0 }; +Guide_TM( 134 ) = { 1, 0x00, 0x01, 0x18, 0 }; +Guide_TM( 135 ) = { 1, 0x00, 0x01, 0x3E, 0 }; +Guide_TM( 136 ) = { 1, 0x00, 0x01, 0x0E, 0 }; +Guide_TM( 137 ) = { 1, 0x00, 0x01, 0x3B, 0 }; +Guide_TM( 138 ) = { 1, 0x00, 0x01, 0x0F, 0 }; +Guide_TM( 139 ) = { 1, 0x00, 0x01, 0x3C, 0 }; +Guide_TM( 140 ) = { 1, 0x00, 0x01, 0x10, 0 }; +Guide_TM( 141 ) = { 1, 0x00, 0x01, 0x39, 0 }; +Guide_TM( 142 ) = { 1, 0x00, 0x01, 0x0C, 0 }; +Guide_TM( 143 ) = { 1, 0x00, 0x01, 0x0D, 0 }; +Guide_TM( 144 ) = { 1, 0x00, 0x01, 0x1F, 0 }; +Guide_TM( 145 ) = { 1, 0x00, 0x01, 0x48, 0 }; +Guide_TM( 146 ) = { 1, 0x00, 0x01, 0x35, 0 }; +Guide_TM( 147 ) = { 1, 0x00, 0x01, 0x1C, 0 }; +Guide_TM( 148 ) = { 1, 0x00, 0x01, 0x49, 0 }; +Guide_TM( 149 ) = { 1, 0x00, 0x01, 0x19, 0 }; + + +// -- Trigger Macro List + +// Indexed Table of Trigger Macros +const TriggerMacro TriggerMacroList[] = { + Define_TM( 0, 0 ), + Define_TM( 1, 1 ), + Define_TM( 2, 2 ), + Define_TM( 3, 3 ), + Define_TM( 4, 4 ), + Define_TM( 5, 5 ), + Define_TM( 6, 6 ), + Define_TM( 7, 1 ), + Define_TM( 8, 7 ), + Define_TM( 9, 8 ), + Define_TM( 10, 9 ), + Define_TM( 11, 10 ), + Define_TM( 12, 11 ), + Define_TM( 13, 12 ), + Define_TM( 14, 13 ), + Define_TM( 15, 14 ), + Define_TM( 16, 15 ), + Define_TM( 17, 16 ), + Define_TM( 18, 17 ), + Define_TM( 19, 18 ), + Define_TM( 20, 14 ), + Define_TM( 21, 19 ), + Define_TM( 22, 20 ), + Define_TM( 23, 21 ), + Define_TM( 24, 22 ), + Define_TM( 25, 23 ), + Define_TM( 26, 19 ), + Define_TM( 27, 24 ), + Define_TM( 28, 25 ), + Define_TM( 29, 26 ), + Define_TM( 30, 27 ), + Define_TM( 31, 28 ), + Define_TM( 32, 29 ), + Define_TM( 33, 30 ), + Define_TM( 34, 31 ), + Define_TM( 35, 32 ), + Define_TM( 36, 33 ), + Define_TM( 37, 34 ), + Define_TM( 38, 35 ), + Define_TM( 39, 32 ), + Define_TM( 40, 36 ), + Define_TM( 41, 37 ), + Define_TM( 42, 38 ), + Define_TM( 43, 39 ), + Define_TM( 44, 40 ), + Define_TM( 45, 41 ), + Define_TM( 46, 42 ), + Define_TM( 47, 43 ), + Define_TM( 48, 44 ), + Define_TM( 49, 45 ), + Define_TM( 50, 46 ), + Define_TM( 51, 10 ), + Define_TM( 52, 47 ), + Define_TM( 53, 48 ), + Define_TM( 54, 49 ), + Define_TM( 55, 50 ), + Define_TM( 56, 51 ), + Define_TM( 57, 14 ), + Define_TM( 58, 52 ), + Define_TM( 59, 53 ), + Define_TM( 60, 54 ), + Define_TM( 61, 55 ), + Define_TM( 62, 56 ), + Define_TM( 63, 57 ), + Define_TM( 64, 58 ), + Define_TM( 65, 59 ), + Define_TM( 66, 60 ), + Define_TM( 67, 61 ), + Define_TM( 68, 62 ), + Define_TM( 69, 63 ), + Define_TM( 70, 60 ), + Define_TM( 71, 64 ), + Define_TM( 72, 65 ), + Define_TM( 73, 66 ), + Define_TM( 74, 67 ), + Define_TM( 75, 68 ), + Define_TM( 76, 69 ), + Define_TM( 77, 70 ), + Define_TM( 78, 71 ), + Define_TM( 79, 72 ), + Define_TM( 80, 73 ), + Define_TM( 81, 74 ), + Define_TM( 82, 75 ), + Define_TM( 83, 30 ), + Define_TM( 84, 76 ), + Define_TM( 85, 77 ), + Define_TM( 86, 78 ), + Define_TM( 87, 79 ), + Define_TM( 88, 80 ), + Define_TM( 89, 81 ), + Define_TM( 90, 82 ), + Define_TM( 91, 83 ), + Define_TM( 92, 80 ), + Define_TM( 93, 84 ), + Define_TM( 94, 85 ), + Define_TM( 95, 54 ), + Define_TM( 96, 78 ), + Define_TM( 97, 86 ), + Define_TM( 98, 69 ), + Define_TM( 99, 87 ), + Define_TM( 100, 88 ), + Define_TM( 101, 89 ), + Define_TM( 102, 90 ), + Define_TM( 103, 91 ), + Define_TM( 104, 92 ), + Define_TM( 105, 75 ), + Define_TM( 106, 93 ), + Define_TM( 107, 70 ), + Define_TM( 108, 94 ), + Define_TM( 109, 95 ), + Define_TM( 110, 96 ), + Define_TM( 111, 97 ), + Define_TM( 112, 97 ), + Define_TM( 113, 86 ), + Define_TM( 114, 98 ), + Define_TM( 115, 72 ), + Define_TM( 116, 80 ), + Define_TM( 117, 99 ), + Define_TM( 118, 1 ), + Define_TM( 119, 100 ), + Define_TM( 120, 96 ), + Define_TM( 121, 95 ), + Define_TM( 122, 101 ), + Define_TM( 123, 74 ), + Define_TM( 124, 93 ), + Define_TM( 125, 26 ), + Define_TM( 126, 77 ), + Define_TM( 127, 102 ), + Define_TM( 128, 103 ), + Define_TM( 129, 104 ), + Define_TM( 130, 105 ), + Define_TM( 131, 106 ), + Define_TM( 132, 51 ), + Define_TM( 133, 61 ), + Define_TM( 134, 107 ), + Define_TM( 135, 108 ), + Define_TM( 136, 63 ), + Define_TM( 137, 66 ), + Define_TM( 138, 0 ), + Define_TM( 139, 46 ), + Define_TM( 140, 47 ), + Define_TM( 141, 49 ), + Define_TM( 142, 12 ), + Define_TM( 143, 58 ), + Define_TM( 144, 8 ), + Define_TM( 145, 109 ), + Define_TM( 146, 108 ), + Define_TM( 147, 110 ), + Define_TM( 148, 111 ), + Define_TM( 149, 112 ), +}; + + +// -- Trigger Macro Record List + +// Keeps a record/state of each trigger macro +TriggerMacroRecord TriggerMacroRecordList[ TriggerMacroNum ]; + + + +// ----- Trigger Maps ----- + +// MaxScanCode +// - This is retrieved from the KLL configuration +// - Should be corollated with the max scan code in the scan module +// - Maximum value is 0x100 (0x0 to 0xFF) +// - Increasing it beyond the keyboard's capabilities is just a waste of ram... +#define MaxScanCode 0x59 + +// -- Trigger Lists +// +// Index 0: # of triggers in list +// Index n: pointer to trigger macro - use tm() macro + +// - Default Layer - +Define_TL( default, 0x02 ) = { 1, 6 }; +Define_TL( default, 0x03 ) = { 1, 13 }; +Define_TL( default, 0x04 ) = { 1, 64 }; +Define_TL( default, 0x05 ) = { 1, 69 }; +Define_TL( default, 0x06 ) = { 1, 0 }; +Define_TL( default, 0x07 ) = { 1, 52 }; +Define_TL( default, 0x08 ) = { 1, 57 }; +Define_TL( default, 0x09 ) = { 0 }; +Define_TL( default, 0x0A ) = { 0 }; +Define_TL( default, 0x0B ) = { 1, 35 }; +Define_TL( default, 0x0C ) = { 1, 48 }; +Define_TL( default, 0x0D ) = { 1, 55 }; +Define_TL( default, 0x0E ) = { 1, 32 }; +Define_TL( default, 0x0F ) = { 1, 37 }; +Define_TL( default, 0x10 ) = { 1, 42 }; +Define_TL( default, 0x11 ) = { 1, 20 }; +Define_TL( default, 0x12 ) = { 0 }; +Define_TL( default, 0x13 ) = { 0 }; +Define_TL( default, 0x14 ) = { 0 }; +Define_TL( default, 0x15 ) = { 1, 25 }; +Define_TL( default, 0x16 ) = { 1, 2 }; +Define_TL( default, 0x17 ) = { 1, 16 }; +Define_TL( default, 0x18 ) = { 1, 23 }; +Define_TL( default, 0x19 ) = { 1, 74 }; +Define_TL( default, 0x1A ) = { 1, 4 }; +Define_TL( default, 0x1B ) = { 1, 9 }; +Define_TL( default, 0x1C ) = { 1, 61 }; +Define_TL( default, 0x1D ) = { 1, 66 }; +Define_TL( default, 0x1E ) = { 1, 44 }; +Define_TL( default, 0x1F ) = { 1, 58 }; +Define_TL( default, 0x20 ) = { 1, 63 }; +Define_TL( default, 0x21 ) = { 1, 41 }; +Define_TL( default, 0x22 ) = { 1, 46 }; +Define_TL( default, 0x23 ) = { 1, 51 }; +Define_TL( default, 0x24 ) = { 1, 29 }; +Define_TL( default, 0x25 ) = { 1, 34 }; +Define_TL( default, 0x26 ) = { 1, 11 }; +Define_TL( default, 0x27 ) = { 1, 26 }; +Define_TL( default, 0x28 ) = { 1, 31 }; +Define_TL( default, 0x29 ) = { 1, 8 }; +Define_TL( default, 0x2A ) = { 1, 14 }; +Define_TL( default, 0x2B ) = { 1, 19 }; +Define_TL( default, 0x2C ) = { 1, 71 }; +Define_TL( default, 0x2D ) = { 0 }; +Define_TL( default, 0x2E ) = { 0 }; +Define_TL( default, 0x2F ) = { 1, 1 }; +Define_TL( default, 0x30 ) = { 1, 54 }; +Define_TL( default, 0x31 ) = { 1, 67 }; +Define_TL( default, 0x32 ) = { 1, 73 }; +Define_TL( default, 0x33 ) = { 1, 50 }; +Define_TL( default, 0x34 ) = { 1, 56 }; +Define_TL( default, 0x35 ) = { 1, 60 }; +Define_TL( default, 0x36 ) = { 0 }; +Define_TL( default, 0x37 ) = { 0 }; +Define_TL( default, 0x38 ) = { 1, 39 }; +Define_TL( default, 0x39 ) = { 1, 43 }; +Define_TL( default, 0x3A ) = { 1, 22 }; +Define_TL( default, 0x3B ) = { 1, 36 }; +Define_TL( default, 0x3C ) = { 1, 40 }; +Define_TL( default, 0x3D ) = { 1, 18 }; +Define_TL( default, 0x3E ) = { 1, 24 }; +Define_TL( default, 0x3F ) = { 0 }; +Define_TL( default, 0x40 ) = { 0 }; +Define_TL( default, 0x41 ) = { 0 }; +Define_TL( default, 0x42 ) = { 1, 28 }; +Define_TL( default, 0x43 ) = { 1, 5 }; +Define_TL( default, 0x44 ) = { 1, 10 }; +Define_TL( default, 0x45 ) = { 1, 62 }; +Define_TL( default, 0x46 ) = { 1, 3 }; +Define_TL( default, 0x47 ) = { 1, 7 }; +Define_TL( default, 0x48 ) = { 1, 59 }; +Define_TL( default, 0x49 ) = { 1, 65 }; +Define_TL( default, 0x4A ) = { 1, 70 }; +Define_TL( default, 0x4B ) = { 1, 47 }; +Define_TL( default, 0x4C ) = { 1, 53 }; +Define_TL( default, 0x4D ) = { 1, 30 }; +Define_TL( default, 0x4E ) = { 1, 45 }; +Define_TL( default, 0x4F ) = { 1, 49 }; +Define_TL( default, 0x50 ) = { 1, 27 }; +Define_TL( default, 0x51 ) = { 1, 33 }; +Define_TL( default, 0x52 ) = { 1, 38 }; +Define_TL( default, 0x53 ) = { 1, 15 }; +Define_TL( default, 0x54 ) = { 1, 21 }; +Define_TL( default, 0x55 ) = { 1, 72 }; +Define_TL( default, 0x56 ) = { 1, 12 }; +Define_TL( default, 0x57 ) = { 1, 17 }; +Define_TL( default, 0x58 ) = { 1, 68 }; +Define_TL( default, 0x59 ) = { 1, 75 }; + + +// - Partial Layers - +// Partial Layer 1 +Define_TL( layer1, 0x02 ) = { 1, 82 }; +Define_TL( layer1, 0x03 ) = { 1, 86 }; +Define_TL( layer1, 0x04 ) = { 1, 121 }; +Define_TL( layer1, 0x05 ) = { 1, 124 }; +Define_TL( layer1, 0x06 ) = { 1, 76 }; +Define_TL( layer1, 0x07 ) = { 1, 111 }; +Define_TL( layer1, 0x08 ) = { 1, 116 }; +Define_TL( layer1, 0x09 ) = { 0 }; +Define_TL( layer1, 0x0A ) = { 0 }; +Define_TL( layer1, 0x0B ) = { 0 }; +Define_TL( layer1, 0x0C ) = { 1, 108 }; +Define_TL( layer1, 0x0D ) = { 1, 114 }; +Define_TL( layer1, 0x0E ) = { 1, 99 }; +Define_TL( layer1, 0x0F ) = { 1, 101 }; +Define_TL( layer1, 0x10 ) = { 1, 103 }; +Define_TL( layer1, 0x11 ) = { 1, 92 }; +Define_TL( layer1, 0x12 ) = { 0 }; +Define_TL( layer1, 0x13 ) = { 0 }; +Define_TL( layer1, 0x14 ) = { 0 }; +Define_TL( layer1, 0x15 ) = { 1, 96 }; +Define_TL( layer1, 0x16 ) = { 1, 78 }; +Define_TL( layer1, 0x17 ) = { 1, 89 }; +Define_TL( layer1, 0x18 ) = { 1, 94 }; +Define_TL( layer1, 0x19 ) = { 1, 127 }; +Define_TL( layer1, 0x1A ) = { 1, 80 }; +Define_TL( layer1, 0x1B ) = { 1, 84 }; +Define_TL( layer1, 0x1C ) = { 1, 119 }; +Define_TL( layer1, 0x1D ) = { 0 }; +Define_TL( layer1, 0x1E ) = { 1, 105 }; +Define_TL( layer1, 0x1F ) = { 0 }; +Define_TL( layer1, 0x20 ) = { 0 }; +Define_TL( layer1, 0x21 ) = { 0 }; +Define_TL( layer1, 0x22 ) = { 0 }; +Define_TL( layer1, 0x23 ) = { 0 }; +Define_TL( layer1, 0x24 ) = { 0 }; +Define_TL( layer1, 0x25 ) = { 0 }; +Define_TL( layer1, 0x26 ) = { 0 }; +Define_TL( layer1, 0x27 ) = { 0 }; +Define_TL( layer1, 0x28 ) = { 0 }; +Define_TL( layer1, 0x29 ) = { 1, 83 }; +Define_TL( layer1, 0x2A ) = { 1, 87 }; +Define_TL( layer1, 0x2B ) = { 1, 91 }; +Define_TL( layer1, 0x2C ) = { 1, 125 }; +Define_TL( layer1, 0x2D ) = { 0 }; +Define_TL( layer1, 0x2E ) = { 0 }; +Define_TL( layer1, 0x2F ) = { 1, 77 }; +Define_TL( layer1, 0x30 ) = { 1, 113 }; +Define_TL( layer1, 0x31 ) = { 1, 123 }; +Define_TL( layer1, 0x32 ) = { 1, 126 }; +Define_TL( layer1, 0x33 ) = { 1, 110 }; +Define_TL( layer1, 0x34 ) = { 1, 115 }; +Define_TL( layer1, 0x35 ) = { 1, 118 }; +Define_TL( layer1, 0x36 ) = { 0 }; +Define_TL( layer1, 0x37 ) = { 0 }; +Define_TL( layer1, 0x38 ) = { 0 }; +Define_TL( layer1, 0x39 ) = { 1, 104 }; +Define_TL( layer1, 0x3A ) = { 1, 93 }; +Define_TL( layer1, 0x3B ) = { 1, 100 }; +Define_TL( layer1, 0x3C ) = { 1, 102 }; +Define_TL( layer1, 0x3D ) = { 1, 90 }; +Define_TL( layer1, 0x3E ) = { 1, 95 }; +Define_TL( layer1, 0x3F ) = { 0 }; +Define_TL( layer1, 0x40 ) = { 0 }; +Define_TL( layer1, 0x41 ) = { 0 }; +Define_TL( layer1, 0x42 ) = { 1, 97 }; +Define_TL( layer1, 0x43 ) = { 1, 81 }; +Define_TL( layer1, 0x44 ) = { 1, 85 }; +Define_TL( layer1, 0x45 ) = { 1, 120 }; +Define_TL( layer1, 0x46 ) = { 1, 79 }; +Define_TL( layer1, 0x47 ) = { 0 }; +Define_TL( layer1, 0x48 ) = { 1, 117 }; +Define_TL( layer1, 0x49 ) = { 1, 122 }; +Define_TL( layer1, 0x4A ) = { 0 }; +Define_TL( layer1, 0x4B ) = { 1, 107 }; +Define_TL( layer1, 0x4C ) = { 1, 112 }; +Define_TL( layer1, 0x4D ) = { 1, 98 }; +Define_TL( layer1, 0x4E ) = { 1, 106 }; +Define_TL( layer1, 0x4F ) = { 1, 109 }; +Define_TL( layer1, 0x50 ) = { 0 }; +Define_TL( layer1, 0x51 ) = { 0 }; +Define_TL( layer1, 0x52 ) = { 0 }; +Define_TL( layer1, 0x53 ) = { 1, 88 }; + +// Partial Layer 2 +Define_TL( layer2, 0x0C ) = { 1, 142 }; +Define_TL( layer2, 0x0D ) = { 1, 143 }; +Define_TL( layer2, 0x0E ) = { 1, 136 }; +Define_TL( layer2, 0x0F ) = { 1, 138 }; +Define_TL( layer2, 0x10 ) = { 1, 140 }; +Define_TL( layer2, 0x11 ) = { 0 }; +Define_TL( layer2, 0x12 ) = { 0 }; +Define_TL( layer2, 0x13 ) = { 0 }; +Define_TL( layer2, 0x14 ) = { 0 }; +Define_TL( layer2, 0x15 ) = { 0 }; +Define_TL( layer2, 0x16 ) = { 1, 128 }; +Define_TL( layer2, 0x17 ) = { 1, 131 }; +Define_TL( layer2, 0x18 ) = { 1, 134 }; +Define_TL( layer2, 0x19 ) = { 1, 149 }; +Define_TL( layer2, 0x1A ) = { 1, 129 }; +Define_TL( layer2, 0x1B ) = { 1, 130 }; +Define_TL( layer2, 0x1C ) = { 1, 147 }; +Define_TL( layer2, 0x1D ) = { 0 }; +Define_TL( layer2, 0x1E ) = { 0 }; +Define_TL( layer2, 0x1F ) = { 1, 144 }; +Define_TL( layer2, 0x20 ) = { 0 }; +Define_TL( layer2, 0x21 ) = { 0 }; +Define_TL( layer2, 0x22 ) = { 0 }; +Define_TL( layer2, 0x23 ) = { 0 }; +Define_TL( layer2, 0x24 ) = { 0 }; +Define_TL( layer2, 0x25 ) = { 0 }; +Define_TL( layer2, 0x26 ) = { 0 }; +Define_TL( layer2, 0x27 ) = { 0 }; +Define_TL( layer2, 0x28 ) = { 0 }; +Define_TL( layer2, 0x29 ) = { 0 }; +Define_TL( layer2, 0x2A ) = { 0 }; +Define_TL( layer2, 0x2B ) = { 0 }; +Define_TL( layer2, 0x2C ) = { 0 }; +Define_TL( layer2, 0x2D ) = { 0 }; +Define_TL( layer2, 0x2E ) = { 0 }; +Define_TL( layer2, 0x2F ) = { 0 }; +Define_TL( layer2, 0x30 ) = { 0 }; +Define_TL( layer2, 0x31 ) = { 0 }; +Define_TL( layer2, 0x32 ) = { 0 }; +Define_TL( layer2, 0x33 ) = { 0 }; +Define_TL( layer2, 0x34 ) = { 0 }; +Define_TL( layer2, 0x35 ) = { 1, 146 }; +Define_TL( layer2, 0x36 ) = { 0 }; +Define_TL( layer2, 0x37 ) = { 0 }; +Define_TL( layer2, 0x38 ) = { 0 }; +Define_TL( layer2, 0x39 ) = { 1, 141 }; +Define_TL( layer2, 0x3A ) = { 1, 133 }; +Define_TL( layer2, 0x3B ) = { 1, 137 }; +Define_TL( layer2, 0x3C ) = { 1, 139 }; +Define_TL( layer2, 0x3D ) = { 1, 132 }; +Define_TL( layer2, 0x3E ) = { 1, 135 }; +Define_TL( layer2, 0x3F ) = { 0 }; +Define_TL( layer2, 0x40 ) = { 0 }; +Define_TL( layer2, 0x41 ) = { 0 }; +Define_TL( layer2, 0x42 ) = { 0 }; +Define_TL( layer2, 0x43 ) = { 0 }; +Define_TL( layer2, 0x44 ) = { 0 }; +Define_TL( layer2, 0x45 ) = { 1, 120 }; +Define_TL( layer2, 0x46 ) = { 1, 79 }; +Define_TL( layer2, 0x47 ) = { 0 }; +Define_TL( layer2, 0x48 ) = { 1, 145 }; +Define_TL( layer2, 0x49 ) = { 1, 148 }; + + +// -- ScanCode Offset Map +// Maps interconnect ids to scancode offsets +// +// Only used for keyboards with an interconnect +const uint8_t InterconnectOffsetList[] = { + 0x2D, + 0x59, +}; + + +// -- ScanCode Indexed Maps +// Maps to a trigger list of macro pointers +// _ +// -> |T| +// |r| -> +// |i| +// |g| -> +// |g| +// |e| -> +// |r| +// |s| -> +// - + +// - Default Map for ScanCode Lookup - +const nat_ptr_t *default_scanMap[] = { +default_tl_0x02, default_tl_0x03, default_tl_0x04, default_tl_0x05, default_tl_0x06, default_tl_0x07, default_tl_0x08, default_tl_0x09, default_tl_0x0A, default_tl_0x0B, default_tl_0x0C, default_tl_0x0D, default_tl_0x0E, default_tl_0x0F, default_tl_0x10, default_tl_0x11, default_tl_0x12, default_tl_0x13, default_tl_0x14, default_tl_0x15, default_tl_0x16, default_tl_0x17, default_tl_0x18, default_tl_0x19, default_tl_0x1A, default_tl_0x1B, default_tl_0x1C, default_tl_0x1D, default_tl_0x1E, default_tl_0x1F, default_tl_0x20, default_tl_0x21, default_tl_0x22, default_tl_0x23, default_tl_0x24, default_tl_0x25, default_tl_0x26, default_tl_0x27, default_tl_0x28, default_tl_0x29, default_tl_0x2A, default_tl_0x2B, default_tl_0x2C, default_tl_0x2D, default_tl_0x2E, default_tl_0x2F, default_tl_0x30, default_tl_0x31, default_tl_0x32, default_tl_0x33, default_tl_0x34, default_tl_0x35, default_tl_0x36, default_tl_0x37, default_tl_0x38, default_tl_0x39, default_tl_0x3A, default_tl_0x3B, default_tl_0x3C, default_tl_0x3D, default_tl_0x3E, default_tl_0x3F, default_tl_0x40, default_tl_0x41, default_tl_0x42, default_tl_0x43, default_tl_0x44, default_tl_0x45, default_tl_0x46, default_tl_0x47, default_tl_0x48, default_tl_0x49, default_tl_0x4A, default_tl_0x4B, default_tl_0x4C, default_tl_0x4D, default_tl_0x4E, default_tl_0x4F, default_tl_0x50, default_tl_0x51, default_tl_0x52, default_tl_0x53, default_tl_0x54, default_tl_0x55, default_tl_0x56, default_tl_0x57, default_tl_0x58, default_tl_0x59 +}; + + +// - Partial Layer ScanCode Lookup Maps - +// Partial Layer 1 +const nat_ptr_t *layer1_scanMap[] = { +layer1_tl_0x02, layer1_tl_0x03, layer1_tl_0x04, layer1_tl_0x05, layer1_tl_0x06, layer1_tl_0x07, layer1_tl_0x08, layer1_tl_0x09, layer1_tl_0x0A, layer1_tl_0x0B, layer1_tl_0x0C, layer1_tl_0x0D, layer1_tl_0x0E, layer1_tl_0x0F, layer1_tl_0x10, layer1_tl_0x11, layer1_tl_0x12, layer1_tl_0x13, layer1_tl_0x14, layer1_tl_0x15, layer1_tl_0x16, layer1_tl_0x17, layer1_tl_0x18, layer1_tl_0x19, layer1_tl_0x1A, layer1_tl_0x1B, layer1_tl_0x1C, layer1_tl_0x1D, layer1_tl_0x1E, layer1_tl_0x1F, layer1_tl_0x20, layer1_tl_0x21, layer1_tl_0x22, layer1_tl_0x23, layer1_tl_0x24, layer1_tl_0x25, layer1_tl_0x26, layer1_tl_0x27, layer1_tl_0x28, layer1_tl_0x29, layer1_tl_0x2A, layer1_tl_0x2B, layer1_tl_0x2C, layer1_tl_0x2D, layer1_tl_0x2E, layer1_tl_0x2F, layer1_tl_0x30, layer1_tl_0x31, layer1_tl_0x32, layer1_tl_0x33, layer1_tl_0x34, layer1_tl_0x35, layer1_tl_0x36, layer1_tl_0x37, layer1_tl_0x38, layer1_tl_0x39, layer1_tl_0x3A, layer1_tl_0x3B, layer1_tl_0x3C, layer1_tl_0x3D, layer1_tl_0x3E, layer1_tl_0x3F, layer1_tl_0x40, layer1_tl_0x41, layer1_tl_0x42, layer1_tl_0x43, layer1_tl_0x44, layer1_tl_0x45, layer1_tl_0x46, layer1_tl_0x47, layer1_tl_0x48, layer1_tl_0x49, layer1_tl_0x4A, layer1_tl_0x4B, layer1_tl_0x4C, layer1_tl_0x4D, layer1_tl_0x4E, layer1_tl_0x4F, layer1_tl_0x50, layer1_tl_0x51, layer1_tl_0x52, layer1_tl_0x53 +}; + +// Partial Layer 2 +const nat_ptr_t *layer2_scanMap[] = { +layer2_tl_0x0C, layer2_tl_0x0D, layer2_tl_0x0E, layer2_tl_0x0F, layer2_tl_0x10, layer2_tl_0x11, layer2_tl_0x12, layer2_tl_0x13, layer2_tl_0x14, layer2_tl_0x15, layer2_tl_0x16, layer2_tl_0x17, layer2_tl_0x18, layer2_tl_0x19, layer2_tl_0x1A, layer2_tl_0x1B, layer2_tl_0x1C, layer2_tl_0x1D, layer2_tl_0x1E, layer2_tl_0x1F, layer2_tl_0x20, layer2_tl_0x21, layer2_tl_0x22, layer2_tl_0x23, layer2_tl_0x24, layer2_tl_0x25, layer2_tl_0x26, layer2_tl_0x27, layer2_tl_0x28, layer2_tl_0x29, layer2_tl_0x2A, layer2_tl_0x2B, layer2_tl_0x2C, layer2_tl_0x2D, layer2_tl_0x2E, layer2_tl_0x2F, layer2_tl_0x30, layer2_tl_0x31, layer2_tl_0x32, layer2_tl_0x33, layer2_tl_0x34, layer2_tl_0x35, layer2_tl_0x36, layer2_tl_0x37, layer2_tl_0x38, layer2_tl_0x39, layer2_tl_0x3A, layer2_tl_0x3B, layer2_tl_0x3C, layer2_tl_0x3D, layer2_tl_0x3E, layer2_tl_0x3F, layer2_tl_0x40, layer2_tl_0x41, layer2_tl_0x42, layer2_tl_0x43, layer2_tl_0x44, layer2_tl_0x45, layer2_tl_0x46, layer2_tl_0x47, layer2_tl_0x48, layer2_tl_0x49 +}; + + + +// ----- Layer Index ----- + +// -- Layer Index List +// +// Index 0: Default map +// Index n: Additional layers +const Layer LayerIndex[] = { + Layer_IN( default_scanMap, "D: MDErgo1 + lcdFuncMap", 0x02 ), + Layer_IN( layer1_scanMap, "1: MDErgo1 + lcdFuncMap", 0x02 ), + Layer_IN( layer2_scanMap, "2: MDErgo1 + lcdFuncMap", 0x0C ), +}; + + +// - Layer State +uint8_t LayerState[ LayerNum ]; + diff --git a/inf_ergodox/src/log/right_kll_defs.h b/inf_ergodox/src/log/right_kll_defs.h new file mode 100644 index 0000000..4c9d84d --- /dev/null +++ b/inf_ergodox/src/log/right_kll_defs.h @@ -0,0 +1,243 @@ +/* Copyright (C) 2014-2015 by Jacob Alexander + * + * This file is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this file. If not, see . + */ + +// This file was generated by the kll compiler, DO NOT EDIT. +// Generation Date: 2016-04-05 +// KLL Backend: kiibohd +// KLL Git Rev: b6cf0f13a88fef650f48270a1d1e20ccb1972d21 +// KLL Git Changes: None +// Compiler arguments: +// /srv/KiiConf/controller/kll/kll.py +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// -d +// MDErgo1-Default-0.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-1.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// -p +// MDErgo1-Default-2.kll +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// --backend +// kiibohd +// --templates +// /srv/KiiConf/controller/kll/templates/kiibohdKeymap.h +// /srv/KiiConf/controller/kll/templates/kiibohdDefs.h +// --outputs +// generatedKeymap.h +// kll_defs.h +// +// - Base Layer - +// ISSILedCapabilities +// /srv/KiiConf/controller/Scan/ISSILed/capabilities.kll +// MatrixArmCapabilities +// /srv/KiiConf/controller/Scan/MatrixARM/capabilities.kll +// STLcdCapabilities +// /srv/KiiConf/controller/Scan/STLcd/capabilities.kll +// UARTConnectCapabilities +// /srv/KiiConf/controller/Scan/UARTConnect/capabilities.kll +// PartialMapCapabilities +// /srv/KiiConf/controller/Macro/PartialMap/capabilities.kll +// pjrcUSBCapabilities +// /srv/KiiConf/controller/Output/pjrcUSB/capabilities.kll +// MDErgo1 +// /srv/KiiConf/controller/Scan/MDErgo1/defaultMap.kll +// MDErgo1RightHand +// /srv/KiiConf/controller/Scan/MDErgo1/rightHand.kll +// MDErgo1Slave1 +// /srv/KiiConf/controller/Scan/MDErgo1/slave1.kll +// MDErgo1LeftHand +// /srv/KiiConf/controller/Scan/MDErgo1/leftHand.kll +// - Default Layer - +// MDErgo1 +// MDErgo1-Default-0.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// - Partial Layers - +// Layer 1 +// MDErgo1 +// MDErgo1-Default-1.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll +// Layer 2 +// MDErgo1 +// MDErgo1-Default-2.kll +// lcdFuncMap +// /srv/KiiConf/controller/kll/layouts/lcdFuncMap.kll + + + +#pragma once + +// ----- Enums ----- + +// Capability Indices +typedef enum CapabilityIndex { + LCD_layerStackExact_capability_index, + LCD_layerStack_capability_index, + LED_control_capability_index, + Macro_layerLatch_capability_index, + Macro_layerLock_capability_index, + Macro_layerRotate_capability_index, + Macro_layerShift_capability_index, + Macro_layerState_capability_index, + Output_consCtrlSend_capability_index, + Output_flashMode_capability_index, + Output_kbdProtocolBoot_capability_index, + Output_kbdProtocolNKRO_capability_index, + Output_noneSend_capability_index, + Output_sysCtrlSend_capability_index, + Output_usbCodeSend_capability_index, +} CapabilityIndex; + + + +// ----- KLL Variables ----- + + + + +// ----- Defines ----- + +// -- Interconnect Node Maximum -- +#define InterconnectNodeMax 0x2 + + + +#define STLcdNumber8Color_define 0x8303, 0x1394, 0xB9F9 +#define STLcdDefaultImage_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + +#define STLcdNumber8_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define ISSILedMask1_define \ + 0xFF, 0x00, /* C1-1 -> C1-16 */ \ + 0xFF, 0x00, /* C2-1 -> C2-16 */ \ + 0xFF, 0x00, /* C3-1 -> C3-16 */ \ + 0xFF, 0x00, /* C4-1 -> C4-16 */ \ + 0x3F, 0x00, /* C5-1 -> C5-16 */ \ + 0x00, 0x00, /* C6-1 -> C6-16 */ \ + 0x00, 0x00, /* C7-1 -> C7-16 */ \ + 0x00, 0x00, /* C8-1 -> C8-16 */ \ + 0x00, 0x00, /* C9-1 -> C9-16 */ \ + +#define DebounceThrottleDiv_define 0 +#define STLcdNumber4Color_define 0xF6F6, 0xA5A5, 0x4949 +#define STLcdNumber0_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber3Color_define 0x0000, 0x8242, 0xB3F3 +#define ConnectEnabled_define 1 +#define UARTConnectBaud_define 1 +#define KeyboardLocale_define 0 +#define ISSILedBrightness1_define \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */ \ +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */ \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */ \ + +#define STLcdBacklightRed_define 4095 +#define UARTConnectBaudFine_define 0 +#define STLcdNumber9Color_define 0x09CA, 0x12D3, 0x8484 +#define LCDEnabled_define 1 +#define STLcdNumber7Color_define 0x00C1, 0x7E7E, 0x3C3C +#define STLcdBacklightPrescalar_define 0 +#define MinDebounceTime_define 5 +#define flashModeEnabled_define 0 +#define STLcdBacklightBlue_define 4095 +#define STLcdBacklightGreen_define 4095 +#define UARTConnectBufSize_define 128 +#define UARTConnectCableCheckLength_define 2 +#define STLcdNumber3_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber5_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, \ + +#define STLcdNumber7_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber1_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + +#define STLcdNumber4_define \ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define StateWordSize_define 8 +#define STLcdNumber9_define \ +0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber6_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, \ + +#define STLcdNumber2Color_define 0x4B4B, 0x8D8D, 0x34B5 +#define STLcdNumber0Color_define 0xB939, 0xAAEA, 0x8D8D +#define DebounceDivThreshold_define 65535 +#define STLcdNumber1Color_define 0xA8A8, 0x2727, 0x1FA0 +#define STLcdNumber2_define \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ +0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, \ + +#define STLcdNumber5Color_define 0xB7B7, 0x5D5D, 0x8545 +#define STLcdNumber6Color_define 0xBCFC, 0xB6F6, 0x2D2D + diff --git a/inf_ergodox/src/right_kiibohd.dfu.bin b/inf_ergodox/src/right_kiibohd.dfu.bin new file mode 100644 index 0000000000000000000000000000000000000000..f50fea5cc56b3dbfc24f7087a6880e7a578dda17 GIT binary patch literal 43568 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 Oo^`F$ANkgazx*F-B&E0j literal 0 HcmV?d00001