forked from mirrors/qmk_userspace
		
	Strip out features to allow minimum firmware sizes (#8645)
This commit is contained in:
		
					parent
					
						
							
								c217186bea
							
						
					
				
			
			
				commit
				
					
						58a9c84d6b
					
				
			
		
					 6 changed files with 30 additions and 11 deletions
				
			
		| 
						 | 
					@ -51,17 +51,23 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
 | 
				
			||||||
    action_t action = {};
 | 
					    action_t action = {};
 | 
				
			||||||
    uint8_t  action_layer, when, mod;
 | 
					    uint8_t  action_layer, when, mod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (void)action_layer;
 | 
				
			||||||
 | 
					    (void)when;
 | 
				
			||||||
 | 
					    (void)mod;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (keycode) {
 | 
					    switch (keycode) {
 | 
				
			||||||
        case KC_A ... KC_EXSEL:
 | 
					        case KC_A ... KC_EXSEL:
 | 
				
			||||||
        case KC_LCTRL ... KC_RGUI:
 | 
					        case KC_LCTRL ... KC_RGUI:
 | 
				
			||||||
            action.code = ACTION_KEY(keycode);
 | 
					            action.code = ACTION_KEY(keycode);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
        case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
 | 
					        case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
 | 
				
			||||||
            action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
 | 
					            action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case KC_AUDIO_MUTE ... KC_BRIGHTNESS_DOWN:
 | 
					        case KC_AUDIO_MUTE ... KC_BRIGHTNESS_DOWN:
 | 
				
			||||||
            action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
 | 
					            action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifdef MOUSEKEY_ENABLE
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
        case KC_MS_UP ... KC_MS_ACCEL2:
 | 
					        case KC_MS_UP ... KC_MS_ACCEL2:
 | 
				
			||||||
            action.code = ACTION_MOUSEKEY(keycode);
 | 
					            action.code = ACTION_MOUSEKEY(keycode);
 | 
				
			||||||
| 
						 | 
					@ -93,6 +99,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
 | 
				
			||||||
                action.code = ACTION_MACRO(keycode & 0xFF);
 | 
					                action.code = ACTION_MACRO(keycode & 0xFF);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NO_ACTION_LAYER
 | 
				
			||||||
        case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
 | 
					        case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
 | 
				
			||||||
            action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
 | 
					            action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -117,6 +124,8 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
 | 
				
			||||||
            action_layer = keycode & 0xFF;
 | 
					            action_layer = keycode & 0xFF;
 | 
				
			||||||
            action.code  = ACTION_LAYER_TOGGLE(action_layer);
 | 
					            action.code  = ACTION_LAYER_TOGGLE(action_layer);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NO_ACTION_ONESHOT
 | 
				
			||||||
        case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:;
 | 
					        case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:;
 | 
				
			||||||
            // OSL(action_layer) - One-shot action_layer
 | 
					            // OSL(action_layer) - One-shot action_layer
 | 
				
			||||||
            action_layer = keycode & 0xFF;
 | 
					            action_layer = keycode & 0xFF;
 | 
				
			||||||
| 
						 | 
					@ -127,6 +136,8 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
 | 
				
			||||||
            mod         = mod_config(keycode & 0xFF);
 | 
					            mod         = mod_config(keycode & 0xFF);
 | 
				
			||||||
            action.code = ACTION_MODS_ONESHOT(mod);
 | 
					            action.code = ACTION_MODS_ONESHOT(mod);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NO_ACTION_LAYER
 | 
				
			||||||
        case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
 | 
					        case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
 | 
				
			||||||
            action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF);
 | 
					            action.code = ACTION_LAYER_TAP_TOGGLE(keycode & 0xFF);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -135,10 +146,13 @@ action_t action_for_key(uint8_t layer, keypos_t key) {
 | 
				
			||||||
            action_layer = (keycode >> 4) & 0xF;
 | 
					            action_layer = (keycode >> 4) & 0xF;
 | 
				
			||||||
            action.code  = ACTION_LAYER_MODS(action_layer, mod);
 | 
					            action.code  = ACTION_LAYER_MODS(action_layer, mod);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NO_ACTION_TAPPING
 | 
				
			||||||
        case QK_MOD_TAP ... QK_MOD_TAP_MAX:
 | 
					        case QK_MOD_TAP ... QK_MOD_TAP_MAX:
 | 
				
			||||||
            mod         = mod_config((keycode >> 0x8) & 0x1F);
 | 
					            mod         = mod_config((keycode >> 0x8) & 0x1F);
 | 
				
			||||||
            action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF);
 | 
					            action.code = ACTION_MODS_TAP_KEY(mod, keycode & 0xFF);
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifdef SWAP_HANDS_ENABLE
 | 
					#ifdef SWAP_HANDS_ENABLE
 | 
				
			||||||
        case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX:
 | 
					        case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX:
 | 
				
			||||||
            action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff);
 | 
					            action.code = ACTION(ACT_SWAP_HANDS, keycode & 0xff);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -284,9 +284,11 @@ bool process_record_quantum(keyrecord_t *record) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (record->event.pressed) {
 | 
					    if (record->event.pressed) {
 | 
				
			||||||
        switch (keycode) {
 | 
					        switch (keycode) {
 | 
				
			||||||
 | 
					#ifndef NO_RESET
 | 
				
			||||||
            case RESET:
 | 
					            case RESET:
 | 
				
			||||||
                reset_keyboard();
 | 
					                reset_keyboard();
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifndef NO_DEBUG
 | 
					#ifndef NO_DEBUG
 | 
				
			||||||
            case DEBUG:
 | 
					            case DEBUG:
 | 
				
			||||||
                debug_enable ^= 1;
 | 
					                debug_enable ^= 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -775,11 +775,12 @@ void register_code(uint8_t code) {
 | 
				
			||||||
            add_mods(MOD_BIT(code));
 | 
					            add_mods(MOD_BIT(code));
 | 
				
			||||||
            send_keyboard_report();
 | 
					            send_keyboard_report();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
    else if
 | 
					    else if
 | 
				
			||||||
        IS_SYSTEM(code) { host_system_send(KEYCODE2SYSTEM(code)); }
 | 
					        IS_SYSTEM(code) { host_system_send(KEYCODE2SYSTEM(code)); }
 | 
				
			||||||
    else if
 | 
					    else if
 | 
				
			||||||
        IS_CONSUMER(code) { host_consumer_send(KEYCODE2CONSUMER(code)); }
 | 
					        IS_CONSUMER(code) { host_consumer_send(KEYCODE2CONSUMER(code)); }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
#ifdef MOUSEKEY_ENABLE
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
    else if
 | 
					    else if
 | 
				
			||||||
        IS_MOUSEKEY(code) {
 | 
					        IS_MOUSEKEY(code) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,13 +82,13 @@ void layer_xor(layer_state_t state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    define layer_debug()
 | 
					#    define layer_debug()
 | 
				
			||||||
#    define layer_clear()
 | 
					#    define layer_clear()
 | 
				
			||||||
#    define layer_move(layer)
 | 
					#    define layer_move(layer) (void)layer
 | 
				
			||||||
#    define layer_on(layer)
 | 
					#    define layer_on(layer) (void)layer
 | 
				
			||||||
#    define layer_off(layer)
 | 
					#    define layer_off(layer) (void)layer
 | 
				
			||||||
#    define layer_invert(layer)
 | 
					#    define layer_invert(layer) (void)layer
 | 
				
			||||||
#    define layer_or(state)
 | 
					#    define layer_or(state) (void)state
 | 
				
			||||||
#    define layer_and(state)
 | 
					#    define layer_and(state) (void)state
 | 
				
			||||||
#    define layer_xor(state)
 | 
					#    define layer_xor(state) (void)state
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
layer_state_t layer_state_set_user(layer_state_t state);
 | 
					layer_state_t layer_state_set_user(layer_state_t state);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#include "util.h"
 | 
					#include "util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// bit population - return number of on-bit
 | 
					// bit population - return number of on-bit
 | 
				
			||||||
uint8_t bitpop(uint8_t bits) {
 | 
					__attribute__((noinline)) uint8_t bitpop(uint8_t bits) {
 | 
				
			||||||
    uint8_t c;
 | 
					    uint8_t c;
 | 
				
			||||||
    for (c = 0; bits; c++) bits &= bits - 1;
 | 
					    for (c = 0; bits; c++) bits &= bits - 1;
 | 
				
			||||||
    return c;
 | 
					    return c;
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ uint8_t bitpop32(uint32_t bits) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// most significant on-bit - return highest location of on-bit
 | 
					// most significant on-bit - return highest location of on-bit
 | 
				
			||||||
// NOTE: return 0 when bit0 is on or all bits are off
 | 
					// NOTE: return 0 when bit0 is on or all bits are off
 | 
				
			||||||
uint8_t biton(uint8_t bits) {
 | 
					__attribute__((noinline)) uint8_t biton(uint8_t bits) {
 | 
				
			||||||
    uint8_t n = 0;
 | 
					    uint8_t n = 0;
 | 
				
			||||||
    if (bits >> 4) {
 | 
					    if (bits >> 4) {
 | 
				
			||||||
        bits >>= 4;
 | 
					        bits >>= 4;
 | 
				
			||||||
| 
						 | 
					@ -105,7 +105,7 @@ uint8_t biton32(uint32_t bits) {
 | 
				
			||||||
    return n;
 | 
					    return n;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint8_t bitrev(uint8_t bits) {
 | 
					__attribute__((noinline)) uint8_t bitrev(uint8_t bits) {
 | 
				
			||||||
    bits = (bits & 0x0f) << 4 | (bits & 0xf0) >> 4;
 | 
					    bits = (bits & 0x0f) << 4 | (bits & 0xf0) >> 4;
 | 
				
			||||||
    bits = (bits & 0b00110011) << 2 | (bits & 0b11001100) >> 2;
 | 
					    bits = (bits & 0b00110011) << 2 | (bits & 0b11001100) >> 2;
 | 
				
			||||||
    bits = (bits & 0b01010101) << 1 | (bits & 0b10101010) >> 1;
 | 
					    bits = (bits & 0b01010101) << 1 | (bits & 0b10101010) >> 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -158,10 +158,12 @@ typedef struct {
 | 
				
			||||||
} __attribute__((packed)) vusb_mouse_report_t;
 | 
					} __attribute__((packed)) vusb_mouse_report_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void send_mouse(report_mouse_t *report) {
 | 
					static void send_mouse(report_mouse_t *report) {
 | 
				
			||||||
 | 
					#if defined(MOUSE_ENABLE)
 | 
				
			||||||
    vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report};
 | 
					    vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report};
 | 
				
			||||||
    if (usbInterruptIsReady3()) {
 | 
					    if (usbInterruptIsReady3()) {
 | 
				
			||||||
        usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
 | 
					        usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef EXTRAKEY_ENABLE
 | 
					#ifdef EXTRAKEY_ENABLE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue