Allow direct high-to-low state transition
parent
25ab690fa9
commit
a74f7fd44f
11
main.c
11
main.c
|
@ -73,7 +73,6 @@ struct context {
|
||||||
time_t stop_time;
|
time_t stop_time;
|
||||||
int cur_temp;
|
int cur_temp;
|
||||||
enum state state;
|
enum state state;
|
||||||
time_t animation_start;
|
|
||||||
bool new_output;
|
bool new_output;
|
||||||
|
|
||||||
struct wl_list outputs;
|
struct wl_list outputs;
|
||||||
|
@ -280,11 +279,10 @@ start:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ctx->state = ANIMATING_TO_LOW;
|
ctx->state = ANIMATING_TO_LOW;
|
||||||
ctx->animation_start = ctx->stop_time;
|
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case ANIMATING_TO_LOW:
|
case ANIMATING_TO_LOW:
|
||||||
if (now <= ctx->animation_start + ctx->duration) {
|
if (now > ctx->start_time && now <= ctx->stop_time + ctx->duration) {
|
||||||
time_pos = clamp(((double)now - (double)ctx->animation_start) / (double)ctx->duration);
|
time_pos = clamp(((double)now - (double)ctx->stop_time) / (double)ctx->duration);
|
||||||
temp_pos = (double)(ctx->high_temp - ctx->low_temp) * time_pos;
|
temp_pos = (double)(ctx->high_temp - ctx->low_temp) * time_pos;
|
||||||
temp = ctx->high_temp - temp_pos;
|
temp = ctx->high_temp - temp_pos;
|
||||||
break;
|
break;
|
||||||
|
@ -297,11 +295,10 @@ start:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ctx->state = ANIMATING_TO_HIGH;
|
ctx->state = ANIMATING_TO_HIGH;
|
||||||
ctx->animation_start = ctx->start_time;
|
|
||||||
// fallthrough
|
// fallthrough
|
||||||
case ANIMATING_TO_HIGH:
|
case ANIMATING_TO_HIGH:
|
||||||
if (now <= ctx->animation_start + ctx->duration) {
|
if (now <= ctx->start_time + ctx->duration) {
|
||||||
time_pos = clamp(((double)now - (double)ctx->animation_start) / (double)ctx->duration);
|
time_pos = clamp(((double)now - (double)ctx->start_time) / (double)ctx->duration);
|
||||||
temp_pos = (double)(ctx->high_temp - ctx->low_temp) * time_pos;
|
temp_pos = (double)(ctx->high_temp - ctx->low_temp) * time_pos;
|
||||||
temp = ctx->low_temp + temp_pos;
|
temp = ctx->low_temp + temp_pos;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue