The general usage of this interface is:
Do not modify the is_last, length, or type fields of returned FLAC__StreamMetadata objects. These are managed automatically.
If any of the modification functions (FLAC__metadata_simple_iterator_set_block(), FLAC__metadata_simple_iterator_delete_block(), FLAC__metadata_simple_iterator_insert_block_after(), etc.) return false
, you should delete the iterator as it may no longer be valid.
|
The opaque structure definition for the level 1 iterator type. See the metadata level 1 module for a detailed description. |
|
Status type for FLAC__Metadata_SimpleIterator. The iterator's current status can be obtained by calling FLAC__metadata_simple_iterator_status().
|
|
Create a new iterator instance.
|
|
Free an iterator instance. Deletes the object pointed to by iterator.
|
|
Get the current status of the iterator. Call this after a function returns
|
|
Initialize the iterator to point to the first metadata block in the given FLAC file.
|
|
Returns
|
|
Moves the iterator forward one metadata block, returning
|
|
Moves the iterator backward one metadata block, returning
|
|
Returns a flag telling if the current metadata block is the last.
|
|
Get the offset of the metadata block at the current position. This avoids reading the actual block data which can save time for large blocks.
|
|
Get the type of the metadata block at the current position. This avoids reading the actual block data which can save time for large blocks.
|
|
Get the length of the metadata block at the current position. This avoids reading the actual block data which can save time for large blocks.
|
|
Get the application ID of the
|
|
Get the metadata block at the current position. You can modify the block but must use FLAC__metadata_simple_iterator_set_block() to write it back to the FLAC file. You must call FLAC__metadata_object_delete() on the returned object when you are finished with it.
|
|
Write a block back to the FLAC file. This function tries to be as efficient as possible; how the block is actually written is shown by the following: Existing block is a STREAMINFO block and the new block is a STREAMINFO block: the new block is written in place. Make sure you know what you're doing when changing the values of a STREAMINFO block.
Existing block is a STREAMINFO block and the new block is a not a STREAMINFO block: this is an error since the first block must be a STREAMINFO block. Returns
Existing block is not a STREAMINFO block and the new block is a STREAMINFO block: this is an error since there may be only one STREAMINFO block. Returns Existing block and new block are the same length: the existing block will be replaced by the new block, written in place.
Existing block is longer than new block: if use_padding is
Existing block is shorter than new block: if use_padding is After writing the block, the iterator will remain in the same place, i.e. pointing to the new block.
|
|
This is similar to FLAC__metadata_simple_iterator_set_block() except that instead of writing over an existing block, it appends a block after the existing block. use_padding is again used to tell the function to try an expand into following padding in an attempt to avoid rewriting the entire file.
This function will fail and return After writing the block, the iterator will be pointing to the new block.
|
|
Deletes the block at the current position. This will cause the entire FLAC file to be rewritten, unless use_padding is You may not delete the STREAMINFO block.
|
|
Maps a FLAC__Metadata_SimpleIteratorStatus to a C string. Using a FLAC__Metadata_SimpleIteratorStatus as the index to this array will give the string equivalent. The contents should not be modified. |