[Keyboard] Add Encoder map support for rart (#18851)

This commit is contained in:
Alabahuy 2022-10-29 02:49:01 +07:00 committed by GitHub
parent e31fa77e9b
commit bc502348c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 70 additions and 60 deletions

View file

@ -44,7 +44,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN D3 #define RGB_DI_PIN D3
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLED_NUM 7 #define RGBLED_NUM 7
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8

View file

@ -44,19 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
bool encoder_update_user(uint8_t index, bool clockwise) { #if defined(ENCODER_MAP_ENABLE)
if (index == 0) { /* First encoder */ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
if (clockwise) { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
tap_code(KC_WH_U); [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
} else { [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
tap_code(KC_WH_D); [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
} };
} else if (index == 1) { /* Second encoder */ #endif
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}

View file

@ -1 +1,2 @@
VIA_ENABLE = yes VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -40,13 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
}; };
bool encoder_update_user(uint8_t index, bool clockwise) { #if defined(ENCODER_MAP_ENABLE)
if (index == 0) { /* First encoder */ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
if (clockwise) { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
tap_code(KC_VOLU); [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
} else { [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
tap_code(KC_VOLD); [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
} };
} #endif
return true;
}

View file

@ -1,2 +1,4 @@
VIA_ENABLE = yes VIA_ENABLE = yes
LTO_ENABLE = yes LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -53,3 +53,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View file

@ -1,2 +1,3 @@
VIA_ENABLE = yes VIA_ENABLE = yes
LTO_ENABLE = yes LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -28,4 +28,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
} }
return true; return true;
} }
#endif #endif

View file

@ -51,4 +51,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
), ),
}; };
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) },
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
[3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View file

@ -1 +1,3 @@
VIA_ENABLE = yes VIA_ENABLE = yes
LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -39,13 +39,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */ /* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE
#define LED_CAPS_LOCK_PIN D5 #define LED_CAPS_LOCK_PIN D4
#define LED_PIN_ON_STATE 0 #define LED_PIN_ON_STATE 0
#define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 1 #define BOOTMAGIC_LITE_COLUMN 1
#define RGB_DI_PIN C0 #define RGB_DI_PIN D5
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_MOOD

View file

@ -18,5 +18,4 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
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
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = no

View file

@ -30,7 +30,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* COL2ROW or ROW2COL */ /* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
#define NUM_LOCK_LED_PIN D7 #define LED_CAPS_LOCK_PIN D7
#define LED_PIN_ON_STATE 1
/* Set 0 if debouncing isn't needed */ /* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5 #define DEBOUNCE 5
@ -46,7 +47,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_DI_PIN F7 #define RGB_DI_PIN F7
#ifdef RGB_DI_PIN #ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLED_NUM 5 #define RGBLED_NUM 5
#define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_SAT_STEP 8

View file

@ -35,19 +35,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
) )
}; };
bool encoder_update_user(uint8_t index, bool clockwise) { #if defined(ENCODER_MAP_ENABLE)
if (index == 0) { /* First encoder */ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
if (clockwise) { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
tap_code(KC_WH_U); [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
} else { [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
tap_code(KC_WH_D); [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
} };
} else if (index == 1) { /* Second encoder */ #endif
if (clockwise) {
tap_code(KC_VOLU);
} else {
tap_code(KC_VOLD);
}
}
return true;
}

View file

@ -1,2 +1,3 @@
VIA_ENABLE = yes VIA_ENABLE = yes
LTO_ENABLE = yes LTO_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View file

@ -12,11 +12,4 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "rartpad.h" #include "rartpad.h"
bool led_update_kb(led_t led_state) {
if (led_update_user(led_state)) {
writePin(NUM_LOCK_LED_PIN, led_state.num_lock);
}
return true;
}