refactor(audio): update the connection after it has disconnected or been initialized
This commit is contained in:
parent
4c40374014
commit
eef73793bf
2 changed files with 14 additions and 4 deletions
|
|
@ -397,7 +397,10 @@ impl cosmic::Application for Audio {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::Pulse(event) => match event {
|
Message::Pulse(event) => match event {
|
||||||
pulse::Event::Init(conn) => self.pulse_state = PulseState::Disconnected(conn),
|
pulse::Event::Init(mut conn) => {
|
||||||
|
conn.send(pulse::Message::UpdateConnection);
|
||||||
|
self.pulse_state = PulseState::Disconnected(conn);
|
||||||
|
}
|
||||||
pulse::Event::Connected => {
|
pulse::Event::Connected => {
|
||||||
self.pulse_state.connected();
|
self.pulse_state.connected();
|
||||||
|
|
||||||
|
|
@ -431,14 +434,22 @@ impl cosmic::Application for Audio {
|
||||||
self.update_input(Some(source));
|
self.update_input(Some(source));
|
||||||
}
|
}
|
||||||
pulse::Message::Disconnected => {
|
pulse::Message::Disconnected => {
|
||||||
panic!("Subscriton error handling is bad. This should never happen.")
|
panic!("Subscription error handling is bad. This should never happen.")
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
tracing::trace!("Received misc message")
|
tracing::trace!("Received misc message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pulse::Event::Disconnected => self.pulse_state.disconnected(),
|
pulse::Event::Disconnected => {
|
||||||
|
self.pulse_state.disconnected();
|
||||||
|
if let Some(mut conn) = self.pulse_state.connection().cloned() {
|
||||||
|
_ = tokio::spawn(async move {
|
||||||
|
tokio::time::sleep(tokio::time::Duration::from_secs(30)).await;
|
||||||
|
conn.send(pulse::Message::UpdateConnection);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
Message::ToggleMediaControlsInTopPanel(chain, enabled) => {
|
Message::ToggleMediaControlsInTopPanel(chain, enabled) => {
|
||||||
self.timeline.set_chain(chain).start();
|
self.timeline.set_chain(chain).start();
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,6 @@ async fn start_listening(
|
||||||
State::Connecting(from_pulse)
|
State::Connecting(from_pulse)
|
||||||
}
|
}
|
||||||
// Waiting for Connection to succeed
|
// Waiting for Connection to succeed
|
||||||
// The GUI doesn't have to monitor this state, as it is never sent to the GUI
|
|
||||||
State::Connecting(mut from_pulse) => match from_pulse.recv().await {
|
State::Connecting(mut from_pulse) => match from_pulse.recv().await {
|
||||||
Some(Message::Connected) => {
|
Some(Message::Connected) => {
|
||||||
_ = output.send(Event::Connected).await;
|
_ = output.send(Event::Connected).await;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue