[Keyboard] Add Encoder map support for rart (#18851)
This commit is contained in:
		
							parent
							
								
									e31fa77e9b
								
							
						
					
					
						commit
						bc502348c3
					
				
					 16 changed files with 70 additions and 60 deletions
				
			
		| 
						 | 
				
			
			@ -44,7 +44,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
#define RGB_DI_PIN D3
 | 
			
		||||
#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 RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,19 +44,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) { /* First encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_WH_U);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_WH_D);
 | 
			
		||||
        }
 | 
			
		||||
    } else if (index == 1) { /* Second encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#if defined(ENCODER_MAP_ENABLE)
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
 | 
			
		||||
    [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
 | 
			
		||||
    [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1 +1,2 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,13 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) { /* First encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#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
 | 
			
		||||
| 
						 | 
				
			
			@ -1,2 +1,4 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,4 +28,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		|||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
}; 
 | 
			
		||||
}; 
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
| 
						 | 
				
			
			@ -1 +1,3 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -39,13 +39,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
/* Locking resynchronize hack */
 | 
			
		||||
#define LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define LED_CAPS_LOCK_PIN D5
 | 
			
		||||
#define LED_CAPS_LOCK_PIN D4
 | 
			
		||||
#define LED_PIN_ON_STATE 0
 | 
			
		||||
 | 
			
		||||
#define BOOTMAGIC_LITE_ROW 0
 | 
			
		||||
#define BOOTMAGIC_LITE_COLUMN 1
 | 
			
		||||
 | 
			
		||||
#define RGB_DI_PIN C0
 | 
			
		||||
#define RGB_DI_PIN D5
 | 
			
		||||
#ifdef RGB_DI_PIN
 | 
			
		||||
#define RGBLIGHT_EFFECT_BREATHING
 | 
			
		||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,5 +18,4 @@ COMMAND_ENABLE = yes        # Commands for debug and configuration
 | 
			
		|||
NKRO_ENABLE = yes            # Enable N-Key Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = yes       # Enable keyboard RGB underglow
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
ENCODER_ENABLE = no
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
| 
						 | 
				
			
			@ -30,7 +30,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
/* COL2ROW or ROW2COL */
 | 
			
		||||
#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 */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +47,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
#define RGB_DI_PIN F7
 | 
			
		||||
#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 RGBLIGHT_HUE_STEP 8
 | 
			
		||||
#define RGBLIGHT_SAT_STEP 8
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,19 +35,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) { /* First encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_WH_U);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_WH_D);
 | 
			
		||||
        }
 | 
			
		||||
    } else if (index == 1) { /* Second encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_VOLU);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_VOLD);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#if defined(ENCODER_MAP_ENABLE)
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
 | 
			
		||||
    [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
 | 
			
		||||
    [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -12,11 +12,4 @@
 | 
			
		|||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
#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;
 | 
			
		||||
}
 | 
			
		||||
#include "rartpad.h"
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue