Add custom led and lcd display support

This commit is contained in:
Fred Sundvik 2016-05-18 08:40:36 +03:00
parent 07e412c538
commit fa8feb21a4
2 changed files with 20 additions and 3 deletions

View file

@ -85,6 +85,15 @@ static remote_object_t* remote_objects[] = {
GDisplay* LCD_DISPLAY = 0; GDisplay* LCD_DISPLAY = 0;
GDisplay* LED_DISPLAY = 0; GDisplay* LED_DISPLAY = 0;
__attribute__((weak))
GDisplay* get_lcd_display(void) {
return gdispGetDisplay(0);
}
__attribute__((weak))
GDisplay* get_led_display(void) {
return gdispGetDisplay(1);
}
void start_keyframe_animation(keyframe_animation_t* animation) { void start_keyframe_animation(keyframe_animation_t* animation) {
animation->current_frame = -1; animation->current_frame = -1;
@ -444,10 +453,13 @@ void visualizer_init(void) {
#ifdef USE_SERIAL_LINK #ifdef USE_SERIAL_LINK
add_remote_objects(remote_objects, sizeof(remote_objects) / sizeof(remote_object_t*) ); add_remote_objects(remote_objects, sizeof(remote_objects) / sizeof(remote_object_t*) );
#endif #endif
// TODO: Make sure these works when either of these are disabled
LCD_DISPLAY = gdispGetDisplay(0);
LED_DISPLAY = gdispGetDisplay(1);
#ifdef LCD_ENABLE
LCD_DISPLAY = get_lcd_display();
#endif
#ifdef LED_ENABLE
LED_DISPLAY = get_led_display();
#endif
// We are using a low priority thread, the idea is to have it run only // 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 // when the main thread is sleeping during the matrix scanning

View file

@ -45,6 +45,11 @@ void visualizer_suspend(void);
// This should be called when the keyboard wakes up from suspend state // This should be called when the keyboard wakes up from suspend state
void visualizer_resume(void); void visualizer_resume(void);
// These functions are week, so they can be overridden by the keyboard
// if needed
GDisplay* get_lcd_display(void);
GDisplay* get_led_display(void);
// If you need support for more than 16 keyframes per animation, you can change this // If you need support for more than 16 keyframes per animation, you can change this
#define MAX_VISUALIZER_KEY_FRAMES 16 #define MAX_VISUALIZER_KEY_FRAMES 16