The general usage of this interface is:
Do not modify the is_last, length, or type fields of returned FLAC__MetadataType objects. These are managed automatically.
The metadata objects returned by FLAC__metadata_iterator_get_block() are owned by the chain; do not FLAC__metadata_object_delete() them. In the same way, blocks passed to FLAC__metadata_iterator_set_block() become owned by the chain and they will be deleted when the chain is deleted.
|
The opaque structure definition for the level 2 chain type. |
|
The opaque structure definition for the level 2 iterator type. |
|
|
Create a new chain instance.
|
|
Free a chain instance. Deletes the object pointed to by chain.
chain != NULL |
|
Get the current status of the chain. Call this after a function returns
chain != NULL
|
|
Read all metadata from a FLAC file into the chain.
chain != NULL filename != NULL
|
|
Write all metadata out to the FLAC file. This function tries to be as efficient as possible; how the metadata is actually written is shown by the following: If the current chain is the same size as the existing metadata, the new data is written in place.
If the current chain is longer than the existing metadata, and use_padding is
If the current chain is shorter than the existing metadata, and use_padding is
If preserve_file_stats is
chain != NULL
|
|
Merge adjacent PADDING blocks into a single block.
chain != NULL |
|
This function will move all PADDING blocks to the end on the metadata, then merge them into a single block.
chain != NULL |
|
Create a new iterator instance.
|
|
Free an iterator instance. Deletes the object pointed to by iterator.
iterator != NULL |
|
Initialize the iterator to point to the first metadata block in the given chain.
iterator != NULL chain != NULL |
|
Moves the iterator forward one metadata block, returning
iterator != NULL
|
|
Moves the iterator backward one metadata block, returning
iterator != NULL
|
|
Get the type of the metadata block at the current position.
iterator != NULL
|
|
Get the metadata block at the current position. You can modify the block in place but must write the chain before the changes are reflected to the FLAC file. You do not need to call FLAC__metadata_iterator_set_block() to reflect the changes; the pointer returned by FLAC__metadata_iterator_get_block() points directly into the chain.
iterator != NULL
|
|
Set the metadata block at the current position, replacing the existing block. The new block passed in becomes owned by the chain and it will be deleted when the chain is deleted.
iterator != NULL block != NULL
|
|
Removes the current block from the chain. If replace_with_padding is
iterator != NULL
|
|
Insert a new block before the current block. You cannot insert a block before the first STREAMINFO block. You cannot insert a STREAMINFO block as there can be only one, the one that already exists at the head when you read in a chain. The chain takes ownership of the new block and it will be deleted when the chain is deleted. The iterator will be left pointing to the new block.
iterator != NULL
|
|
Insert a new block after the current block. You cannot insert a STREAMINFO block as there can be only one, the one that already exists at the head when you read in a chain. The chain takes ownership of the new block and it will be deleted when the chain is deleted. The iterator will be left pointing to the new block.
iterator != NULL
|
|
Maps a FLAC__Metadata_ChainStatus to a C string. Using a FLAC__Metadata_ChainStatus as the index to this array will give the string equivalent. The contents should not be modified. |