From 4c227f3399b80db3f391e8dc28321525e22f8b9f Mon Sep 17 00:00:00 2001 From: Ivan Izaguirre Date: Sat, 11 Jan 2020 20:29:12 +0100 Subject: [PATCH] Non-blocking speaker clicks even when the queue is full --- apple2sdl/sdlSpeaker.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apple2sdl/sdlSpeaker.go b/apple2sdl/sdlSpeaker.go index 30dbc59..76cb3e0 100644 --- a/apple2sdl/sdlSpeaker.go +++ b/apple2sdl/sdlSpeaker.go @@ -48,7 +48,12 @@ func newSDLSpeaker() *sdlSpeaker { // Click receives a speaker click. The argument is the CPU cycle when it is generated func (s *sdlSpeaker) Click(cycle uint64) { - s.clickChannel <- cycle + select { + case s.clickChannel <- cycle: + // Sent + default: + // The channel is full, the click is lost. + } } func stateToLevel(state bool) C.Uint8 {