-
This commit is contained in:
@@ -82,6 +82,7 @@
|
|||||||
(let* ((ffi-handler (flac-handle-ffi-decoder-handler handle))
|
(let* ((ffi-handler (flac-handle-ffi-decoder-handler handle))
|
||||||
(state (ffi-handler 'state)))
|
(state (ffi-handler 'state)))
|
||||||
(set-flac-handle-stop-reading! handle #f)
|
(set-flac-handle-stop-reading! handle #f)
|
||||||
|
(set-flac-handle-reading! handle #t)
|
||||||
(letrec ((reader (lambda (frame-nr)
|
(letrec ((reader (lambda (frame-nr)
|
||||||
(let* ((st (ffi-handler 'state)))
|
(let* ((st (ffi-handler 'state)))
|
||||||
(ffi-handler 'process-single)
|
(ffi-handler 'process-single)
|
||||||
@@ -107,7 +108,9 @@
|
|||||||
(process-frame handle frame buffer)))
|
(process-frame handle frame buffer)))
|
||||||
)
|
)
|
||||||
(if (or (eq? st 'end-of-stream) (eq? st 'stopped-reading))
|
(if (or (eq? st 'end-of-stream) (eq? st 'stopped-reading))
|
||||||
st
|
(begin
|
||||||
|
(set-flac-handle-reading! handle #f)
|
||||||
|
st)
|
||||||
(reader (+ frame-nr 1)))))
|
(reader (+ frame-nr 1)))))
|
||||||
))
|
))
|
||||||
(reader 0))))
|
(reader 0))))
|
||||||
@@ -131,6 +134,9 @@
|
|||||||
#f)))
|
#f)))
|
||||||
|
|
||||||
(define (flac-stop handle)
|
(define (flac-stop handle)
|
||||||
(set-flac-handle-stop-reading! handle #t))
|
(set-flac-handle-stop-reading! handle #t)
|
||||||
|
(while (flac-handle-reading handle)
|
||||||
|
(sleep 0.01))
|
||||||
|
)
|
||||||
|
|
||||||
); end of module
|
); end of module
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
[cb-audio #:auto #:mutable]
|
[cb-audio #:auto #:mutable]
|
||||||
[stream-info #:auto #:mutable]
|
[stream-info #:auto #:mutable]
|
||||||
[stop-reading #:auto #:mutable]
|
[stop-reading #:auto #:mutable]
|
||||||
|
[reading #:auto #:mutable]
|
||||||
)
|
)
|
||||||
#:auto-value #f
|
#:auto-value #f
|
||||||
;#:transparent
|
;#:transparent
|
||||||
|
|||||||
Reference in New Issue
Block a user