From bcfe990acab581174d80ab8982e442fd06257bba Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Fri, 20 Feb 2026 22:08:57 +0100 Subject: [PATCH] - --- player.rkt | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/player.rkt b/player.rkt index 0fd776a..76fe2f0 100644 --- a/player.rkt +++ b/player.rkt @@ -1,16 +1,55 @@ #lang racket -(require racket/class) +(require racket/class + racket-audio + ) (provide player%) (define player% (class object% - (define/public (play playlist) - (displayln "playing playlist") + (define pl #f) + (define state 'stopped) + (define track 0) + + (define (player) + + (define (state-machine) + (cond + ((eq? state 'quit) + 'done) + ((eq? state 'stopped) + (sleep 0.25) + (state-machine)) + ((eq? state 'play) + (if (eq? pl #f) + (begin + (set! state 'stopped) + (state-machine)) + (begin + (play- + + ) + + (thread (λ () + + ) + (define/public (play playlist) + (set! state 'stopped) + (set! pl playlist) + (set! track 0) + (set! state 'play) + ) + + (define/public (quit) + (set! state 'quit)) + (super-new) + + (begin + (player)) ) )