From 788af0f7aa151ddb0661eb9f86360d4c65410aa0 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 7 May 2026 15:12:27 +0200 Subject: [PATCH] pause handling --- player.rkt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/player.rkt b/player.rkt index 90db748..e1ec21e 100644 --- a/player.rkt +++ b/player.rkt @@ -29,6 +29,7 @@ (define ct-data #f) (define closing #f) (define pause #f) + (define stop-in-pause 'nil) (define repeat-state 'no-repeat) (define volume (send settings get 'volume 100.0)) @@ -161,12 +162,17 @@ (set-state! 'pauzed) (ao-pause ao-handle #t) (while (and (not (eq? ao-handle #f)) + (not (eq? stop-in-pause 'stop-request)) (not closing) pause) (sleep 0.5)) - (ao-pause ao-handle #f) - (dbg-rktplayer "Playing on...") - (set-state! 'playing) + (if (eq? stop-in-pause 'stop-request) + (set! stop-in-pause 'stop-ack) + (begin + (ao-pause ao-handle #f) + (dbg-rktplayer "Playing on...") + (set-state! 'playing)) + ) ) ) ) @@ -241,6 +247,11 @@ ) (define (stop-and-clear) + (when pause + (set! stop-in-pause 'stop-request) + (set! pause #f) + (while (not (eq? stop-in-pause 'stop-ack)) + (sleep 0.2))) (set-state! 'stopped) (close-player*) )