diff options
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/action.c | 8 | ||||
| -rw-r--r-- | tmk_core/common/action_code.h | 2 | ||||
| -rw-r--r-- | tmk_core/common/action_layer.c | 20 | ||||
| -rw-r--r-- | tmk_core/common/action_layer.h | 1 | ||||
| -rw-r--r-- | tmk_core/common/action_macro.c | 8 | ||||
| -rw-r--r-- | tmk_core/common/action_tapping.c | 11 | ||||
| -rw-r--r-- | tmk_core/common/avr/eeconfig.c | 32 | ||||
| -rw-r--r-- | tmk_core/common/avr/suspend.c | 13 | ||||
| -rw-r--r-- | tmk_core/common/backlight.c | 10 | ||||
| -rw-r--r-- | tmk_core/common/bootmagic.c | 6 | ||||
| -rw-r--r-- | tmk_core/common/command.c | 32 | ||||
| -rw-r--r-- | tmk_core/common/eeconfig.h | 14 | ||||
| -rw-r--r-- | tmk_core/common/keyboard.c | 8 | ||||
| -rw-r--r-- | tmk_core/common/keymap.c | 3 | ||||
| -rw-r--r-- | tmk_core/common/keymap.h | 3 | ||||
| -rw-r--r-- | tmk_core/common/magic.c | 36 | ||||
| -rw-r--r-- | tmk_core/common/magic.h | 6 | ||||
| -rw-r--r-- | tmk_core/common/print.h | 12 | 
18 files changed, 156 insertions, 69 deletions
| diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index f9e6c17dc..0162fbd63 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -27,11 +27,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "action_util.h"  #include "action.h" -#ifdef DEBUG_ACTION +//#ifdef DEBUG_ACTION  #include "debug.h" -#else -#include "nodebug.h" -#endif +//#else +//#include "nodebug.h" +//#endif  void action_exec(keyevent_t event) diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index 4fe9c1d58..2b0b0b077 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -301,7 +301,7 @@ enum backlight_opt {  #define ACTION_BACKLIGHT_DECREASE()     ACTION(ACT_BACKLIGHT, BACKLIGHT_DECREASE << 8)  #define ACTION_BACKLIGHT_TOGGLE()       ACTION(ACT_BACKLIGHT, BACKLIGHT_TOGGLE << 8)  #define ACTION_BACKLIGHT_STEP()         ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8) -#define ACTION_BACKLIGHT_LEVEL(level)   ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | level) +#define ACTION_BACKLIGHT_LEVEL(level)   ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level))  /* Command */  #define ACTION_COMMAND(id, opt)         ACTION(ACT_COMMAND,  (opt)<<8 | (addr))  /* Function */ diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index fc721a732..845fbbb21 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -4,14 +4,14 @@  #include "util.h"  #include "action_layer.h" -#ifdef DEBUG_ACTION +//#ifdef DEBUG_ACTION  #include "debug.h" -#else -#include "nodebug.h" -#endif +//#else +//#include "nodebug.h" +//#endif -/*  +/*   * Default Layer State   */  uint32_t default_layer_state = 0; @@ -52,7 +52,7 @@ void default_layer_xor(uint32_t state)  #ifndef NO_ACTION_LAYER -/*  +/*   * Keymap Layer State   */  uint32_t layer_state = 0; @@ -111,7 +111,7 @@ void layer_debug(void)  #endif  #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) -uint8_t source_layers_cache[MAX_LAYER_BITS][(MATRIX_ROWS * MATRIX_COLS + 7) / 8] = {0}; +uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {0};  void update_source_layers_cache(keypos_t key, uint8_t layer)  { @@ -120,9 +120,9 @@ void update_source_layers_cache(keypos_t key, uint8_t layer)      const uint8_t storage_bit = key_number % 8;      for (uint8_t bit_number = 0; bit_number < MAX_LAYER_BITS; bit_number++) { -        source_layers_cache[bit_number][storage_row] ^= +        source_layers_cache[storage_row][bit_number] ^=              (-((layer & (1U << bit_number)) != 0) -             ^ source_layers_cache[bit_number][storage_row]) +             ^ source_layers_cache[storage_row][bit_number])              & (1U << storage_bit);      }  } @@ -136,7 +136,7 @@ uint8_t read_source_layers_cache(keypos_t key)      for (uint8_t bit_number = 0; bit_number < MAX_LAYER_BITS; bit_number++) {          layer |= -            ((source_layers_cache[bit_number][storage_row] +            ((source_layers_cache[storage_row][bit_number]                & (1U << storage_bit)) != 0)              << bit_number;      } diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index 3a4b1e334..025cf5420 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h @@ -68,6 +68,7 @@ void layer_xor(uint32_t state);  #define layer_and(state)  #define layer_xor(state)  #define layer_debug() +  #endif  /* pressed actions cache */ diff --git a/tmk_core/common/action_macro.c b/tmk_core/common/action_macro.c index 7726b1190..cc78c8232 100644 --- a/tmk_core/common/action_macro.c +++ b/tmk_core/common/action_macro.c @@ -19,11 +19,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "action_macro.h"  #include "wait.h" -#ifdef DEBUG_ACTION +//#ifdef DEBUG_ACTION  #include "debug.h" -#else -#include "nodebug.h" -#endif +//#else +//#include "nodebug.h" +//#endif  #ifndef NO_ACTION_MACRO diff --git a/tmk_core/common/action_tapping.c b/tmk_core/common/action_tapping.c index 826c23309..6b6fa1dfe 100644 --- a/tmk_core/common/action_tapping.c +++ b/tmk_core/common/action_tapping.c @@ -6,11 +6,11 @@  #include "keycode.h"  #include "timer.h" -#ifdef DEBUG_ACTION +//#ifdef DEBUG_ACTION  #include "debug.h" -#else -#include "nodebug.h" -#endif +//#else +//#include "nodebug.h" +//#endif  #ifndef NO_ACTION_TAPPING @@ -139,7 +139,7 @@ bool process_tapping(keyrecord_t *keyp)                      if (event.pressed) {                          tapping_key.tap.interrupted = true;                      } -                    // enqueue  +                    // enqueue                      return false;                  }              } @@ -324,6 +324,7 @@ bool waiting_buffer_typed(keyevent_t event)      return false;  } +__attribute__((unused))  bool waiting_buffer_has_anykey_pressed(void)  {      for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 5bd47dc6a..c5391f5cf 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -5,24 +5,27 @@  void eeconfig_init(void)  { -    eeprom_write_word(EECONFIG_MAGIC,          EECONFIG_MAGIC_NUMBER); -    eeprom_write_byte(EECONFIG_DEBUG,          0); -    eeprom_write_byte(EECONFIG_DEFAULT_LAYER,  0); -    eeprom_write_byte(EECONFIG_KEYMAP,         0); -    eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); +    eeprom_update_word(EECONFIG_MAGIC,          EECONFIG_MAGIC_NUMBER); +    eeprom_update_byte(EECONFIG_DEBUG,          0); +    eeprom_update_byte(EECONFIG_DEFAULT_LAYER,  0); +    eeprom_update_byte(EECONFIG_KEYMAP,         0); +    eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0);  #ifdef BACKLIGHT_ENABLE -    eeprom_write_byte(EECONFIG_BACKLIGHT,      0); +    eeprom_update_byte(EECONFIG_BACKLIGHT,      0); +#endif +#ifdef AUDIO_ENABLE +    eeprom_update_byte(EECONFIG_AUDIO,      	   0xFF); // On by default  #endif  }  void eeconfig_enable(void)  { -    eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); +    eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);  }  void eeconfig_disable(void)  { -    eeprom_write_word(EECONFIG_MAGIC, 0xFFFF); +    eeprom_update_word(EECONFIG_MAGIC, 0xFFFF);  }  bool eeconfig_is_enabled(void) @@ -31,15 +34,20 @@ bool eeconfig_is_enabled(void)  }  uint8_t eeconfig_read_debug(void)      { return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); } +void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); }  uint8_t eeconfig_read_default_layer(void)      { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } -void eeconfig_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); } +void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); }  uint8_t eeconfig_read_keymap(void)      { return eeprom_read_byte(EECONFIG_KEYMAP); } -void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); } +void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); }  #ifdef BACKLIGHT_ENABLE  uint8_t eeconfig_read_backlight(void)      { return eeprom_read_byte(EECONFIG_BACKLIGHT); } -void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } +void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } +#endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void)      { return eeprom_read_byte(EECONFIG_AUDIO); } +void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); }  #endif diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index c07c2801d..498068019 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -9,10 +9,16 @@  #include "suspend.h"  #include "timer.h"  #include "led.h" +  #ifdef PROTOCOL_LUFA -#include "lufa.h" +	#include "lufa.h"  #endif +#ifdef AUDIO_ENABLE +    #include "audio.h" +#endif /* AUDIO_ENABLE */ + +  #define wdt_intr_enable(value)   \  __asm__ __volatile__ (  \ @@ -72,6 +78,11 @@ static void power_down(uint8_t wdto)  	// Turn off LED indicators  	led_set(0); +	#ifdef AUDIO_ENABLE +        // This sometimes disables the start-up noise, so it's been disabled +		// stop_all_notes(); +	#endif /* AUDIO_ENABLE */ +      // TODO: more power saving      // See PicoPower application note      // - I/O port input with pullup diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 558ad9b01..2f6fc1cd6 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -37,7 +37,7 @@ void backlight_increase(void)      {          backlight_config.level++;          backlight_config.enable = 1; -        eeconfig_write_backlight(backlight_config.raw); +        eeconfig_update_backlight(backlight_config.raw);      }      dprintf("backlight increase: %u\n", backlight_config.level);      backlight_set(backlight_config.level); @@ -49,7 +49,7 @@ void backlight_decrease(void)      {          backlight_config.level--;          backlight_config.enable = !!backlight_config.level; -        eeconfig_write_backlight(backlight_config.raw); +        eeconfig_update_backlight(backlight_config.raw);      }      dprintf("backlight decrease: %u\n", backlight_config.level);      backlight_set(backlight_config.level); @@ -58,7 +58,7 @@ void backlight_decrease(void)  void backlight_toggle(void)  {      backlight_config.enable ^= 1; -    eeconfig_write_backlight(backlight_config.raw); +    eeconfig_update_backlight(backlight_config.raw);      dprintf("backlight toggle: %u\n", backlight_config.enable);      backlight_set(backlight_config.enable ? backlight_config.level : 0);  } @@ -71,7 +71,7 @@ void backlight_step(void)          backlight_config.level = 0;      }      backlight_config.enable = !!backlight_config.level; -    eeconfig_write_backlight(backlight_config.raw); +    eeconfig_update_backlight(backlight_config.raw);      dprintf("backlight step: %u\n", backlight_config.level);      backlight_set(backlight_config.level);  } @@ -80,6 +80,6 @@ void backlight_level(uint8_t level)  {      backlight_config.level ^= level;      backlight_config.enable = !!backlight_config.level; -    eeconfig_write_backlight(backlight_config.raw); +    eeconfig_update_backlight(backlight_config.raw);      backlight_set(backlight_config.level);  } diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index b002a5856..2c1b1adfc 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c @@ -52,7 +52,7 @@ void bootmagic(void)              debug_config.enable = !debug_config.enable;          }      } -    eeconfig_write_debug(debug_config.raw); +    eeconfig_update_debug(debug_config.raw);      /* keymap config */      keymap_config.raw = eeconfig_read_keymap(); @@ -80,7 +80,7 @@ void bootmagic(void)      if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) {          keymap_config.nkro = !keymap_config.nkro;      } -    eeconfig_write_keymap(keymap_config.raw); +    eeconfig_update_keymap(keymap_config.raw);  #ifdef NKRO_ENABLE      keyboard_nkro = keymap_config.nkro; @@ -97,7 +97,7 @@ void bootmagic(void)      if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_6)) { default_layer |= (1<<6); }      if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_7)) { default_layer |= (1<<7); }      if (default_layer) { -        eeconfig_write_default_layer(default_layer); +        eeconfig_update_default_layer(default_layer);          default_layer_set((uint32_t)default_layer);      } else {          default_layer = eeconfig_read_default_layer(); diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index b4cd3ca56..f06abaf7f 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -49,6 +49,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #   include "usbdrv.h"  #endif +#ifdef AUDIO_ENABLE +    #include "audio.h" +#endif /* AUDIO_ENABLE */ +  static bool command_common(uint8_t code);  static void command_common_help(void); @@ -122,7 +126,7 @@ static void command_common_help(void)  		STR(MAGIC_KEY_VERSION     ) ":	Version\n"  		STR(MAGIC_KEY_STATUS      ) ":	Status\n"  		STR(MAGIC_KEY_CONSOLE     ) ":	Activate Console Mode\n" -		 +  #if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM  		STR(MAGIC_KEY_LAYER0      ) ":	Switch to Layer 0\n"  		STR(MAGIC_KEY_LAYER1      ) ":	Switch to Layer 1\n" @@ -136,11 +140,11 @@ static void command_common_help(void)  		STR(MAGIC_KEY_LAYER9      ) ":	Switch to Layer 9\n"  #endif -#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS							 +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  		                            "F1-F10:	Switch to Layer 0-9 (F10 = L0)\n"  #endif -#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS							 +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  		                            "0-9:	Switch to Layer 0-9\n"  #endif @@ -251,6 +255,7 @@ static void print_status(void)  #ifdef BOOTMAGIC_ENABLE  static void print_eeconfig(void)  { +#ifndef NO_PRINT      print("default_layer: "); print_dec(eeconfig_read_default_layer()); print("\n");      debug_config_t dc; @@ -279,9 +284,12 @@ static void print_eeconfig(void)      print("backlight_config.raw: "); print_hex8(bc.raw); print("\n");      print(".enable: "); print_dec(bc.enable); print("\n");      print(".level: "); print_dec(bc.level); print("\n"); -#endif +#endif /* BACKLIGHT_ENABLE */ + +#endif /* !NO_PRINT */ +  } -#endif +#endif /* BOOTMAGIC_ENABLE */  static bool command_common(uint8_t code)  { @@ -305,7 +313,7 @@ static bool command_common(uint8_t code)  #ifdef BOOTMAGIC_ENABLE  		// print stored eeprom config -        case MAGIC_KC(MAGIC_KEY_EEPROM):         +        case MAGIC_KC(MAGIC_KEY_EEPROM):              print("eeconfig:\n");              print_eeconfig();              break; @@ -348,6 +356,9 @@ static bool command_common(uint8_t code)          case MAGIC_KC(MAGIC_KEY_BOOTLOADER):              clear_keyboard(); // clear to prevent stuck keys              print("\n\nJumping to bootloader... "); +            #ifdef AUDIO_ENABLE +                play_goodbye_tone(); +            #endif              _delay_ms(1000);              bootloader_jump(); // not return              break; @@ -369,7 +380,7 @@ static bool command_common(uint8_t code)              break;          // debug matrix toggle -        case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX):  +        case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX):              debug_matrix = !debug_matrix;              if (debug_matrix) {                  print("\nmatrix: on\n"); @@ -380,7 +391,7 @@ static bool command_common(uint8_t code)              break;          // debug keyboard toggle -        case MAGIC_KC(MAGIC_KEY_DEBUG_KBD):  +        case MAGIC_KC(MAGIC_KEY_DEBUG_KBD):              debug_keyboard = !debug_keyboard;              if (debug_keyboard) {                  print("\nkeyboard: on\n"); @@ -551,6 +562,7 @@ static uint8_t mousekey_param = 0;  static void mousekey_param_print(void)  { +#ifndef NO_PRINT      print("\n\t- Values -\n");      print("1: delay(*10ms): "); pdec(mk_delay); print("\n");      print("2: interval(ms): "); pdec(mk_interval); print("\n"); @@ -558,6 +570,8 @@ static void mousekey_param_print(void)      print("4: time_to_max: "); pdec(mk_time_to_max); print("\n");      print("5: wheel_max_speed: "); pdec(mk_wheel_max_speed); print("\n");      print("6: wheel_time_to_max: "); pdec(mk_wheel_time_to_max); print("\n"); +#endif /* !NO_PRINT */ +  }  //#define PRINT_SET_VAL(v)  print(#v " = "); print_dec(v); print("\n"); @@ -677,7 +691,7 @@ static void mousekey_console_help(void)            "pgdown:	-10\n"            "\n"            "speed = delta * max_speed * (repeat / time_to_max)\n"); -    xprintf("where delta: cursor=%d, wheel=%d\n"  +    xprintf("where delta: cursor=%d, wheel=%d\n"              "See http://en.wikipedia.org/wiki/Mouse_keys\n", MOUSEKEY_MOVE_DELTA,  MOUSEKEY_WHEEL_DELTA);  } diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 3cd1a174f..ca47e0d2f 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -31,6 +31,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define EECONFIG_KEYMAP                             (uint8_t *)4  #define EECONFIG_MOUSEKEY_ACCEL                     (uint8_t *)5  #define EECONFIG_BACKLIGHT                          (uint8_t *)6 +#define EECONFIG_AUDIO                              (uint8_t *)7  /* debug bit */ @@ -59,17 +60,22 @@ void eeconfig_enable(void);  void eeconfig_disable(void);  uint8_t eeconfig_read_debug(void); -void eeconfig_write_debug(uint8_t val); +void eeconfig_update_debug(uint8_t val);  uint8_t eeconfig_read_default_layer(void); -void eeconfig_write_default_layer(uint8_t val); +void eeconfig_update_default_layer(uint8_t val);  uint8_t eeconfig_read_keymap(void); -void eeconfig_write_keymap(uint8_t val); +void eeconfig_update_keymap(uint8_t val);  #ifdef BACKLIGHT_ENABLE  uint8_t eeconfig_read_backlight(void); -void eeconfig_write_backlight(uint8_t val); +void eeconfig_update_backlight(uint8_t val); +#endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void); +void eeconfig_update_audio(uint8_t val);  #endif  #endif diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 302b3ec87..1d9981848 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -27,7 +27,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "command.h"  #include "util.h"  #include "sendchar.h" -#include "bootmagic.h" +#ifdef BOOTMAGIC_ENABLE +    #include "bootmagic.h" +#else +    #include "magic.h" +#endif  #include "eeconfig.h"  #include "backlight.h"  #ifdef MOUSEKEY_ENABLE @@ -86,6 +90,8 @@ void keyboard_init(void)  #ifdef BOOTMAGIC_ENABLE      bootmagic(); +#else +    magic();  #endif  #ifdef BACKLIGHT_ENABLE diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 11f4aa8aa..8955fc710 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -22,7 +22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "action_macro.h"  #include "wait.h"  #include "debug.h" - +#include "bootloader.h"  static action_t keycode_to_action(uint8_t keycode); @@ -143,6 +143,7 @@ static action_t keycode_to_action(uint8_t keycode)              action.code = ACTION_TRANSPARENT;              break;          case KC_BOOTLOADER: +        	action.code = ACTION_NO;              clear_keyboard();              wait_ms(50);              bootloader_jump(); // not return diff --git a/tmk_core/common/keymap.h b/tmk_core/common/keymap.h index e1a6f992e..abc9bdb32 100644 --- a/tmk_core/common/keymap.h +++ b/tmk_core/common/keymap.h @@ -22,8 +22,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include <stdbool.h>  #include "action.h" - -#ifdef BOOTMAGIC_ENABLE  /* NOTE: Not portable. Bit field order depends on implementation */  typedef union {      uint8_t raw; @@ -39,7 +37,6 @@ typedef union {      };  } keymap_config_t;  keymap_config_t keymap_config; -#endif  /* translates key to keycode */ diff --git a/tmk_core/common/magic.c b/tmk_core/common/magic.c new file mode 100644 index 000000000..f21d1346c --- /dev/null +++ b/tmk_core/common/magic.c @@ -0,0 +1,36 @@ +#include <stdint.h> +#include <stdbool.h> +#include <util/delay.h> +#include "matrix.h" +#include "bootloader.h" +#include "debug.h" +#include "keymap.h" +#include "host.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "magic.h" + +keymap_config_t keymap_config; + +void magic(void) +{ +    /* check signature */ +    if (!eeconfig_is_enabled()) { +        eeconfig_init(); +    } + +    /* debug enable */ +    debug_config.raw = eeconfig_read_debug(); + +    /* keymap config */ +    keymap_config.raw = eeconfig_read_keymap(); + +#ifdef NKRO_ENABLE +    keyboard_nkro = keymap_config.nkro; +#endif + +    uint8_t default_layer = 0; +    default_layer = eeconfig_read_default_layer(); +    default_layer_set((uint32_t)default_layer); + +}
\ No newline at end of file diff --git a/tmk_core/common/magic.h b/tmk_core/common/magic.h new file mode 100644 index 000000000..3fa2d8b81 --- /dev/null +++ b/tmk_core/common/magic.h @@ -0,0 +1,6 @@ +#ifndef MAGIC_H +#define MAGIC_H + +void magic(void); + +#endif diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index c0e9e1430..4f3dde65a 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -2,17 +2,17 @@  /* Very basic print functions, intended to be used with usb_debug_only.c   * http://www.pjrc.com/teensy/   * Copyright (c) 2008 PJRC.COM, LLC - *  + *   * Permission is hereby granted, free of charge, to any person obtaining a copy   * of this software and associated documentation files (the "Software"), to deal   * in the Software without restriction, including without limitation the rights   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell   * copies of the Software, and to permit persons to whom the Software is   * furnished to do so, subject to the following conditions: - *  + *   * The above copyright notice and this permission notice shall be included in   * all copies or substantial portions of the Software. - *  + *   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -91,9 +91,9 @@ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));  #else   /* NO_PRINT */ -#define xprintf -#define print -#define println +#define xprintf(fmt, ...) +#define print(s) +#define println(s)  #define print_set_sendchar(func)  #define print_dec(data)  #define print_decs(data) | 
