Whitefox LED control (#1432)

* use new grave_esc functionality

* Port LED control from Ergodox Infinity to Whitefox
This commit is contained in:
Ethan Madden 2017-06-25 18:30:40 -07:00 committed by Jack Humbert
parent 43579a80a7
commit 42e6ecc36b
17 changed files with 1080 additions and 36 deletions

View file

@ -41,8 +41,8 @@ static void keyframe_fade_all_leds_from_to(keyframe_animation_t* animation, uint
}
// TODO: Should be customizable per keyboard
#define NUM_ROWS 7
#define NUM_COLS 7
#define NUM_ROWS LED_NUM_ROWS
#define NUM_COLS LED_NUM_COLS
static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS];
static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS];

View file

@ -105,15 +105,19 @@ static remote_object_t* remote_objects[] = {
GDisplay* LCD_DISPLAY = 0;
GDisplay* LED_DISPLAY = 0;
#ifdef LCD_DISPLAY_NUMBER
__attribute__((weak))
GDisplay* get_lcd_display(void) {
return gdispGetDisplay(0);
return gdispGetDisplay(LCD_DISPLAY_NUMBER);
}
#endif
#ifdef LED_DISPLAY_NUMBER
__attribute__((weak))
GDisplay* get_led_display(void) {
return gdispGetDisplay(1);
return gdispGetDisplay(LED_DISPLAY_NUMBER);
}
#endif
void start_keyframe_animation(keyframe_animation_t* animation) {
animation->current_frame = -1;
@ -251,9 +255,9 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) {
.mods = 0xFF,
.leds = 0xFFFFFFFF,
.suspended = false,
#ifdef VISUALIZER_USER_DATA_SIZE
#ifdef VISUALIZER_USER_DATA_SIZE
.user_data = {0},
#endif
#endif
};
visualizer_state_t state = {
@ -379,25 +383,26 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) {
void visualizer_init(void) {
gfxInit();
#ifdef LCD_BACKLIGHT_ENABLE
#ifdef LCD_BACKLIGHT_ENABLE
lcd_backlight_init();
#endif
#endif
#ifdef SERIAL_LINK_ENABLE
#ifdef SERIAL_LINK_ENABLE
add_remote_objects(remote_objects, sizeof(remote_objects) / sizeof(remote_object_t*) );
#endif
#endif
#ifdef LCD_ENABLE
#ifdef LCD_ENABLE
LCD_DISPLAY = get_lcd_display();
#endif
#ifdef BACKLIGHT_ENABLE
#endif
#ifdef BACKLIGHT_ENABLE
LED_DISPLAY = get_led_display();
#endif
#endif
// We are using a low priority thread, the idea is to have it run only
// when the main thread is sleeping during the matrix scanning
gfxThreadCreate(visualizerThreadStack, sizeof(visualizerThreadStack),
VISUALIZER_THREAD_PRIORITY, visualizerThread, NULL);
gfxThreadCreate(visualizerThreadStack, sizeof(visualizerThreadStack),
VISUALIZER_THREAD_PRIORITY, visualizerThread, NULL);
}
void update_status(bool changed) {

View file

@ -51,19 +51,23 @@ GFXSRC := $(patsubst $(TOP_DIR)/%,%,$(GFXSRC))
GFXDEFS := $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS)))
ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","")
SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c
SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c
else
ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/visualizer.c)","")
ifeq ("$(wildcard $(SUBPROJECT_PATH)/visualizer.c)","")
$(error "$(KEYMAP_PATH)/visualizer.c" does not exist)
else
SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/visualizer.c
endif
else
SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/visualizer.c
endif
ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/visualizer.c)","")
ifeq ("$(wildcard $(SUBPROJECT_PATH)/visualizer.c)","")
ifeq ("$(wildcard $(KEYBOARD_PATH)/visualizer.c)","")
$(error "visualizer.c" not found")
else
SRC += keyboards/$(KEYBOARD)/visualizer.c
endif
else
SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/visualizer.c
endif
else
SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/visualizer.c
endif
endif
ifdef EMULATOR
UINCDIR += $(TMK_DIR)/common
endif
endif