main
Steve Ayerhart 2022-12-23 13:09:06 -05:00
parent 7183d925e2
commit a2df955506
No known key found for this signature in database
GPG Key ID: 4CB33EB9BB156C97
1 changed files with 4 additions and 10 deletions

View File

@ -14,8 +14,7 @@
flac-read-rice-sint flac-read-rice-sint
with-flac-input-port with-flac-input-port
align-to-byte align-to-byte
new-flac-reader %make-flac-reader
make-flac-reader
flac-read/assert-magic flac-read/assert-magic
current-flac-reader)) current-flac-reader))
@ -25,7 +24,7 @@
;;; TODO: redo api? callback based? ;;; TODO: redo api? callback based?
(define-record-type <flac-reader> (define-record-type <flac-reader>
(make-flac-reader input-port bit-buffer bit-buffer-length) (%make-flac-reader input-port bit-buffer bit-buffer-length)
flac-reader? flac-reader?
(input-port flac-reader-port) (input-port flac-reader-port)
(bit-buffer flac-reader-bit-buffer set-flac-reader-bit-buffer!) (bit-buffer flac-reader-bit-buffer set-flac-reader-bit-buffer!)
@ -34,16 +33,11 @@
(define (with-flac-input-port port thunk) (define (with-flac-input-port port thunk)
(with-input-from-port port (with-input-from-port port
(λ () (λ ()
(parameterize ((current-flac-reader (make-flac-reader (current-input-port) 0 0))) (parameterize ((current-flac-reader (%make-flac-reader (current-input-port) 0 0)))
(thunk))))) (thunk)))))
(define (new-flac-reader port)
(current-flac-reader (make-flac-reader port 0 0))
(current-flac-reader))
(define (flac-read-bits reader bits) (define (flac-read-bits reader bits)
(while (while (< (flac-reader-bit-buffer-length reader) bits)
(< (flac-reader-bit-buffer-length reader) bits)
(let ((byte-read (get-u8 (flac-reader-port reader)))) (let ((byte-read (get-u8 (flac-reader-port reader))))
(set-flac-reader-bit-buffer! reader (set-flac-reader-bit-buffer! reader
(bitwise-ior (bitwise-arithmetic-shift (flac-reader-bit-buffer reader) 8) (bitwise-ior (bitwise-arithmetic-shift (flac-reader-bit-buffer reader) 8)