Suspend power off, fix backlight animation

The backlight color animation was using the wrong frame number, so
it didn't work properly.
This commit is contained in:
Fred Sundvik 2016-03-13 21:35:42 +02:00
parent b93d07198a
commit f4c11740f7

View File

@ -174,7 +174,7 @@ bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t*
#ifdef LCD_BACKLIGHT_ENABLE #ifdef LCD_BACKLIGHT_ENABLE
bool keyframe_animate_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state) { bool keyframe_animate_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state) {
int frame_length = animation->frame_lengths[1]; int frame_length = animation->frame_lengths[animation->current_frame];
int current_pos = frame_length - animation->time_left_in_frame; int current_pos = frame_length - animation->time_left_in_frame;
uint8_t t_h = LCD_HUE(state->target_lcd_color); uint8_t t_h = LCD_HUE(state->target_lcd_color);
uint8_t t_s = LCD_SAT(state->target_lcd_color); uint8_t t_s = LCD_SAT(state->target_lcd_color);
@ -270,12 +270,21 @@ bool keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_s
bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) {
(void)animation; (void)animation;
(void)state; (void)state;
#ifdef LCD_ENABLE
gdispSetPowerMode(powerOff);
#endif
#ifdef LCD_BACKLIGHT_ENABLE
lcd_backlight_hal_color(0, 0, 0);
#endif
return false; return false;
} }
bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) {
(void)animation; (void)animation;
(void)state; (void)state;
#ifdef LCD_ENABLE
gdispSetPowerMode(powerOn);
#endif
return false; return false;
} }
@ -339,8 +348,8 @@ static THD_FUNCTION(visualizerThread, arg) {
else { else {
state.status = current_status; state.status = current_status;
update_user_visualizer_state(&state); update_user_visualizer_state(&state);
state.prev_lcd_color = state.current_lcd_color;
} }
state.prev_lcd_color = state.current_lcd_color;
} }
} }
if (!enabled && state.status.suspended && current_status.suspended == false) { if (!enabled && state.status.suspended && current_status.suspended == false) {
@ -350,6 +359,7 @@ static THD_FUNCTION(visualizerThread, arg) {
state.status.suspended = false; state.status.suspended = false;
stop_all_keyframe_animations(); stop_all_keyframe_animations();
user_visualizer_resume(&state); user_visualizer_resume(&state);
state.prev_lcd_color = state.current_lcd_color;
} }
sleep_time = TIME_INFINITE; sleep_time = TIME_INFINITE;
for (int i=0;i<MAX_SIMULTANEOUS_ANIMATIONS;i++) { for (int i=0;i<MAX_SIMULTANEOUS_ANIMATIONS;i++) {