Commit Graph

48 Commits (75b0a71d998bad640c5bb2ed4c7cf788a18e373e)

Author SHA1 Message Date
Kenny Levinsen 75b0a71d99 Simplify speedrun code a bit 2020-10-18 00:36:52 +02:00
Kenny Levinsen e14e8efcf3 Gracefully handle midnight sun/polar night
The sun trajectory calculation previously emitted garbage if midnight
sun or polar night phenomena was in effect. To fix this, the calculation
is overhauled to report if the computation failed, and if so, which
specific phenomena was the cause.

Timing recalulation uses this information to change out of the normal
state that uses the four sun position timings, into a static state where
wlsunset simply waits a day at a time for a normal sun trajectory
pattern to be restored. In this state, a fixedc high/low temperature is
set as appropriate for the phenomena.

A transition phase replicating the previous day's sunrise is used to
smooth out entry into a midnight sun, which would otherwise cause a
jarring instant-daylight setting.
2020-10-18 00:36:52 +02:00
Kenny Levinsen 7bd167e9d3 Split state from config, cleanup 2020-10-14 17:57:34 +02:00
Kenny Levinsen 67896358cf Precalculate animation step timings 2020-10-14 15:50:25 +02:00
Kenny Levinsen 9922bdeeef Cleanup dawn-overflowing deadline 2020-10-07 22:02:02 +02:00
Kenny Levinsen 3186967e1d Simplify state management 2020-10-07 21:55:46 +02:00
Kenny Levinsen 7c22eade9a Change twilight interval to -3 to 6 2020-10-04 19:51:25 +02:00
Kenny Levinsen 601e15080e Perform absolute sleeps 2020-10-04 19:49:45 +02:00
Kenny Levinsen 1dfefe2b51 Update temperature log 2020-10-04 15:33:00 +02:00
Kenny Levinsen cb294e1735 Prefix registry log output 2020-10-04 15:31:17 +02:00
Kenny Levinsen 46b9010b76 Warn about speedrun mode 2020-10-04 15:30:58 +02:00
Kenny Levinsen 83d90d2bea Calculate dawn and dusk times 2020-10-04 15:30:45 +02:00
Kenny Levinsen ddbb8f9912 Rename states to dawn, day, dusk and night 2020-10-04 15:26:47 +02:00
Kenny Levinsen caba0d8dcc Clean up gamma_control on failure 2020-10-04 15:24:54 +02:00
Kenny Levinsen f8269d8754 Improve speedrun time, increase to x1000 time 2020-10-04 15:23:49 +02:00
Kenny Levinsen 55bd086b51 Better log output 2020-10-04 01:03:23 +02:00
Kenny Levinsen 01779f7349 Break out of poll on signal 2020-10-04 00:56:51 +02:00
Kenny Levinsen daf27a5f11 Free output on removal, log add/remove 2020-10-04 00:56:17 +02:00
Kenny Levinsen 5761b05c1b Use wlsunset in anonymous file template 2020-10-04 00:55:25 +02:00
Kenny Levinsen 0128fb535f Check for zero-value in recalc_stops 2020-09-27 16:08:56 +02:00
Kenny Levinsen a74f7fd44f Allow direct high-to-low state transition 2020-09-26 19:37:52 +02:00
Kenny Levinsen 25ab690fa9 Recalculate next day immediately after sunset 2020-09-26 19:30:21 +02:00
Kenny Levinsen 39b211da95 Start high-to-low animation before sunset
Low-to-high animation runs from sunrise to sunrise+duration. However,
high-to-low animation ran from sunset to sunset+duration.

Run high-to-low animation at sunset-duration to sunset.
2020-09-26 19:27:48 +02:00
Kenny Levinsen 07f2f1d3ce Only print hour/min/sec during speedrun 2020-09-20 17:53:50 +02:00
Kenny Levinsen 3353efc0ae Silence erroneous uninitialized value warning
The compiler is confused by the circular switch, and thinks that temp
might become uniniitalized. This is clearly false, as it is set at all
switch breaks.

Silence the warning by explicitly initializing it to zero.
2020-09-20 17:29:56 +02:00
Kenny Levinsen f2f11dada2 Add SPEEDRUN mode, improve sleep timing
Add a SPEEDRUN define which, if set, will run wlsunset at 200x
super-realtime to aid testing.

Sleep timing calculations were approximated and often off. These have
been adjusted from testing using the SPEEDRUN feature.
2020-09-20 17:26:27 +02:00
Kenny Levinsen 20a40d450b Error if high/low temp is identical 2020-09-20 17:25:38 +02:00
Kenny Levinsen 81d87e3c47 readme: Add IRC and mailing list note 2020-09-20 03:54:16 +02:00
Kenny Levinsen 9df941cfd1 Allow complete state fallthrough 2020-09-20 03:52:32 +02:00
Kenny Levinsen 940cf08226 Account when forcing high/low state 2020-09-20 03:50:47 +02:00
Kenny Levinsen 71f0f904e2 Increase animation resolution 2020-09-20 03:49:42 +02:00
Kenny Levinsen c7e004c65b Handle sun times ahead of wallclock 2020-09-20 03:49:27 +02:00
Kenny Levinsen ef117f0a1f Typo in calculation message 2020-09-15 11:59:58 +02:00
Kenny Levinsen efa5b63ebd readme: Fix xkcd ref 2020-09-14 11:20:23 +02:00
Kenny Levinsen e2921c8efb Reduce precision in lat/long examples 2020-09-14 11:15:42 +02:00
Kenny Levinsen 235887e6e9 ci: Build on alpine 2020-09-13 22:07:19 +02:00
Kenny Levinsen 88a6d1dd17 Fix stricter build errors 2020-09-13 21:38:56 +02:00
Kenny Levinsen 208fc141fb These trailing whitespaces were not invited 2020-09-13 21:33:52 +02:00
Kenny Levinsen 98148d6610 Remove year_radian 2020-09-13 21:22:17 +02:00
Kenny Levinsen 5ebc0bd70c Add readme 2020-09-13 21:20:19 +02:00
Kenny Levinsen 526b390abc Update help and default duration 2020-09-13 21:19:02 +02:00
Kenny Levinsen a89ae834be Use sun trajectory 2020-09-13 21:12:44 +02:00
Kenny Levinsen 4d339c70d2 Make display_dispatch_with_timeout static 2020-09-13 03:23:12 +02:00
Kenny Levinsen 4f8559405f Move math out of main 2020-09-13 03:22:18 +02:00
Kenny Levinsen b2ebdea44a Implement time ramp 2020-09-13 03:18:14 +02:00
Kenny Levinsen 45dec286c5 Clamp before gamma correction 2020-09-12 21:14:28 +02:00
Kenny Levinsen b45f5b7d31 Add license 2020-09-12 20:56:26 +02:00
Kenny Levinsen 09e4710ae2 Initial commit 2020-09-12 20:13:28 +02:00