sure up flac pictures

master
Steve Ayerhart 2021-08-09 11:50:16 -04:00
parent ada7286d92
commit 745db6b657
No known key found for this signature in database
GPG Key ID: 5C815FDF3A00B8BA
1 changed files with 30 additions and 1 deletions

View File

@ -111,6 +111,9 @@ ERROR: cuesheet-index-reserved-must-be-zero ;
32 flac-read-uint dup 8 * flac-read-uint swap >n-byte-array
picture boa ;
: append-picture ( metadata picture -- metadata )
[ dup picture>> ] dip 1array append >>picture ;
: read-metadata-block ( metadata length type -- metadata )
[
{
@ -120,7 +123,7 @@ ERROR: cuesheet-index-reserved-must-be-zero ;
{ metadata-seek-table [ read-metadata-block-seek-table >>seek-table ] }
{ metadata-vorbis-comment [ read-metadata-block-vorbis-comment >>vorbis-comment ] }
{ metadata-cuesheet [ read-metadata-block-cuesheet >>cuesheet ] }
{ metadata-picture [ read-metadata-block-picture >>picture ] }
{ metadata-picture [ read-metadata-block-picture append-picture ] }
} case
] with-big-endian ;
@ -136,5 +139,31 @@ ERROR: cuesheet-index-reserved-must-be-zero ;
[ read-metadata-block ] dip
] loop ;
: <flac-stream-info> ( filename -- stream-info )
[
read/assert-flac-magic
32 flac-read-uint drop
read-metadata-block-stream-info
] with-flac-file-reader ;
: <flac-tags> ( filename -- tags )
[
read/assert-flac-magic
[ read-metadata-block-header [ length>> ] [ type>> metadata-vorbis-comment = ] [ last?>> ] tri or ]
[ flac-seek ] until [ read-metadata-block-vorbis-comment ] with-big-endian
] with-flac-file-reader ;
: <flac-pictures> ( filename -- pictures )
[
read/assert-flac-magic
[ read-metadata-block-header dup last?>> not ]
[
[ length>> ] [ type>> metadata-picture = ] bi
[ read-metadata-block-picture ]
[ flac-seek f ] if
] produce nip sift
] with-flac-file-reader ;
: <flac-metadata> ( filename -- metadata )
[ read-flac-metadata ] with-flac-file-reader ;