Add simple led support
Also the first version of a led testing animation
This commit is contained in:
parent
61f7761c03
commit
c95b17b536
5 changed files with 99 additions and 2 deletions
45
led_test.c
Normal file
45
led_test.c
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Fred Sundvik
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
*/
|
||||||
|
#include "led_test.h"
|
||||||
|
#include "gfx.h"
|
||||||
|
|
||||||
|
keyframe_animation_t led_test_animation = {
|
||||||
|
.num_frames = 1,
|
||||||
|
.loop = true,
|
||||||
|
.frame_lengths = {MS2ST(1000)},
|
||||||
|
.frame_functions = {
|
||||||
|
keyframe_fade_in_all_leds,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
bool keyframe_fade_in_all_leds(keyframe_animation_t* animation, visualizer_state_t* state) {
|
||||||
|
(void)state;
|
||||||
|
int frame_length = animation->frame_lengths[animation->current_frame];
|
||||||
|
int current_pos = frame_length - animation->time_left_in_frame;
|
||||||
|
uint8_t luma = 0x255 * current_pos / frame_length;
|
||||||
|
color_t color = LUMA2COLOR(luma);
|
||||||
|
gdispGClear(LED_DISPLAY, color);
|
||||||
|
gdispGFlush(LED_DISPLAY);
|
||||||
|
return true;
|
||||||
|
}
|
35
led_test.h
Normal file
35
led_test.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Fred Sundvik
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TMK_VISUALIZER_LED_TEST_H_
|
||||||
|
#define TMK_VISUALIZER_LED_TEST_H_
|
||||||
|
|
||||||
|
#include "visualizer.h"
|
||||||
|
|
||||||
|
bool keyframe_fade_in_all_leds(keyframe_animation_t* animation, visualizer_state_t* state);
|
||||||
|
|
||||||
|
extern keyframe_animation_t led_test_animation;
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* TMK_VISUALIZER_LED_TEST_H_ */
|
|
@ -77,6 +77,9 @@ static remote_object_t* remote_objects[] = {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
GDisplay* LCDDisplay;
|
||||||
|
GDisplay* LEDDisplay;
|
||||||
|
|
||||||
|
|
||||||
void start_keyframe_animation(keyframe_animation_t* animation) {
|
void start_keyframe_animation(keyframe_animation_t* animation) {
|
||||||
animation->current_frame = -1;
|
animation->current_frame = -1;
|
||||||
|
@ -405,6 +408,11 @@ 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
|
||||||
|
LCDDisplay = gdispGetDisplay(0);
|
||||||
|
LEDDisplay = gdispGetDisplay(1);
|
||||||
|
|
||||||
|
|
||||||
// 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
|
||||||
chEvtObjectInit(&layer_changed_event);
|
chEvtObjectInit(&layer_changed_event);
|
||||||
|
|
|
@ -99,6 +99,9 @@ typedef struct keyframe_animation_t {
|
||||||
|
|
||||||
} keyframe_animation_t;
|
} keyframe_animation_t;
|
||||||
|
|
||||||
|
extern GDisplay* LCD_DISPLAY;
|
||||||
|
extern GDisplay* LED_DISPLAY;
|
||||||
|
|
||||||
void start_keyframe_animation(keyframe_animation_t* animation);
|
void start_keyframe_animation(keyframe_animation_t* animation);
|
||||||
void stop_keyframe_animation(keyframe_animation_t* animation);
|
void stop_keyframe_animation(keyframe_animation_t* animation);
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,14 @@
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
GFXLIB = $(VISUALIZER_DIR)/ugfx
|
GFXLIB = $(VISUALIZER_DIR)/ugfx
|
||||||
|
SRC += $(GFXSRC) $(VISUALIZER_DIR)/visualizer.c
|
||||||
|
UINCDIR += $(GFXINC) $(VISUALIZER_DIR)
|
||||||
|
|
||||||
ifdef LCD_ENABLE
|
ifdef LCD_ENABLE
|
||||||
include $(GFXLIB)/gfx.mk
|
include $(GFXLIB)/gfx.mk
|
||||||
UDEFS += -DLCD_ENABLE
|
UDEFS += -DLCD_ENABLE
|
||||||
ULIBS += -lm
|
ULIBS += -lm
|
||||||
endif
|
endif
|
||||||
SRC += $(GFXSRC) $(VISUALIZER_DIR)/visualizer.c
|
|
||||||
UINCDIR += $(GFXINC) $(VISUALIZER_DIR)
|
|
||||||
|
|
||||||
ifdef LCD_BACKLIGHT_ENABLE
|
ifdef LCD_BACKLIGHT_ENABLE
|
||||||
SRC += $(VISUALIZER_DIR)/lcd_backlight.c
|
SRC += $(VISUALIZER_DIR)/lcd_backlight.c
|
||||||
|
@ -35,6 +36,11 @@ SRC += lcd_backlight_hal.c
|
||||||
UDEFS += -DLCD_BACKLIGHT_ENABLE
|
UDEFS += -DLCD_BACKLIGHT_ENABLE
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef LED_ENABLE
|
||||||
|
SRC += $(VISUALIZER_DIR)/led_test.c
|
||||||
|
UDEFS += -DLED_ENABLE
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef VISUALIZER_USER
|
ifndef VISUALIZER_USER
|
||||||
VISUALIZER_USER = visualizer_user.c
|
VISUALIZER_USER = visualizer_user.c
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in a new issue