diff --git a/libflac/flac-decoder.rkt b/libflac/flac-decoder.rkt index 8afdfa6..f9507a0 100644 --- a/libflac/flac-decoder.rkt +++ b/libflac/flac-decoder.rkt @@ -19,16 +19,17 @@ ;; Functions to do the good stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (define (flac-open flac-file cb-stream-info cb-audio) - (if (file-exists? flac-file) - (let ((handler (flac-ffi-decoder-handler))) - (handler 'new) - (handler 'init flac-file) - (let ((h (make-flac-handle handler))) - (set-flac-handle-cb-stream-info! h cb-stream-info) - (set-flac-handle-cb-audio! h cb-audio) - h)) - #f)) + (define (flac-open flac-file* cb-stream-info cb-audio) + (let ((flac-file (if (path? flac-file*) (path->string flac-file* flac-file*)))) + (if (file-exists? flac-file) + (let ((handler (flac-ffi-decoder-handler))) + (handler 'new) + (handler 'init flac-file) + (let ((h (make-flac-handle handler))) + (set-flac-handle-cb-stream-info! h cb-stream-info) + (set-flac-handle-cb-audio! h cb-audio) + h)) + #f))) (define (flac-stream-state handle) ((flac-handle-ffi-decoder-handler handle) 'state)) diff --git a/libtag/taglib.rkt b/libtag/taglib.rkt index 357fa63..89e1d24 100644 --- a/libtag/taglib.rkt +++ b/libtag/taglib.rkt @@ -41,8 +41,9 @@ (define-struct id3-picture (mimetype kind size bytes)) - (define (id3-tags file) - (let ((valid? #f) + (define (id3-tags file*) + (let ((file (if (path? file*) (path->string file*) file*)) + (valid? #f) (title "") (album "") (artist "")