Merge branch 'master' into dev
This commit is contained in:
		
						commit
						857600aa4b
					
				
					 42 changed files with 115 additions and 72 deletions
				
			
		
							
								
								
									
										21
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -21,6 +21,8 @@ override SILENT := false
 | 
			
		|||
 | 
			
		||||
ON_ERROR := error_occurred=1
 | 
			
		||||
 | 
			
		||||
BREAK_ON_ERRORS = no
 | 
			
		||||
 | 
			
		||||
STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST))
 | 
			
		||||
ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST))
 | 
			
		||||
ROOT_DIR := $(dir $(ROOT_MAKEFILE))
 | 
			
		||||
| 
						 | 
				
			
			@ -462,20 +464,25 @@ endef
 | 
			
		|||
 | 
			
		||||
include $(ROOT_DIR)/message.mk
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(BREAK_ON_ERRORS)), yes)
 | 
			
		||||
HANDLE_ERROR = exit 1
 | 
			
		||||
else
 | 
			
		||||
HANDLE_ERROR = echo $$error_occurred > $(ERROR_FILE)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# The empty line is important here, as it will force a new shell to be created for each command
 | 
			
		||||
# Otherwise the command line will become too long with a lot of keyboards and keymaps
 | 
			
		||||
define RUN_COMMAND
 | 
			
		||||
+error_occurred=0;\
 | 
			
		||||
$(COMMAND_$(SILENT_MODE)_$(COMMAND))\
 | 
			
		||||
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
 | 
			
		||||
if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
endef
 | 
			
		||||
define RUN_TEST
 | 
			
		||||
+error_occurred=0;\
 | 
			
		||||
$($(TEST)_COMMAND)\
 | 
			
		||||
if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi;
 | 
			
		||||
 | 
			
		||||
if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi;
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
# Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps
 | 
			
		||||
| 
						 | 
				
			
			@ -527,14 +534,22 @@ test: test-all
 | 
			
		|||
.PHONY: test-clean
 | 
			
		||||
test-clean: test-all-clean
 | 
			
		||||
 | 
			
		||||
ifdef SKIP_VERSION
 | 
			
		||||
SKIP_GIT := yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Generate the version.h file
 | 
			
		||||
ifndef SKIP_GIT
 | 
			
		||||
    GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
 | 
			
		||||
else
 | 
			
		||||
    GIT_VERSION := NA
 | 
			
		||||
endif
 | 
			
		||||
ifndef SKIP_VERSION
 | 
			
		||||
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
 | 
			
		||||
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
 | 
			
		||||
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
 | 
			
		||||
else
 | 
			
		||||
BUILD_DATE := NA
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
include $(ROOT_DIR)/testlist.mk
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -176,22 +176,26 @@ endif
 | 
			
		|||
 | 
			
		||||
ifeq ($(strip $(UCIS_ENABLE)), yes)
 | 
			
		||||
    OPT_DEFS += -DUCIS_ENABLE
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
 | 
			
		||||
    UNICODE_COMMON = yes
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
 | 
			
		||||
    OPT_DEFS += -DUNICODEMAP_ENABLE
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
 | 
			
		||||
    UNICODE_COMMON = yes
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(UNICODE_ENABLE)), yes)
 | 
			
		||||
    OPT_DEFS += -DUNICODE_ENABLE
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
 | 
			
		||||
    UNICODE_COMMON = yes
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(UNICODE_COMMON)), yes)
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
 | 
			
		||||
    OPT_DEFS += -DRGBLIGHT_ENABLE
 | 
			
		||||
    SRC += $(QUANTUM_DIR)/light_ws2812.c
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#include "print.h"
 | 
			
		||||
#include "debug.h"
 | 
			
		||||
#include "matrix.h"
 | 
			
		||||
