aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common
diff options
context:
space:
mode:
authorStephen Wanhella <Stephen.wanhella@gmail.com>2019-08-21 17:07:08 -0700
committerDrashna Jaelre <drashna@live.com>2019-08-21 17:07:08 -0700
commitd534c72a544454132b3c6c05af85c821f6a93d65 (patch)
tree906a66b899e4de1d7ffe567bbdb2c9082d948140 /tmk_core/common
parent6a79b05cf02d5a6f07b17474344e272b44c77988 (diff)
downloadqmk_firmware-d534c72a544454132b3c6c05af85c821f6a93d65.tar.gz
qmk_firmware-d534c72a544454132b3c6c05af85c821f6a93d65.zip
Added keycodes for swapping and unswapping the Control and OS keys (#6110)
* Add MAGIC_SWAP_CONTROL_LGUI and MAGIC_UNSWAP_CONTROL_LGUI keycodes Key codes to swap and unswap the control and windows/cmd keys * Fix issues with pull request #6110 Renamed swap/unswap lctl and lgui key codes, added key codes to swap/unswap rctl and rgui, and moved new bool inside keycode_config.h struct to the end * Move new keycodes to the end of the enum (#6110) * add cases for swapped control and OS keys to mod_config (#6110) * Add new keycodes to feature_bootmagic.md (#6110) * Add R+L swap codes to keep in parity with AG_* codes * Extend Magic range check to include new magic codes * Update audio docs * Combine 2 byte ranges into 1 word for EECONFG Fix names for Keymap config EEPROM * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update docs/feature_bootmagic.md Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
Diffstat (limited to 'tmk_core/common')
-rw-r--r--tmk_core/common/command.c2
-rw-r--r--tmk_core/common/eeconfig.c12
-rw-r--r--tmk_core/common/eeconfig.h8
3 files changed, 16 insertions, 6 deletions
diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c
index d3884d9fa..949615ecf 100644
--- a/tmk_core/common/command.c
+++ b/tmk_core/common/command.c
@@ -286,6 +286,8 @@ static void print_eeconfig(void)
286 print("keymap_config.raw: "); print_hex8(kc.raw); print("\n"); 286 print("keymap_config.raw: "); print_hex8(kc.raw); print("\n");
287 print(".swap_control_capslock: "); print_dec(kc.swap_control_capslock); print("\n"); 287 print(".swap_control_capslock: "); print_dec(kc.swap_control_capslock); print("\n");
288 print(".capslock_to_control: "); print_dec(kc.capslock_to_control); print("\n"); 288 print(".capslock_to_control: "); print_dec(kc.capslock_to_control); print("\n");
289 print(".swap_lctl_lgui: "); print_dec(kc.swap_lctl_lgui); print("\n");
290 print(".swap_rctl_rgui: "); print_dec(kc.swap_rctl_rgui); print("\n");
289 print(".swap_lalt_lgui: "); print_dec(kc.swap_lalt_lgui); print("\n"); 291 print(".swap_lalt_lgui: "); print_dec(kc.swap_lalt_lgui); print("\n");
290 print(".swap_ralt_rgui: "); print_dec(kc.swap_ralt_rgui); print("\n"); 292 print(".swap_ralt_rgui: "); print_dec(kc.swap_ralt_rgui); print("\n");
291 print(".no_gui: "); print_dec(kc.no_gui); print("\n"); 293 print(".no_gui: "); print_dec(kc.no_gui); print("\n");
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c
index 4f440abc9..28f5d3ad5 100644
--- a/tmk_core/common/eeconfig.c
+++ b/tmk_core/common/eeconfig.c
@@ -39,7 +39,8 @@ void eeconfig_init_quantum(void) {
39 eeprom_update_byte(EECONFIG_DEBUG, 0); 39 eeprom_update_byte(EECONFIG_DEBUG, 0);
40 eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); 40 eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0);
41 default_layer_state = 0; 41 default_layer_state = 0;
42 eeprom_update_byte(EECONFIG_KEYMAP, 0); 42 eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, 0);
43 eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0);
43 eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); 44 eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0);
44 eeprom_update_byte(EECONFIG_BACKLIGHT, 0); 45 eeprom_update_byte(EECONFIG_BACKLIGHT, 0);
45 eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default 46 eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default
@@ -127,12 +128,17 @@ void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DE
127 * 128 *
128 * FIXME: needs doc 129 * FIXME: needs doc
129 */ 130 */
130uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } 131uint16_t eeconfig_read_keymap(void) {
132 return ( eeprom_read_byte(EECONFIG_KEYMAP_LOWER_BYTE) | (eeprom_read_byte(EECONFIG_KEYMAP_UPPER_BYTE) << 8) );
133}
131/** \brief eeconfig update keymap 134/** \brief eeconfig update keymap
132 * 135 *
133 * FIXME: needs doc 136 * FIXME: needs doc
134 */ 137 */
135void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } 138void eeconfig_update_keymap(uint16_t val) {
139 eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, val & 0xFF);
140 eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, ( val >> 8 ) & 0xFF );
141}
136 142
137/** \brief eeconfig read backlight 143/** \brief eeconfig read backlight
138 * 144 *
diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h
index 3100041b4..0d5c6a82f 100644
--- a/tmk_core/common/eeconfig.h
+++ b/tmk_core/common/eeconfig.h
@@ -45,7 +45,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
45#define EECONFIG_HAPTIC (uint32_t *)24 45#define EECONFIG_HAPTIC (uint32_t *)24
46#define EECONFIG_RGB_MATRIX (uint32_t *)28 46#define EECONFIG_RGB_MATRIX (uint32_t *)28
47#define EECONFIG_RGB_MATRIX_SPEED (uint8_t *)32 47#define EECONFIG_RGB_MATRIX_SPEED (uint8_t *)32
48 48// TODO: Combine these into a single word and single block of EEPROM
49#define EECONFIG_KEYMAP_UPPER_BYTE (uint8_t *)33
49/* debug bit */ 50/* debug bit */
50#define EECONFIG_DEBUG_ENABLE (1<<0) 51#define EECONFIG_DEBUG_ENABLE (1<<0)
51#define EECONFIG_DEBUG_MATRIX (1<<1) 52#define EECONFIG_DEBUG_MATRIX (1<<1)
@@ -62,6 +63,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
62#define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6) 63#define EECONFIG_KEYMAP_SWAP_BACKSLASH_BACKSPACE (1<<6)
63#define EECONFIG_KEYMAP_NKRO (1<<7) 64#define EECONFIG_KEYMAP_NKRO (1<<7)
64 65
66#define EECONFIG_KEYMAP_LOWER_BYTE EECONFIG_KEYMAP
65 67
66bool eeconfig_is_enabled(void); 68bool eeconfig_is_enabled(void);
67bool eeconfig_is_disabled(void); 69bool eeconfig_is_disabled(void);
@@ -81,8 +83,8 @@ void eeconfig_update_debug(uint8_t val);
81uint8_t eeconfig_read_default_layer(void); 83uint8_t eeconfig_read_default_layer(void);
82void eeconfig_update_default_layer(uint8_t val); 84void eeconfig_update_default_layer(uint8_t val);
83 85
84uint8_t eeconfig_read_keymap(void); 86uint16_t eeconfig_read_keymap(void);
85void eeconfig_update_keymap(uint8_t val); 87void eeconfig_update_keymap(uint16_t val);
86 88
87#ifdef BACKLIGHT_ENABLE 89#ifdef BACKLIGHT_ENABLE
88uint8_t eeconfig_read_backlight(void); 90uint8_t eeconfig_read_backlight(void);