-
This commit is contained in:
@@ -403,6 +403,7 @@
|
|||||||
|
|
||||||
(define _FLAC__StreamDecoder-pointer (_cpointer 'flac-streamdecoder))
|
(define _FLAC__StreamDecoder-pointer (_cpointer 'flac-streamdecoder))
|
||||||
(define _FLAC__Data-pointer (_cpointer/null 'flac-client-data))
|
(define _FLAC__Data-pointer (_cpointer/null 'flac-client-data))
|
||||||
|
;(define _FLAC__StreamMetadata-pointer (_cpointer/null 'flac-stream-metadata))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; FLAC Callback function definitions
|
;; FLAC Callback function definitions
|
||||||
@@ -482,6 +483,16 @@
|
|||||||
(_fun _FLAC__StreamDecoder-pointer FLAC__uint64
|
(_fun _FLAC__StreamDecoder-pointer FLAC__uint64
|
||||||
-> _bool))
|
-> _bool))
|
||||||
|
|
||||||
|
;FLAC_API FLAC__StreamMetadata *FLAC__metadata_object_clone(const FLAC__StreamMetadata *object);
|
||||||
|
(define-libflac FLAC__metadata_object_clone
|
||||||
|
(_fun _FLAC__StreamMetadata-pointer
|
||||||
|
-> _FLAC__StreamMetadata-pointer))
|
||||||
|
|
||||||
|
;FLAC_API void FLAC__metadata_object_delete(FLAC__StreamMetadata *object);
|
||||||
|
(define-libflac FLAC__metadata_object_delete
|
||||||
|
(_fun _FLAC__StreamMetadata-pointer
|
||||||
|
-> _void))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Our interface for decoding to racket
|
;; Our interface for decoding to racket
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@@ -499,7 +510,9 @@
|
|||||||
0)
|
0)
|
||||||
|
|
||||||
(define (meta-callback fl meta client-data)
|
(define (meta-callback fl meta client-data)
|
||||||
(set! meta-data (append meta-data (list meta))))
|
(let ((meta-clone (FLAC__metadata_object_clone meta)))
|
||||||
|
(unless (eq? meta-clone #f)
|
||||||
|
(set! meta-data (append meta-data (list meta-clone))))))
|
||||||
|
|
||||||
(define (error-callback fl errno client-data)
|
(define (error-callback fl errno client-data)
|
||||||
(set! error-no errno)
|
(set! error-no errno)
|
||||||
@@ -530,7 +543,10 @@
|
|||||||
(decoder-state (int-state)))
|
(decoder-state (int-state)))
|
||||||
|
|
||||||
(define (process-meta-data cb)
|
(define (process-meta-data cb)
|
||||||
(for-each cb meta-data)
|
(for-each (λ (meta-entry)
|
||||||
|
(cb meta-entry)
|
||||||
|
(FLAC__metadata_object_delete meta-entry))
|
||||||
|
meta-data)
|
||||||
(set! meta-data '()))
|
(set! meta-data '()))
|
||||||
|
|
||||||
(define (process-write-data cb)
|
(define (process-write-data cb)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
(ao-set-async-mode! 'scheme)
|
(ao-set-async-mode! 'ffi)
|
||||||
;(define fmt (ao-mk-format 24 48000 2 'big-endian))
|
;(define fmt (ao-mk-format 24 48000 2 'big-endian))
|
||||||
;(define ao-h (ao-open-live #f fmt))
|
;(define ao-h (ao-open-live #f fmt))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user