-
This commit is contained in:
@@ -84,6 +84,10 @@
|
|||||||
(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)
|
||||||
|
(if (flac-handle-stop-reading handle)
|
||||||
|
(begin
|
||||||
|
(set-flac-handle-reading! handle #f)
|
||||||
|
'stopped-reading)
|
||||||
(let* ((st (ffi-handler 'state)))
|
(let* ((st (ffi-handler 'state)))
|
||||||
(ffi-handler 'process-single)
|
(ffi-handler 'process-single)
|
||||||
(unless (eq? state st)
|
(unless (eq? state st)
|
||||||
@@ -92,8 +96,6 @@
|
|||||||
(format "Now in state ~a (frame-nr = ~a) (int-state = ~a)"
|
(format "Now in state ~a (frame-nr = ~a) (int-state = ~a)"
|
||||||
st frame-nr (ffi-handler 'int-state)))
|
st frame-nr (ffi-handler 'int-state)))
|
||||||
)
|
)
|
||||||
(when (flac-handle-stop-reading handle)
|
|
||||||
(set! st 'stopped-reading))
|
|
||||||
(when (ffi-handler 'has-errno?)
|
(when (ffi-handler 'has-errno?)
|
||||||
(displayln
|
(displayln
|
||||||
(format "Error in stream: ~a" (ffi-handler 'errno)))
|
(format "Error in stream: ~a" (ffi-handler 'errno)))
|
||||||
@@ -107,11 +109,11 @@
|
|||||||
(lambda (frame buffer)
|
(lambda (frame buffer)
|
||||||
(process-frame handle 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
|
(begin
|
||||||
(set-flac-handle-reading! handle #f)
|
(set-flac-handle-reading! handle #f)
|
||||||
st)
|
st)
|
||||||
(reader (+ frame-nr 1)))))
|
(reader (+ frame-nr 1))))))
|
||||||
))
|
))
|
||||||
(reader 0))))
|
(reader 0))))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user