#include "serial_link/system/serial_link.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -311,12 +311,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
        break;        
 | 
			
		||||
        case SWITCH_NDS:
 | 
			
		||||
             if (record->event.pressed) {
 | 
			
		||||
                return MACRO( D(LSFT), T(F11), U(LSFT), W(500), D(LALT), T(TAB), U(LALT), END); 
 | 
			
		||||
                return MACRO( D(LSFT), T(F11), U(LSFT), W(255), D(LALT), T(TAB), U(LALT), END);
 | 
			
		||||
            }                                
 | 
			
		||||
        break;        
 | 
			
		||||
        case OPEN_CLOSE_PAREN:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                return MACRO( D(LSFT), T(LPRN), T(RPRN), U(LSFT), T(LEFT), END);
 | 
			
		||||
                return MACRO( D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END);
 | 
			
		||||
            }
 | 
			
		||||
        break;
 | 
			
		||||
        case OPEN_CLOSE_BRACKET:
 | 
			
		||||
| 
						 | 
				
			
			@ -326,7 +326,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
        break;        
 | 
			
		||||
        case OPEN_CLOSE_CURLY:
 | 
			
		||||
            if (record->event.pressed) {
 | 
			
		||||
                return MACRO( D(LSFT), T(LCBR), T(RCBR), U(LSFT), T(LEFT), END);
 | 
			
		||||
                return MACRO( D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END);
 | 
			
		||||
            }
 | 
			
		||||
        break;                
 | 
			
		||||
        case OPEN_CLOSE_SINGLE_QUOTE:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -392,7 +392,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
 | 
			
		||||
        case NotEq:
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
            return MACRO( I(10), D(LSFT), T(EXLM), U(LSFT), T(EQL), END  ); // !=
 | 
			
		||||
            return MACRO( I(10), D(LSFT), T(1), U(LSFT), T(EQL), END  ); // !=
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
#include "yoruian.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
[0] = KEYMAP\
 | 
			
		||||
[0] = KEYMAP_YORUIAN\
 | 
			
		||||
(9,  7,    5,    3,    1,    GRV,  MINS, EQL,  LBRC, 0,    2,    4,    6,    8,
 | 
			
		||||
 ES, RBRC, Y,    O,    R,    BSLS, P3,   P3,   J,    V,    D,    F,    W,    Q,
 | 
			
		||||
 LC, U,    I,    A,    N,    SCLN,             M,    H,    T,    S,    C,    RC,
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
                             BSPC, RALT, P2,   TAB,
 | 
			
		||||
                                   NO,   NO,
 | 
			
		||||
                       E,    LSFT, NO,   NO,   ENT,  SPC),
 | 
			
		||||
[1] = KEYMAP\
 | 
			
		||||
[1] = KEYMAP_YORUIAN\
 | 
			
		||||
