Closed FelixMcFelix closed 5 months ago
The problem is down to how any task without a live connection is demoted from Live to Idle. This is expected and correct, and serves the dual function of pausing present tracks. However, we then trigger promotions using the following check on messages sent to the Mixer
:
The new connection is filled in using MixerMessage::SetConn
, which will not trigger promotion. However, when fixing this we need to take extra care with SetConn
to restore the forwarding task if no promotion occurs, and we need to take care that no messages are lost on the main channel.
Closed by #222.
Songbird version: 0.4.x
Rust version (
rustc -V
): N/ASerenity/Twilight version: Any
Output of
ffmpeg -version
,yt-dlp --version
(if relevant): N/ADescription: Bots do not seem to correctly resume after being moved from one channel to another. Ideally, the logical flow here should be:
This is how songbird functioned without issue pre-0.4.x. To my knowledge, state is being carried between channels as it always has been. However, no tracks will play nor will audio be generated... until an event is sent to a live track or a new track is added. I suspect there is an issue with the scheduler moving a session from Idle into Active during the above sequence of events.
Steps to reproduce:
join
, making sure not toremove
the originalCall
/Driver
pair.