~ruther/qmk_firmware

4859be084d7886885a3e0af00343836b5607991e — Jack Humbert 8 years ago a9df99b + db4dce7
Merge pull request #813 from fredizzimo/add_cluecard_rgb_effects

Add a Cluecard keymap for testing the RGB effects
M keyboards/cluecard/keymaps/default/readme.md => keyboards/cluecard/keymaps/default/readme.md +4 -0
@@ 1,1 1,5 @@
# The default keymap for cluecard

Note that this keymap has audio enabled, so the RGB mode button does not go through the different effects. 
So the LEDs will still show a static light, that is configurable with the hue, staturation and brightness
buttons. You can of course also turn them on and off with the on/off button.

A keyboards/cluecard/keymaps/rgb_effects/Makefile => keyboards/cluecard/keymaps/rgb_effects/Makefile +21 -0
@@ 0,0 1,21 @@
# Build Options
#   change to "no" to disable the options, or define them in the Makefile in
#   the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = no       # Mouse keys(+4700)
EXTRAKEY_ENABLE = no       # Audio control and System control(+450)
CONSOLE_ENABLE = yes         # Console for debug(+400)
COMMAND_ENABLE = yes        # Commands for debug and configuration
NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes       # Enable keyboard backlight functionality
MIDI_ENABLE = no            # MIDI controls
AUDIO_ENABLE = no           # Audio output on port C6
UNICODE_ENABLE = no         # Unicode
BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend

ifndef QUANTUM_DIR
	include ../../../../Makefile
endif

A keyboards/cluecard/keymaps/rgb_effects/config.h => keyboards/cluecard/keymaps/rgb_effects/config.h +12 -0
@@ 0,0 1,12 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include "../../config.h"

// place overrides here
#define RGBLIGHT_TIMER
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2

#endif

A keyboards/cluecard/keymaps/rgb_effects/keymap.c => keyboards/cluecard/keymaps/rgb_effects/keymap.c +28 -0
@@ 0,0 1,28 @@
#include "cluecard.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	[0] = KEYMAP(
		RGB_TOG,        RGB_SAI,        RGB_VAI, \
		        RGB_HUD,        RGB_HUI,         \
		RGB_MOD,        RGB_SAD,        RGB_VAD, \
		BL_STEP,                                 \
		KC_NO,   KC_NO,   KC_NO                  \
	)
};

const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {255, 170, 85};
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 170, 85};

void matrix_init_user(void) {
}

void matrix_scan_user(void) {

}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  return true;
}

void led_set_user(uint8_t usb_led) {
}

A keyboards/cluecard/keymaps/rgb_effects/readme.md => keyboards/cluecard/keymaps/rgb_effects/readme.md +7 -0
@@ 0,0 1,7 @@
# RGB effect test keymap for cluecard

This keymap is made for testing the RGB effects. Audio is disabled and the mode buttons goes through each
effect. If you run HID-listen you will be able to see which effect is active. For a list of effects, check
the `rgblight.c` file.

The hue, saturation and brightness buttons will work depending on which effect is active.

M quantum/rgblight.c => quantum/rgblight.c +6 -0
@@ 42,10 42,16 @@ const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = {
  37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11,
  10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0
};

__attribute__ ((weak))
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
__attribute__ ((weak))
const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
__attribute__ ((weak))
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
__attribute__ ((weak))
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
__attribute__ ((weak))
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20};

rgblight_config_t rgblight_config;

M quantum/rgblight.h => quantum/rgblight.h +6 -0
@@ 40,6 40,12 @@
#include "eeconfig.h"
#include "light_ws2812.h"

extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM;
extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM;
extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM;
extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM;

typedef union {
  uint32_t raw;
  struct {