Keep unicode's input_mode through a power cycle

master
Zach Nielsen 2016-11-10 12:14:54 -08:00
parent f73a378f0f
commit 59bef40aab
2 changed files with 7 additions and 0 deletions

View File

@ -1,6 +1,7 @@
#include "process_unicode.h" #include "process_unicode.h"
static uint8_t input_mode; static uint8_t input_mode;
static uint8_t first_flag = 0;
__attribute__((weak)) __attribute__((weak))
uint16_t hex_to_keycode(uint8_t hex) uint16_t hex_to_keycode(uint8_t hex)
@ -17,6 +18,7 @@ uint16_t hex_to_keycode(uint8_t hex)
void set_unicode_input_mode(uint8_t os_target) void set_unicode_input_mode(uint8_t os_target)
{ {
input_mode = os_target; input_mode = os_target;
eeprom_update_byte(EECONFIG_UNICODEMODE, os_target);
} }
uint8_t get_unicode_input_mode(void) { uint8_t get_unicode_input_mode(void) {
@ -75,6 +77,10 @@ void register_hex(uint16_t hex) {
bool process_unicode(uint16_t keycode, keyrecord_t *record) { bool process_unicode(uint16_t keycode, keyrecord_t *record) {
if (keycode > QK_UNICODE && record->event.pressed) { if (keycode > QK_UNICODE && record->event.pressed) {
if (first_flag == 0) {
set_unicode_input_mode(eeprom_read_byte(EECONFIG_UNICODEMODE));
first_flag = 1;
}
uint16_t unicode = keycode & 0x7FFF; uint16_t unicode = keycode & 0x7FFF;
unicode_input_start(); unicode_input_start();
register_hex(unicode); register_hex(unicode);

View File

@ -33,6 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define EECONFIG_BACKLIGHT (uint8_t *)6 #define EECONFIG_BACKLIGHT (uint8_t *)6
#define EECONFIG_AUDIO (uint8_t *)7 #define EECONFIG_AUDIO (uint8_t *)7
#define EECONFIG_RGBLIGHT (uint32_t *)8 #define EECONFIG_RGBLIGHT (uint32_t *)8
#define EECONFIG_UNICODEMODE (uint8_t *)12
/* debug bit */ /* debug bit */