maxr1998/pulse4k: Move Combo code to keymap level (#16301)
* maxr1998/pulse4k: Move Combo code to keymap level * Reorder code
This commit is contained in:
		@@ -21,6 +21,10 @@ enum layers {
 | 
			
		||||
    DEFAULT
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum combo_events {
 | 
			
		||||
    LED_ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
@@ -29,3 +33,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
        KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[COMBO_COUNT] = {
 | 
			
		||||
    [LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool led_adjust_active = false;
 | 
			
		||||
 | 
			
		||||
void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
			
		||||
    if (combo_index == LED_ADJUST) {
 | 
			
		||||
        led_adjust_active = pressed;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_val();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_val();
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    } else if (index == 1) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_hue();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_hue();
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/maxr1998/pulse4k/keymaps/default/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/maxr1998/pulse4k/keymaps/default/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
COMBO_ENABLE = yes
 | 
			
		||||
@@ -21,6 +21,10 @@ enum layers {
 | 
			
		||||
    DEFAULT
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum combo_events {
 | 
			
		||||
    LED_ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM led_adjust_combo[] = {KC_F22, KC_F24, COMBO_END};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
@@ -30,6 +34,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[COMBO_COUNT] = {
 | 
			
		||||
    [LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool led_adjust_active = false;
 | 
			
		||||
 | 
			
		||||
void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
			
		||||
    if (combo_index == LED_ADJUST) {
 | 
			
		||||
        led_adjust_active = pressed;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_val();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_val();
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    } else if (index == 1) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_hue();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_hue();
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void encoder_one_update(bool clockwise) {
 | 
			
		||||
    tap_code(!clockwise ? KC_F18 : KC_F19);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/maxr1998/pulse4k/keymaps/maxr1998/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/maxr1998/pulse4k/keymaps/maxr1998/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
COMBO_ENABLE = yes
 | 
			
		||||
@@ -16,44 +16,14 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "pulse4k.h"
 | 
			
		||||
#include "rgblight.h"
 | 
			
		||||
 | 
			
		||||
enum combo_events {
 | 
			
		||||
    LED_ADJUST
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern const uint16_t PROGMEM led_adjust_combo[3];
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[COMBO_COUNT] = {
 | 
			
		||||
    [LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool led_adjust_active = false;
 | 
			
		||||
 | 
			
		||||
void process_combo_event(uint16_t combo_index, bool pressed) {
 | 
			
		||||
    if (combo_index == LED_ADJUST) {
 | 
			
		||||
        led_adjust_active = pressed;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) return false;
 | 
			
		||||
 | 
			
		||||
    if (index == 0) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_val();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_val();
 | 
			
		||||
            }
 | 
			
		||||
        } else encoder_one_update(clockwise);
 | 
			
		||||
        encoder_one_update(clockwise);
 | 
			
		||||
    } else if (index == 1) {
 | 
			
		||||
        if (led_adjust_active) {
 | 
			
		||||
            if (clockwise) {
 | 
			
		||||
                rgblight_increase_hue();
 | 
			
		||||
            } else {
 | 
			
		||||
                rgblight_decrease_hue();
 | 
			
		||||
            }
 | 
			
		||||
        } else encoder_two_update(clockwise);
 | 
			
		||||
        encoder_two_update(clockwise);
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@ ENCODER_ENABLE = yes       # Rotary encoders
 | 
			
		||||
EXTRAKEY_ENABLE = yes      # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = yes       # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no        # Commands for debug and configuration
 | 
			
		||||
COMBO_ENABLE = yes         # Key combo feature
 | 
			
		||||
NKRO_ENABLE = yes           # Enable N-Key Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no      # Enable keyboard backlight functionality
 | 
			
		||||
AUDIO_ENABLE = no          # Audio output
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user