master
Steve Ayerhart 2022-08-20 23:15:20 -04:00
parent edaa3600cc
commit 3246b2c064
No known key found for this signature in database
GPG Key ID: 4CB33EB9BB156C97
1 changed files with 0 additions and 147 deletions

View File

@ -1,147 +0,0 @@
! Copyright (C) 2020 .
! See http://factorcode.org/license.txt for BSD license.
USING: system combinators alien alien.libraries alien.syntax alien.c-types classes.struct ;
IN: flac.ffi
<<
"avcodec" {
{ [ os unix? ] [ "libFLAC.so" ] }
} cond cdecl add-library
>>
TYPEDEF: int FLAC__bool
TYPEDEF: int16_t FLAC__int16
TYPEDEF: int32_t FLAC__int32
TYPEDEF: int64_t FLAC__int64
TYPEDEF: uint FLAC__uint8
TYPEDEF: uint16_t FLAC__uint16
TYPEDEF: uint32_t FLAC__uint32
TYPEDEF: uint64_t FLAC__uint64
TYPEDEF: uint unsigned
TYPEDEF: uint8_t FLAC__byte
ENUM: FLAC__MetadataType
FLAC__METADATA_TYPE_STREAMINFO
FLAC__METADATA_TYPE_PADDING
FLAC__METADATA_TYPE_APPLICATION
FLAC__METADATA_TYPE_SEEKTABLE
FLAC__METADATA_TYPE_VORBIS_COMMENT
FLAC__METADATA_TYPE_CUESHEET
FLAC__METADATA_TYPE_PICTURE
FLAC__METADATA_TYPE_UNDEFINED
FLAC__METADATA_TYPE_TYPE ;
STRUCT: FLAC__StreamMetadata_StreamInfo
{ min_blocksize unsigned }
{ max_blocksize unsigned }
{ min_framesize unsigned }
{ max_framesize unsigned }
{ sample_rate unsigned }
{ channels unsigned }
{ bits_per_sample unsigned }
{ total_samples FLAC__uint64 }
{ md5sum FLAC__byte[16] } ;
STRUCT: FLAC__StreamMetadata_Padding
{ dummy int } ;
STRUCT: FLAC__StreamMetadata_Application
{ id FLAC__byte[4] }
{ data FLAC__byte* } ;
STRUCT: FLAC__StreamMetadata_SeekPoint
{ sample_number FLAC__uint64 }
{ stream_offset FLAC__uint64 }
{ frame_samples unsigned } ;
STRUCT: FLAC__StreamMetadata_SeekTable
{ num_points unsigned }
{ points FLAC__StreamMetadata_SeekPoint* } ;
STRUCT: FLAC__StreamMetadata_VorbisComment_Entry
{ length FLAC__uint32 }
{ entry FLAC__byte* } ;
STRUCT: FLAC__StreamMetadata_VorbisComment
{ vendor_string FLAC__StreamMetadata_VorbisComment_Entry }
{ num_comments FLAC__uint32 }
{ comments FLAC__StreamMetadata_VorbisComment_Entry* } ;
STRUCT: FLAC__StreamMetadata_CueSheet_Index
{ offset FLAC__uint64 }
{ number FLAC__byte } ;
STRUCT: FLAC__StreamMetadata_CueSheet_Track
{ offset FLAC__uint64 }
{ number FLAC__byte }
{ isrc char[13] }
{ type unsigned bits: 1 }
{ pre_emphasis unsigned bits: 1 }
{ num_indices FLAC__byte }
{ indices FLAC__StreamMetadata_CueSheet_Index* } ;
STRUCT: FLAC__StreamMetadata_CueSheet
{ media_catalog_number char[129] }
{ lead_in FLAC__uint64 }
{ is_cd FLAC__bool }
{ num_tracks unsigned }
{ tracks FLAC__StreamMetadata_CueSheet_Track* } ;
ENUM: FLAC__StreamMetadata_Picture_Type
FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER
FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD
FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON
FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER
FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER
FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE
FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA
FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST
FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST
FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR
FLAC__STREAM_METADATA_PICTURE_TYPE_BAND
FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER
FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST
FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION
FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING
FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE
FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE
FLAC__STREAM_METADATA_PICTURE_TYPE_FISH
FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION
FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE
FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE ;
STRUCT: FLAC__StreamMetadata_Picture
{ type FLAC__StreamMetadata_Picture_Type }
{ mime_type char* }
{ description FLAC__byte* }
{ width FLAC__uint32 }
{ height FLAC__uint32 }
{ depth FLAC__uint32 }
{ colors FLAC__uint32 }
{ data_length FLAC__uint32 }
{ data FLAC__byte* } ;
STRUCT: FLAC__StreamMetadata_Unknown
{ data FLAC__byte* } ;
UNION-STRUCT: metadata-union
{ stream_info FLAC__StreamMetadata_StreamInfo }
{ padding FLAC__StreamMetadata_Padding }
{ application FLAC__StreamMetadata_Application }
{ seek_table FLAC__StreamMetadata_SeekTable }
{ vorbis_comment FLAC__StreamMetadata_VorbisComment }
{ cue_sheet FLAC__StreamMetadata_CueSheet }
{ picture FLAC__StreamMetadata_Picture }
{ unknown FLAC__StreamMetadata_Unknown } ;
STRUCT: FLAC__StreamMetadata
{ type FLAC__MetadataType }
{ is_last FLAC__bool }
{ length unsigned }
{ data metadata-union } ;
FUNCTION: FLAC__bool FLAC__metadata_get_streaminfo ( c-string filename, FLAC__StreamMetadata* streaminfo )
FUNCTION: FLAC__bool FLAC__metadata_get_tags ( c-string filename, FLAC__StreamMetadata** streaminfo )