diff --git a/libflac/flac-decoder.rkt b/libflac/flac-decoder.rkt index 5c3b6b4..5cdc6b4 100644 --- a/libflac/flac-decoder.rkt +++ b/libflac/flac-decoder.rkt @@ -92,7 +92,7 @@ st frame-nr (ffi-handler 'int-state))) ) (when (flac-handle-stop-reading handle) - 'stopped-reading) + (set! st 'stopped-reading)) (when (ffi-handler 'has-errno?) (displayln (format "Error in stream: ~a" (ffi-handler 'errno))) @@ -106,9 +106,9 @@ (lambda (frame buffer) (process-frame handle frame buffer))) ) - (if (eq? st 'end-of-stream) - 'end-of-stream - (reader (+ frame-nr 1))))) + (if (or (eq? st 'end-of-stream) (eq? st 'stopped-reading)) + st + (reader (+ frame-nr 1))))) )) (reader 0))))