(TR, TR,   TR,   TR,   TR,   TR,   TR,   TR,   TR,   F5,   F6,   F7,   F8,   F9,
 | 
			
		||||
 TR, TR,   TR,   TR,   TR,   TR,   TR,   TR,   TR,   F1,   F2,   F3,   F4,   FT,
 | 
			
		||||
 TR, TR,   TR,   TR,   TR,   TR,               PAUS, LEFT, DOWN, UP,   RGHT, FE,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,9 +18,7 @@
 | 
			
		|||
#include "debug.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
 | 
			
		||||
#undef KEYMAP
 | 
			
		||||
#define KEYMAP\
 | 
			
		||||
(									\
 | 
			
		||||
#define KEYMAP_YORUIAN(									\
 | 
			
		||||
 /* Spacial positions. */						\
 | 
			
		||||
 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,	\
 | 
			
		||||
 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D,	\
 | 
			
		||||
| 
						 | 
				
			
			@ -30,24 +28,15 @@
 | 
			
		|||
                          k55, k56, k57, k58,                           \
 | 
			
		||||
                               k54, k59,                                \
 | 
			
		||||
                     k53, k52, k51, k5C, k5B, k5A)                      \
 | 
			
		||||
									\
 | 
			
		||||
 /* Matrix positions. */						\
 | 
			
		||||
 {									\
 | 
			
		||||
   { KC_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO    },	\
 | 
			
		||||
   { KC_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 },      \
 | 
			
		||||
   { KC_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 },      \
 | 
			
		||||
   { KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 },      \
 | 
			
		||||
   { KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 },      \
 | 
			
		||||
   { KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO,    KC_##k55 },      \
 | 
			
		||||
   { KC_##k06, KC_##k16, KC_NO,    KC_##k36, KC_NO,    KC_##k56 },      \
 | 
			
		||||
   { KC_##k07, KC_##k17, KC_NO,    KC_##k37, KC_NO,    KC_##k57 },      \
 | 
			
		||||
   { KC_##k08, KC_##k18, KC_##k28, KC_##k38, KC_NO,    KC_##k58 },      \
 | 
			
		||||
   { KC_##k09, KC_##k19, KC_##k29, KC_##k39, KC_##k49, KC_##k59 },      \
 | 
			
		||||
   { KC_##k0A, KC_##k1A, KC_##k2A, KC_##k3A, KC_##k4A, KC_##k5A },      \
 | 
			
		||||
   { KC_##k0B, KC_##k1B, KC_##k2B, KC_##k3B, KC_##k4B, KC_##k5B },      \
 | 
			
		||||
   { KC_##k0C, KC_##k1C, KC_##k2C, KC_##k3C, KC_##k4C, KC_##k5C },      \
 | 
			
		||||
   { KC_##k0D, KC_##k1D, KC_##k2D, KC_##k3D, KC_##k4D, KC_NO    }       \
 | 
			
		||||
 }
 | 
			
		||||
 KEYMAP( \
 | 
			
		||||
 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D,	\
 | 
			
		||||
 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D,	\
 | 
			
		||||
 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25,           KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D,	\
 | 
			
		||||
 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D,	\
 | 
			
		||||
 KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44,                     KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D,	\
 | 
			
		||||
                          KC_##k55, KC_##k56, KC_##k57, KC_##k58,                           \
 | 
			
		||||
                               KC_##k54, KC_##k59,                                \
 | 
			
		||||
                     KC_##k53, KC_##k52, KC_##k51, KC_##k5C, KC_##k5B, KC_##k5A)
 | 
			
		||||
 | 
			
		||||
#define KC_ES  KC_ESC
 | 
			
		||||
#define KC_LC  KC_LCTL
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,6 +115,7 @@ inline matrix_row_t matrix_get_row(uint8_t row) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void matrix_print(void) {
 | 
			
		||||
#ifndef NO_PRINT
 | 
			
		||||
    print("\nr\\c ABCDEFGHIJKLMNOPQR\n");
 | 
			
		||||
    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
 | 
			
		||||
        matrix_row_t matrix_row = matrix_get_row(row);
 | 
			
		||||
| 
						 | 
				
			
			@ -125,6 +126,7 @@ void matrix_print(void) {
 | 
			
		|||
        }
 | 
			
		||||
        print("\n");
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint8_t matrix_key_count(void) {
 | 
			
		||||
| 
						 | 
				
			
			@ -132,4 +134,4 @@ uint8_t matrix_key_count(void) {
 | 
			
		|||
    for (uint8_t row = 0; row < MATRIX_ROWS; row++)
 | 
			
		||||
        count += bitpop32(matrix[row]);
 | 
			
		||||
    return count;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +0,0 @@
 | 
			
		|||
#include "MS-sculpt-mobile.h"
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
#include "MS_sculpt_mobile.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -7,7 +7,8 @@ Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
 | 
			
		|||
and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c 
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include "babblePaste.h"
 | 
			
		||||
#include "../MS_sculpt_mobile/babblePaste.h"
 | 
			
		||||
 | 
			
		||||
#include "action_macro.h"
 | 
			
		||||
 | 
			
		||||
#ifdef USE_BABLPASTE
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +28,7 @@ macro_t* switch_babble_mode( uint8_t id) {
 | 
			
		|||
// And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15
 | 
			
		||||
#define BABLM(ent, macro...) \
 | 
			
		||||
	if ( ent == shortcut ) \
 | 
			
		||||
		 {  action_macro_play( MACRO(macro)); return MACRO_NONE; }   
 | 
			
		||||
		 {  action_macro_play( MACRO(macro)); return MACRO_NONE; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* this function runs the appropriate babblepaste macro, given
 | 
			
		||||
| 
						 | 
				
			
			@ -456,4 +457,4 @@ const  macro_t *babblePaste (keyrecord_t *record,  uint8_t shortcut) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -9,9 +9,9 @@ and jeebak & algernon's keymap
 | 
			
		|||
*/
 | 
			
		||||
#ifndef _babblePaste_h_included__
 | 
			
		||||
#define _babblePaste_h_included__
 | 
			
		||||
#include "../MS_sculpt_mobile/config.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "quantum_keycodes.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#ifdef USE_BABLPASTE
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
#include "../../../MS_sculpt_mobile/config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#include "MS-sculpt-mobile.h"
 | 
			
		||||
#include "../../MS_sculpt_mobile.h"
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/* 
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
#include "../../../MS_sculpt_mobile/config.h"
 | 
			
		||||
 | 
			
		||||
#define USE_BABLPASTE
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
#include "MS-sculpt-mobile.h"
 | 
			
		||||
#include "../../../MS_sculpt_mobile/babblePaste.h"
 | 
			
		||||
#include "../../MS_sculpt_mobile.h"
 | 
			
		||||
#include "action_layer.h"
 | 
			
		||||
#include "action_util.h"
 | 
			
		||||
#include "babblePaste.h"
 | 
			
		||||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
  #include "audio.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
#undef MOUSEKEY_WHEEL_MAX_SPEED
 | 
			
		||||
#define MOUSEKEY_WHEEL_MAX_SPEED 3
 | 
			
		||||
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
 | 
			
		||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 1000
 | 
			
		||||
#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
 | 
			
		||||
#undef ONESHOT_TIMEOUT
 | 
			
		||||
#define ONESHOT_TIMEOUT 500
 | 
			
		||||
#undef TAPPING_TOGGLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
         _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS),        _______,           _______,          _______,_______,_______,_______, \
 | 
			
		||||
         _______,_______,_______,                        _______,                        _______,_______,_______,_______,   _______,_______,_______,  _______,_______),
 | 
			
		||||
    /* Layer 3: media layer */
 | 
			
		||||
  [MEDIA] = KEYMAP(\ 
 | 
			
		||||
  [MEDIA] = KEYMAP(\
 | 
			
		||||
          KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,           XXXXXXX,XXXXXXX,XXXXXXX,                                   \
 | 
			
		||||
         XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,   KC_MPRV,KC_MPLY,KC_MNXT,  XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
 | 
			
		||||
         XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,   KC_VOLD,KC_MUTE,KC_VOLU,  XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -153,12 +153,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
			
		|||
    case 1: // M(1)
 | 
			
		||||
        if (record->event.pressed) {
 | 
			
		||||
            unregister_code(KC_LSFT);
 | 
			
		||||
            register_code(DE_MORE);
 | 
			
		||||
            register_code(DE_LESS);
 | 
			
		||||
        } else {
 | 
			
		||||
            unregister_code(DE_MORE);
 | 
			
		||||
            unregister_code(DE_LESS);
 | 
			
		||||
        }
 | 
			
		||||
        break;    
 | 
			
		||||
  }
 | 
			
		||||
  return MACRO_NONE;
 | 
			
		||||
 | 
			
		||||
};          
 | 
			
		||||
};          
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,10 +212,10 @@ const uint16_t PROGMEM fn_actions[] = {
 | 
			
		|||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
float start_up[][2] = {
 | 
			
		||||
  {440.0*pow(2.0,(14)/12.0), 20},
 | 
			
		||||
  {440.0*pow(2.0,(26)/12.0), 8},
 | 
			
		||||
  {440.0*pow(2.0,(18)/12.0), 20},
 | 
			
		||||
  {440.0*pow(2.0,(26)/12.0), 8}
 | 
			
		||||
   MUSICAL_NOTE(_B5, 20),
 | 
			
		||||
   MUSICAL_NOTE(_B6, 8),
 | 
			
		||||
   MUSICAL_NOTE(_DS6, 20),
 | 
			
		||||
   MUSICAL_NOTE(_B6, 8),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
 | 
			
		||||
| 
						 | 
				
			
			@ -323,7 +323,7 @@ void matrix_init_user(void) {
 | 
			
		|||
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
 | 
			
		||||
void play_goodbye_tone()
 | 
			
		||||
void play_goodbye_tone(void)
 | 
			
		||||
{
 | 
			
		||||
  PLAY_NOTE_ARRAY(goodbye, false, 0);
 | 
			
		||||
  _delay_ms(150);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,5 +179,12 @@ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
 | 
			
		|||
__attribute__ ((weak))
 | 
			
		||||
uint16_t keymap_function_id_to_action( uint16_t function_id )
 | 
			
		||||
{
 | 
			
		||||
    // The compiler sees the empty (weak) fn_actions and generates a warning
 | 
			
		||||
    // This function should not be called in that case, so the warning is too strict
 | 
			
		||||
    // If this function is called however, the keymap should have overridden fn_actions, and then the compile
 | 
			
		||||
    // is comparing against the wrong array
 | 
			
		||||
    #pragma GCC diagnostic push
 | 
			
		||||
    #pragma GCC diagnostic ignored "-Warray-bounds"
 | 
			
		||||
	return pgm_read_word(&fn_actions[function_id]);
 | 
			
		||||
    #pragma GCC diagnostic pop
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,6 +33,10 @@
 | 
			
		|||
#define CH_E KC_E
 | 
			
		||||
#define CH_F KC_F
 | 
			
		||||
#define CH_G KC_G
 | 
			
		||||
#ifdef CH_H
 | 
			
		||||
// The ChibiOS ch.h file defines this...
 | 
			
		||||
#undef CH_H
 | 
			
		||||
#endif
 | 
			
		||||
#define CH_H KC_H
 | 
			
		||||
#define CH_I KC_I
 | 
			
		||||
#define CH_J KC_J
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,12 +20,12 @@
 | 
			
		|||
bool printing_enabled = false;
 | 
			
		||||
uint8_t character_shift = 0;
 | 
			
		||||
 | 
			
		||||
void enabled_printing() {
 | 
			
		||||
void enable_printing(void) {
 | 
			
		||||
	printing_enabled = true;
 | 
			
		||||
	serial_init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void disable_printing() {
 | 
			
		||||
void disable_printing(void) {
 | 
			
		||||
	printing_enabled = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -41,9 +41,14 @@ void print_char(char c) {
 | 
			
		|||
	USB_Init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void print_box_string(uint8_t text[]) {
 | 
			
		||||
	uint8_t len = strlen(text);
 | 
			
		||||
	uint8_t out[len * 3 + 8];
 | 
			
		||||
void print_string(char c[]) {
 | 
			
		||||
	for(uint8_t i = 0; i < strlen(c); i++)
 | 
			
		||||
		print_char(c[i]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void print_box_string(const char text[]) {
 | 
			
		||||
	size_t len = strlen(text);
 | 
			
		||||
	char out[len * 3 + 8];
 | 
			
		||||
	out[0] = 0xDA;
 | 
			
		||||
	for (uint8_t i = 0; i < len; i++) {
 | 
			
		||||
		out[i+1] = 0xC4;
 | 
			
		||||
| 
						 | 
				
			
			@ -69,14 +74,9 @@ void print_box_string(uint8_t text[]) {
 | 
			
		|||
	print_string(out); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void print_string(char c[]) {
 | 
			
		||||
	for(uint8_t i = 0; i < strlen(c); i++)
 | 
			
		||||
		print_char(c[i]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool process_printer(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	if (keycode == PRINT_ON) {
 | 
			
		||||
		enabled_printing();
 | 
			
		||||
		enable_printing();
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	if (keycode == PRINT_OFF) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,4 +21,6 @@
 | 
			
		|||
 | 
			
		||||
#include "protocol/serial.h"
 | 
			
		||||
 | 
			
		||||
bool process_printer(uint16_t keycode, keyrecord_t *record);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,7 +46,7 @@ void serial_output(void) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void enabled_printing() {
 | 
			
		||||
void enable_printing() {
 | 
			
		||||
	printing_enabled = true;
 | 
			
		||||
	serial_output();
 | 
			
		||||
	serial_high();
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +82,7 @@ void print_string(char c[]) {
 | 
			
		|||
 | 
			
		||||
bool process_printer(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
	if (keycode == PRINT_ON) {
 | 
			
		||||
		enabled_printing();
 | 
			
		||||
		enable_printing();
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
	if (keycode == PRINT_OFF) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@
 | 
			
		|||
 */
 | 
			
		||||
#include "process_unicode.h"
 | 
			
		||||
#include "action_util.h"
 | 
			
		||||
#include "eeprom.h"
 | 
			
		||||
 | 
			
		||||
static uint8_t first_flag = 0;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,6 +15,7 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
#include "process_unicode_common.h"
 | 
			
		||||
#include "eeprom.h"
 | 
			
		||||
 | 
			
		||||
static uint8_t input_mode;
 | 
			
		||||
uint8_t mods;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,8 +125,8 @@ static void get_led_state_string(char* output, visualizer_state_t* state) {
 | 
			
		|||
       pos += 5;
 | 
			
		||||
    }
 | 
			
		||||
    if (state->status.leds & (1u << USB_LED_KANA)) {
 | 
			
		||||
       memcpy(output + pos, "KANA ", 5);
 | 
			
		||||
       pos += 5;
 | 
			
		||||
       memcpy(output + pos, "KANA", 4);
 | 
			
		||||
       pos += 4;
 | 
			
		||||
    }
 | 
			
		||||
    output[pos] = 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,7 +140,6 @@ void process_record(keyrecord_t *record)
 | 
			
		|||
 | 
			
		||||
void process_action(keyrecord_t *record, action_t action)
 | 
			
		||||
{
 | 
			
		||||
    bool do_release_oneshot = false;
 | 
			
		||||
    keyevent_t event = record->event;
 | 
			
		||||
#ifndef NO_ACTION_TAPPING
 | 
			
		||||
    uint8_t tap_count = record->tap.count;
 | 
			
		||||
| 
						 | 
				
			
			@ -152,6 +151,7 @@ void process_action(keyrecord_t *record, action_t action)
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
#ifndef NO_ACTION_ONESHOT
 | 
			
		||||
    bool do_release_oneshot = false;
 | 
			
		||||
    // notice we only clear the one shot layer if the pressed key is not a modifier.
 | 
			
		||||
    if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) {
 | 
			
		||||
        clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,7 @@
 | 
			
		|||
#include "suspend.h"
 | 
			
		||||
#include "timer.h"
 | 
			
		||||
#include "led.h"
 | 
			
		||||
#include "host.h"
 | 
			
		||||
 | 
			
		||||
#ifdef PROTOCOL_LUFA
 | 
			
		||||
	#include "lufa.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,8 +23,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
/* max value on report descriptor */
 | 
			
		||||
#define MOUSEKEY_MOVE_MAX       127
 | 
			
		||||
#define MOUSEKEY_WHEEL_MAX      127
 | 
			
		||||
#ifndef MOUSEKEY_MOVE_MAX
 | 
			
		||||
    #define MOUSEKEY_MOVE_MAX       127
 | 
			
		||||
#elif MOUSEKEY_MOVE_MAX > 127
 | 
			
		||||
    #error MOUSEKEY_MOVE_MAX needs to be smaller than 127
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MOUSEKEY_WHEEL_MAX
 | 
			
		||||
    #define MOUSEKEY_WHEEL_MAX      127
 | 
			
		||||
#elif MOUSEKEY_WHEEL_MAX > 127
 | 
			
		||||
    #error MOUSEKEY_WHEEL_MAX needs to be smaller than 127
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MOUSEKEY_MOVE_DELTA
 | 
			
		||||
#define MOUSEKEY_MOVE_DELTA     5
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,6 +92,9 @@ endif
 | 
			
		|||
endif
 | 
			
		||||
CFLAGS += -Wall
 | 
			
		||||
CFLAGS += -Wstrict-prototypes
 | 
			
		||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
 | 
			
		||||
    CFLAGS += -Werror
 | 
			
		||||
endif
 | 
			
		||||
#CFLAGS += -mshort-calls
 | 
			
		||||
#CFLAGS += -fno-unit-at-a-time
 | 
			
		||||
#CFLAGS += -Wundef
 | 
			
		||||
| 
						 | 
				
			
			@ -115,6 +118,9 @@ CPPFLAGS += -O$(OPT)
 | 
			
		|||
CPPFLAGS += -w
 | 
			
		||||
CPPFLAGS += -Wall
 | 
			
		||||
CPPFLAGS += -Wundef
 | 
			
		||||
ifneq ($(strip $(ALLOW_WARNINGS)), yes)
 | 
			
		||||
    CPPFLAGS += -Werror
 | 
			
		||||
endif
 | 
			
		||||
#CPPFLAGS += -mshort-calls
 | 
			
		||||
#CPPFLAGS += -fno-unit-at-a-time
 | 
			
		||||
#CPPFLAGS += -Wstrict-prototypes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue