~taiite/poyo

qol changes to windows build script
Shutdown write half when w_tx closes

It's not done automatically.
Refresh stats at a higher rate

and don't refresh them when not visible
Show all audio setup errors

Even the one that is encountered when negotiating the stream config
s/Output/Playback/ and s/Input/Capture/
Recover from audio setup errors
Make the ping loop have a weak ref to outgoing channel

So that the user can close it by dropping its reference to the channel.
Use alert_default and anyhow::Error's debug format
Quit when the main window is closed
Audio/timing stats

TODO I would like to add another stat related to record/output:
- timing starts when we put the first sample of a packet in resize_buf
- ends on tls flush

so it would time the time it takes to send a frame. then we add the
audio device buffer latency, the ping/2 and codec delay to have the
mic->server latency.

but it requires w_tx to change. if we change this i think it could be
used to add a way to give back the opus buffers allocated on
src/audio/mod.rs:341 or maybe not

then we could have end2end audio latency if we query the ping of others,
but it'd require to guess the size of their playback buffer and their
jitter buffer.
important change of the day: limit amount of threads spawned by tokio

otherwise it will spawn 1 thread per server in the list (because dns
lookups are run on the blocking thread pool)

we might want to use hickory-dns [0] at some point

[0] https://github.com/hickory-dns/hickory-dns
(try to) honor server's max bitrate setting
use i16::saturating_add when mixing to avoid overflow
ability to add multiple servers
Don't return an error when ctrl_tx is closed.
audio jitter buffer is not that trivial to make work
More speexdsp wrappers
Optimize possible contention on stats and reduce cache line invalidations (this one is very important please don't revert)
audio stream config negotiation and other things
Remove unused forget_stream feature
Next
Do not follow this link