This commit is contained in:
2026-02-24 16:56:55 +01:00
parent a99635e8f2
commit ace66827a0

View File

@@ -84,34 +84,36 @@
(set-flac-handle-stop-reading! handle #f) (set-flac-handle-stop-reading! handle #f)
(set-flac-handle-reading! handle #t) (set-flac-handle-reading! handle #t)
(letrec ((reader (lambda (frame-nr) (letrec ((reader (lambda (frame-nr)
(let* ((st (ffi-handler 'state))) (if (flac-handle-stop-reading handle)
(ffi-handler 'process-single) (begin
(unless (eq? state st) (set-flac-handle-reading! handle #f)
(set! state st) 'stopped-reading)
(displayln (let* ((st (ffi-handler 'state)))
(format "Now in state ~a (frame-nr = ~a) (int-state = ~a)" (ffi-handler 'process-single)
st frame-nr (ffi-handler 'int-state))) (unless (eq? state st)
) (set! state st)
(when (flac-handle-stop-reading handle) (displayln
(set! st 'stopped-reading)) (format "Now in state ~a (frame-nr = ~a) (int-state = ~a)"
(when (ffi-handler 'has-errno?) st frame-nr (ffi-handler 'int-state)))
(displayln )
(format "Error in stream: ~a" (ffi-handler 'errno))) (when (ffi-handler 'has-errno?)
) (displayln
(when (ffi-handler 'has-meta-data?) (format "Error in stream: ~a" (ffi-handler 'errno)))
(ffi-handler 'process-meta-data )
(lambda (meta) (process-meta handle meta))) (when (ffi-handler 'has-meta-data?)
) (ffi-handler 'process-meta-data
(when (ffi-handler 'has-write-data?) (lambda (meta) (process-meta handle meta)))
(ffi-handler 'process-write-data )
(lambda (frame buffer) (when (ffi-handler 'has-write-data?)
(process-frame handle frame buffer))) (ffi-handler 'process-write-data
) (lambda (frame buffer)
(if (or (eq? st 'end-of-stream) (eq? st 'stopped-reading)) (process-frame handle frame buffer)))
(begin )
(set-flac-handle-reading! handle #f) (if (eq? st 'end-of-stream)
st) (begin
(reader (+ frame-nr 1))))) (set-flac-handle-reading! handle #f)
st)
(reader (+ frame-nr 1))))))
)) ))
(reader 0)))) (reader 0))))