With this patch, a non-existing ALSA device is no longer considered a fatal error. Instead, we keep retrying until we succeed.
Furthermore, if we have successfully opened the ALSA device, and it then disappears, we a) no longer crash, or cause 100% CPU usage, and b) try to re-connect to the device.
With this, we now handle e.g. USB soundcards being disconnected and then re-connected. We should also handle pseudo devices, like pipewire provides ones, when yambar is started before pipewire.
Note that I couldn't find a way to use e.g. inotify, or udev to avoid polling. That doesn't mean it isn't possible. For now, this is still better than before. Note that the polling algorithm starts with a 0.5s interval, but quickly backs off up to 30s.