jrd
b438d6cd26
alternate cargo config for when non-default gcc version installed
2020-11-09 19:52:44 -08:00
jrd
e17c88873a
simplify audio locking with local refcell rather than thread local
2020-11-03 10:08:30 -08:00
jrd
4a66223542
don't pass along already-ignored pin level to button handler
2020-11-03 09:34:21 -08:00
jrd
fbb7dea664
simplify hue locking with local cell rather than global atomic
2020-11-03 09:33:54 -08:00
jrd
641fd5ae38
turn on patio light if off when doorbelled
2020-10-29 09:13:16 -07:00
jrd
9b147e05b4
Locking for hue control
2020-10-29 09:06:58 -07:00
jrd
0ae116acc3
slight refactoring of hacky hue routine
2020-10-29 08:13:05 -07:00
jrd
6e7e74205e
Hacky hue flashing-- no locking multiple presses
2020-10-29 07:48:52 -07:00
jrd
1730f55d21
relax futures-util version constraint
2020-10-29 06:42:03 -07:00
jrd
429f8258bc
reorder functions
2020-10-29 06:41:40 -07:00
jrd
85a69b2420
factor chime play into separate function
2020-10-29 06:40:51 -07:00
jrd
ab961382ba
Move audio playback to toplevel, out of sse stream generation
2020-10-29 06:30:20 -07:00
jrd
f4d2280680
Factor warp config into separate function
2020-10-29 06:06:48 -07:00
jrd
a0e3b256fb
protect fragile animation-end callbacks
...
If a second ring came in, the old callbacks would clear. If this
happened after the first part of the animation (likely), the callback
counter would never hit its target.
2020-10-29 05:11:14 -07:00
jrd
5f60cd2a1b
Prompt user for interaction to enable sound when block by browser
2020-10-29 04:59:20 -07:00
jrd
ab81bdb708
send ring events even if audio is playing
...
Multiple clients won't get events if the handler to the first one
starts the audio stream before the other handlers check. Later
handlers always see audio.
2020-10-29 03:33:26 -07:00
jrd
b70f92f6f4
leave some extra space above status box
2020-10-29 03:05:08 -07:00
jrd
4bdcbcad20
flash background on ring event
2020-10-29 03:00:48 -07:00
jrd
55ff48e6a3
{dis}connection beeps for sse stream
2020-10-28 22:04:32 -07:00
jrd
1fb5b37949
tabular layout for status box
2020-10-28 21:52:16 -07:00
jrd
59e0643902
Format status box
2020-10-28 21:41:29 -07:00
jrd
be65559f87
play indoor chime on ring
2020-10-28 20:21:26 -07:00
jrd
941038eece
Outdoor chime filename as global constant
2020-10-28 18:22:47 -07:00
jrd
743d5f231c
Check if audio is busy in separate function
2020-10-28 18:05:21 -07:00
jrd
e173f58da1
Outdoor doorbell chime
2020-10-28 18:01:54 -07:00
jrd
9e8543610b
ignore emacs desktop files
2020-10-28 13:23:11 -07:00
jrd
13f1203a65
Reconnect on error. Show connection status. Use JQuery.
2020-10-22 15:22:30 -07:00
jrd
2050daae13
shorten ping time
2020-10-22 12:24:38 -07:00
jrd
4f59b256f5
simplify client Vec management
2020-10-22 12:23:08 -07:00
jrd
117979704c
Use standard pullup instead of pulldown to match debounce circuit
2020-10-19 21:14:45 -07:00
jrd
fdac5e4848
Use unreleased version of 'rppal' w/ RPi 4 GPIO Pullup/down support
2020-10-19 21:14:18 -07:00
jrd
c752289af1
send explicit pings to client
2020-10-15 11:58:48 -07:00
jrd
dfbbe01a24
Log client disconnected on ring sse
...
This is only detected when ring sse attempts to send on the closed
channel. It is not detected when the client actually
disconnects. Lower layers in the stack do notice the disconnect and
drop the sse stream so pings will stop being sent, but we don't have
any drop handler on the ring substream so we don't notice until we try
to use it.
2020-10-15 11:58:48 -07:00
jrd
f39303175c
Timestamps in log lines
2020-10-15 11:58:48 -07:00
jrd
71c62dc6a2
Enqueue sse ring directly from interrupt. SmallVec for client list
2020-10-15 11:58:39 -07:00
jrd
069099c7bb
button presses -> sse -> web display
2020-10-15 11:57:40 -07:00
jrd
3b86c9fe21
use async interrupt. blank web service.
2020-10-13 13:32:32 -07:00
jrd
6d3d0fee0f
Register button presses
2020-10-13 11:44:02 -07:00
jrd
5b52c6a78e
cross-build for arm/rpi
2020-10-12 17:42:41 -07:00
jrd
b7ec56c394
New project: doorbell
2020-10-12 16:18:24 -07:00