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