-
This commit is contained in:
@@ -84,6 +84,10 @@
|
||||
(set-flac-handle-stop-reading! handle #f)
|
||||
(set-flac-handle-reading! handle #t)
|
||||
(letrec ((reader (lambda (frame-nr)
|
||||
(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)
|
||||
@@ -92,8 +96,6 @@
|
||||
(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)))
|
||||
@@ -107,11 +109,11 @@
|
||||
(lambda (frame buffer)
|
||||
(process-frame handle frame buffer)))
|
||||
)
|
||||
(if (or (eq? st 'end-of-stream) (eq? st 'stopped-reading))
|
||||
(if (eq? st 'end-of-stream)
|
||||
(begin
|
||||
(set-flac-handle-reading! handle #f)
|
||||
st)
|
||||
(reader (+ frame-nr 1)))))
|
||||
(reader (+ frame-nr 1))))))
|
||||
))
|
||||
(reader 0))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user