developing

This commit is contained in:
2026-04-10 09:01:19 +02:00
parent 5dee69316a
commit fb99e97577
5 changed files with 94 additions and 55 deletions

View File

@@ -49,9 +49,9 @@
(define (check-ao-handle)
(when (eq? ao-handle #f)
(unless (or (= current-rate 0) (= current-bits 0) (= current-channels 0))
(displayln (format "current-rate = ~a, current-bits = ~a, current-channels = ~a, ao-handle = ~a"
current-rate current-bits current-channels ao-handle))
(displayln "Opening ao-handle")
(dbg-rktplayer "current-rate = ~a, current-bits = ~a, current-channels = ~a, ao-handle = ~a"
current-rate current-bits current-channels ao-handle)
(dbg-rktplayer "Opening ao-handle")
(when use-ao
(let ((fmt (ao-mk-format current-bits current-rate current-channels 'big-endian)))
(set! ao-handle (ao-open-live #f fmt))
@@ -64,13 +64,13 @@
(define (start-play-time-updater)
(when (eq? play-time-updater-state 'stopped)
(set! play-time-updater-state 'updating)
(displayln "Starting play-time-updater")
(dbg-rktplayer "Starting play-time-updater")
(thread (λ ()
(define (updater)
(if (or (eq? ao-handle #f) closing)
(begin
(set! play-time-updater-state 'stopped)
(displayln "Terminating play-time-updater")
(dbg-rktplayer "Terminating play-time-updater")
'done)
(let ((seconds (ao-at-second ao-handle))
(duration (ao-music-duration ao-handle))
@@ -85,7 +85,7 @@
)
)
(define (flac-play frame buffer)
(define (flac-play frame buffer buf-len)
(unless (eq? state 'quitted)
(let* ((sample (hash-ref frame 'number))
(rate (hash-ref frame 'sample-rate))
@@ -115,26 +115,26 @@
(sleep 0.25))))
(when (not (eq? ao-handle #f))
(ao-play ao-handle second duration buffer)
(ao-play ao-handle second duration buffer buf-len 'flac)
)
)
(when pause
(displayln "Pauzing now...")
(dbg-rktplayer "Pauzing now...")
(ao-pause ao-handle #t)
(while (and (not (eq? ao-handle #f))
(not closing)
pause)
(sleep 0.25))
(ao-pause ao-handle #f)
(displayln "Playing on...")
(dbg-rktplayer "Playing on...")
)
)
)
)
(define (flac-meta meta)
(displayln meta))
(dbg-rktplayer "flac meta: ~a" meta))
(define (play-track-worker)
(thread
@@ -142,13 +142,13 @@
(if (eq? ct-data #f)
'no-track-data
(let ((file (send ct-data get-file)))
(displayln (format "opening flac handle for file: ~a" file))
(dbg-rktplayer "opening flac handle for file: ~a" file)
(set! flac-handle (flac-open file flac-meta flac-play))
(displayln "Starting flac-read")
(dbg-rktplayer "Starting flac-read")
(let ((result (flac-read flac-handle)))
(if (eq? result 'end-of-stream)
(set-state! 'track-feeded)
(displayln "Flac read stopped")))
(dbg-rktplayer "Flac read stopped")))
'worker-done
)
)
@@ -159,7 +159,7 @@
)
(define (close-player*)
(displayln "Closing flac handle")
(dbg-rktplayer "Closing flac handle")
(set! closing #t)
@@ -174,17 +174,17 @@
(unless (eq? ao-handle #f)
(let ((h ao-handle))
(displayln "closing ao-handle")
(dbg-rktplayer "closing ao-handle")
(set! ao-handle #f)
(displayln (format "ao-handle = ~a" h))
(dbg-rktplayer "ao-handle = ~a" h)
(ao-close h)
))
(displayln (format "close-player*: ao-handle = ~a" ao-handle))
(displayln "Waiting for updater to stop")
(dbg-rktplayer "close-player*: ao-handle = ~a" ao-handle)
(dbg-rktplayer "Waiting for updater to stop")
(while (eq? play-time-updater-state 'updating)
(displayln (format "close-player*: ao-handle = ~a" ao-handle))
(dbg-rktplayer "close-player*: ao-handle = ~a" ao-handle)
(sleep 0.1))
(displayln "resetting tracks")
(dbg-rktplayer "resetting tracks")
(set! track -1)
(set! current-track -1)
@@ -216,16 +216,16 @@
)
(define/public (play-track i)
(displayln (format "play-track ~a" i))
(dbg-rktplayer "play-track ~a" i)
(set! state 'stopped)
(close-player*)
(displayln "Player closed")
(dbg-rktplayer "Player closed")
(set! track i)
(set! ct-data (send pl track i))
(set-state! 'play)
(displayln (format "Set state to 'play, updating to track ~a" track))
(dbg-rktplayer "Set state to 'play, updating to track ~a" track)
(track-nr-updater track)
(displayln "track-nr-updater called")
(dbg-rktplayer "track-nr-updater called")
)
(define/public (stop)
@@ -254,7 +254,7 @@
(define/public (pause-unpause)
(set! pause (not pause))
(displayln (format "pauzed: ~a" pause))
(dbg-rktplayer "pauzed: ~a" pause)
)
(define (state-machine)