Added capability information
This commit is contained in:
+32
-16
@@ -10,6 +10,7 @@
|
||||
audio-sniff-format
|
||||
audio-sniff-format/extension
|
||||
audio-sniff-extension
|
||||
audio-format-for-extension
|
||||
audio-format-matches?
|
||||
audio-format-known?)
|
||||
|
||||
@@ -46,6 +47,30 @@
|
||||
(substring s 1)
|
||||
s))])))
|
||||
|
||||
(define (audio-format-for-extension* extension)
|
||||
(let* ((text (string-downcase
|
||||
(format "~a" extension)))
|
||||
(normalized
|
||||
(if (string-prefix? text ".")
|
||||
(substring text 1)
|
||||
text)))
|
||||
(case (string->symbol normalized)
|
||||
[(mp3 mp2 mp1) 'mp3]
|
||||
[(flac) 'flac]
|
||||
[(ogg oga) 'ogg]
|
||||
[(opus) 'opus]
|
||||
[(wav wave) 'wav]
|
||||
[(aif aiff aifc) 'aiff]
|
||||
[(m4a mp4 m4b m4p) 'mp4]
|
||||
[(aac) 'aac]
|
||||
[(alac) 'alac]
|
||||
[(ac3) 'ac3]
|
||||
[(ape) 'ape]
|
||||
[(wv wvp wvpk wavpack) 'wavpack]
|
||||
[(wma asf) 'wma]
|
||||
[(webm mka mkv) 'matroska]
|
||||
[else 'unknown])))
|
||||
|
||||
(define (file-readable-status file)
|
||||
(cond
|
||||
[(not (file-exists? file)) 'file-not-found]
|
||||
@@ -294,22 +319,9 @@
|
||||
fmt]
|
||||
[(not (eq? fmt 'unknown)) fmt]
|
||||
[else
|
||||
(case (string->symbol (or (audio-sniff-extension* file) ""))
|
||||
[(mp3 mp2 mp1) 'mp3]
|
||||
[(flac) 'flac]
|
||||
[(ogg oga) 'ogg]
|
||||
[(opus) 'opus]
|
||||
[(wav wave) 'wav]
|
||||
[(aif aiff aifc) 'aiff]
|
||||
[(m4a mp4 m4b m4p) 'mp4]
|
||||
[(aac) 'aac]
|
||||
[(alac) 'alac]
|
||||
[(ac3) 'ac3]
|
||||
[(ape) 'ape]
|
||||
[(wv wvp wvpk wavpack) 'wavpack]
|
||||
[(wma asf) 'wma]
|
||||
[(webm mka mkv) 'matroska]
|
||||
[else 'unknown])])))
|
||||
(audio-format-for-extension*
|
||||
(or (audio-sniff-extension* file)
|
||||
""))])))
|
||||
|
||||
(define (audio-format-known?* fmt)
|
||||
(not (eq? (memq fmt audio-formats) #f)))
|
||||
@@ -321,6 +333,10 @@
|
||||
(-> path-string? (or/c string? #f))
|
||||
(audio-sniff-extension* file))
|
||||
|
||||
(define/contract (audio-format-for-extension extension)
|
||||
(-> (or/c string? symbol?) audio-format?)
|
||||
(audio-format-for-extension* extension))
|
||||
|
||||
(define/contract (audio-sniff-format file)
|
||||
(-> path-string? audio-format?)
|
||||
(audio-sniff-format* file))
|
||||
|
||||
Reference in New Issue
Block a user