fix(tracker): use non-blocking sends from Model to Player

This ensures that the GUI can never hang, even if the Player has
completely crashed.
This commit is contained in:
5684185+vsariola@users.noreply.github.com
2024-11-03 00:57:05 +02:00
parent 6337101985
commit 04deac5722
3 changed files with 20 additions and 25 deletions

View File

@ -72,7 +72,7 @@ func (m *IsRecording) Value() bool { return (*Model)(m).recording }
func (m *IsRecording) setValue(val bool) {
m.recording = val
m.instrEnlarged = val
(*Model)(m).send(RecordingMsg{val})
trySend(m.broker.ToPlayer, any(RecordingMsg{val}))
}
func (m *IsRecording) Enabled() bool { return true }
@ -84,9 +84,9 @@ func (m *Playing) setValue(val bool) {
m.playing = val
if m.playing {
(*Model)(m).setPanic(false)
(*Model)(m).send(StartPlayMsg{m.d.Cursor.SongPos})
trySend(m.broker.ToPlayer, any(StartPlayMsg{m.d.Cursor.SongPos}))
} else {
(*Model)(m).send(IsPlayingMsg{val})
trySend(m.broker.ToPlayer, any(IsPlayingMsg{val}))
}
}
func (m *Playing) Enabled() bool { return m.playing || !m.instrEnlarged }