1
0
Fork 0

maxr1998/pulse4k: Move Combo code to keymap level (#16301)

* maxr1998/pulse4k: Move Combo code to keymap level

* Reorder code
This commit is contained in:
Ryan 2022-02-11 13:31:19 +11:00 committed by GitHub
parent 63c310f6fd
commit 2bc4a216df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 85 additions and 34 deletions

View file

@ -21,6 +21,10 @@ enum layers {
DEFAULT DEFAULT
}; };
enum combo_events {
LED_ADJUST
};
const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END}; const uint16_t PROGMEM led_adjust_combo[] = {KC_LEFT, KC_RGHT, COMBO_END};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 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;
}

View file

@ -0,0 +1 @@
COMBO_ENABLE = yes

View file

@ -21,6 +21,10 @@ enum layers {
DEFAULT DEFAULT
}; };
enum combo_events {
LED_ADJUST
};
const uint16_t PROGMEM led_adjust_combo[] = {KC_F22, KC_F24, COMBO_END}; const uint16_t PROGMEM led_adjust_combo[] = {KC_F22, KC_F24, COMBO_END};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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) { void encoder_one_update(bool clockwise) {
tap_code(!clockwise ? KC_F18 : KC_F19); tap_code(!clockwise ? KC_F18 : KC_F19);
} }

View file

@ -0,0 +1 @@
COMBO_ENABLE = yes

View file

@ -16,44 +16,14 @@
*/ */
#include "pulse4k.h" #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) { bool encoder_update_kb(uint8_t index, bool clockwise) {
if (!encoder_update_user(index, clockwise)) return false; if (!encoder_update_user(index, clockwise)) return false;
if (index == 0) { if (index == 0) {
if (led_adjust_active) { encoder_one_update(clockwise);
if (clockwise) {
rgblight_increase_val();
} else {
rgblight_decrease_val();
}
} else encoder_one_update(clockwise);
} else if (index == 1) { } else if (index == 1) {
if (led_adjust_active) { encoder_two_update(clockwise);
if (clockwise) {
rgblight_increase_hue();
} else {
rgblight_decrease_hue();
}
} else encoder_two_update(clockwise);
} }
return true; return true;
} }

View file

@ -13,7 +13,6 @@ ENCODER_ENABLE = yes # Rotary encoders
EXTRAKEY_ENABLE = yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = yes # Console for debug CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
COMBO_ENABLE = yes # Key combo feature
NKRO_ENABLE = yes # Enable N-Key Rollover NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output AUDIO_ENABLE = no # Audio output