1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>FLAC/metadata.h: metadata level 2 interface</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
<!-- Generated by Doxygen 1.2.14 -->
8
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center>
9
<hr><h1>FLAC/metadata.h: metadata level 2 interface<br>
11
[<a class="el" href="group__flac__metadata.html">FLAC/metadata.h: metadata interfaces</a>]</small>
12
</h1>The level 2 interface provides read-write access to FLAC file metadata; all metadata is read into memory, operated on in memory, and then written to file, which is more efficient than level 1 when editing multiple blocks.
13
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
14
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
15
<tr><td nowrap align=right valign=top>typedef FLAC__Metadata_Chain </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a></td></tr>
16
<tr><td nowrap align=right valign=top>typedef FLAC__Metadata_Iterator </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a></td></tr>
17
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
18
<tr><td nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a21">FLAC__Metadata_ChainStatus</a> { <br>
19
<a class="el" href="group__flac__metadata__level2.html#a21a18">FLAC__METADATA_CHAIN_STATUS_OK</a> = 0,
20
<a class="el" href="group__flac__metadata__level2.html#a21a19">FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT</a>,
21
<a class="el" href="group__flac__metadata__level2.html#a21a20">FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE</a>,
22
<a class="el" href="group__flac__metadata__level2.html#a21a21">FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE</a>,
24
<a class="el" href="group__flac__metadata__level2.html#a21a22">FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE</a>,
25
<a class="el" href="group__flac__metadata__level2.html#a21a23">FLAC__METADATA_CHAIN_STATUS_BAD_METADATA</a>,
26
<a class="el" href="group__flac__metadata__level2.html#a21a24">FLAC__METADATA_CHAIN_STATUS_READ_ERROR</a>,
27
<a class="el" href="group__flac__metadata__level2.html#a21a25">FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR</a>,
29
<a class="el" href="group__flac__metadata__level2.html#a21a26">FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR</a>,
30
<a class="el" href="group__flac__metadata__level2.html#a21a27">FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR</a>,
31
<a class="el" href="group__flac__metadata__level2.html#a21a28">FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR</a>,
32
<a class="el" href="group__flac__metadata__level2.html#a21a29">FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR</a>,
34
<a class="el" href="group__flac__metadata__level2.html#a21a30">FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR</a>
37
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
38
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a3">FLAC__metadata_chain_new</a> ()</td></tr>
39
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a4">FLAC__metadata_chain_delete</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain)</td></tr>
40
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__metadata__level2.html#a21">FLAC__Metadata_ChainStatus</a> </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a5">FLAC__metadata_chain_status</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain)</td></tr>
41
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a6">FLAC__metadata_chain_read</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain, const char *filename)</td></tr>
42
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a7">FLAC__metadata_chain_write</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats)</td></tr>
43
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a8">FLAC__metadata_chain_merge_padding</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain)</td></tr>
44
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a9">FLAC__metadata_chain_sort_padding</a> (<a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain)</td></tr>
45
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a10">FLAC__metadata_iterator_new</a> ()</td></tr>
46
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a11">FLAC__metadata_iterator_delete</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator)</td></tr>
47
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator, <a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> *chain)</td></tr>
48
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a13">FLAC__metadata_iterator_next</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator)</td></tr>
49
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a14">FLAC__metadata_iterator_prev</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator)</td></tr>
50
<tr><td nowrap align=right valign=top><a class="el" href="group__flac__format.html#a93">FLAC__MetadataType</a> </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a15">FLAC__metadata_iterator_get_block_type</a> (const <a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator)</td></tr>
51
<tr><td nowrap align=right valign=top><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a16">FLAC__metadata_iterator_get_block</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator)</td></tr>
52
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a17">FLAC__metadata_iterator_set_block</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator, <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block)</td></tr>
53
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a18">FLAC__metadata_iterator_delete_block</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator, FLAC__bool replace_with_padding)</td></tr>
54
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a19">FLAC__metadata_iterator_insert_block_before</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator, <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block)</td></tr>
55
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a20">FLAC__metadata_iterator_insert_block_after</a> (<a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> *iterator, <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block)</td></tr>
56
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
57
<tr><td nowrap align=right valign=top>const char *const </td><td valign=bottom><a class="el" href="group__flac__metadata__level2.html#a2">FLAC__Metadata_ChainStatusString</a> []</td></tr>
59
<hr><a name="_details"></a><h2>Detailed Description</h2>
60
The level 2 interface provides read-write access to FLAC file metadata; all metadata is read into memory, operated on in memory, and then written to file, which is more efficient than level 1 when editing multiple blocks.
64
The general usage of this interface is:
67
<li>Create a new chain using <a class="el" href="group__flac__metadata__level2.html#a3">FLAC__metadata_chain_new</a>(). A chain is a linked list of FLAC metadata blocks.<li>Read all metadata into the the chain from a FLAC file using <a class="el" href="group__flac__metadata__level2.html#a6">FLAC__metadata_chain_read</a>() and check the status.<li>Optionally, consolidate the padding using <a class="el" href="group__flac__metadata__level2.html#a8">FLAC__metadata_chain_merge_padding</a>() or <a class="el" href="group__flac__metadata__level2.html#a9">FLAC__metadata_chain_sort_padding</a>().<li>Create a new iterator using <a class="el" href="group__flac__metadata__level2.html#a10">FLAC__metadata_iterator_new</a>()<li>Initialize the iterator to point to the first element in the chain using <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>()<li>Traverse the chain using FLAC__metadata_iterator_next and <a class="el" href="group__flac__metadata__level2.html#a14">FLAC__metadata_iterator_prev</a>().<li>Get a block for reading or modification using <a class="el" href="group__flac__metadata__level2.html#a16">FLAC__metadata_iterator_get_block</a>(). The pointer to the object inside the chain is returned, so the block is yours to modify. Changes will be reflected in the FLAC file when you write the chain. You can also add and delete blocks (see functions below).<li>When done, write out the chain using <a class="el" href="group__flac__metadata__level2.html#a7">FLAC__metadata_chain_write</a>(). Make sure to read the whole comment to the function below.<li>Delete the chain using <a class="el" href="group__flac__metadata__level2.html#a4">FLAC__metadata_chain_delete</a>().</ul>
70
Even though the FLAC file is not open while the chain is being manipulated, you must not alter the file externally during this time. The chain assumes the FLAC file will not change between the time of <a class="el" href="group__flac__metadata__level2.html#a6">FLAC__metadata_chain_read</a>() and <a class="el" href="group__flac__metadata__level2.html#a7">FLAC__metadata_chain_write</a>().</dl><dl compact><dt><b>
72
Do not modify the is_last, length, or type fields of returned FLAC__MetadataType objects. These are managed automatically.</dl><dl compact><dt><b>
74
The metadata objects returned by <a class="el" href="group__flac__metadata__level2.html#a16">FLAC__metadata_iterator_get_block</a>() are owned by the chain; do not <a class="el" href="group__flac__metadata__object.html#a2">FLAC__metadata_object_delete</a>() them. In the same way, blocks passed to <a class="el" href="group__flac__metadata__level2.html#a17">FLAC__metadata_iterator_set_block</a>() become owned by the chain and they will be deleted when the chain is deleted. </dl><hr><h2>Typedef Documentation</h2>
75
<a name="a0" doxytag="metadata.h::FLAC__Metadata_Chain"></a><p>
76
<table width="100%" cellpadding="2" cellspacing="0" border="0">
79
<table cellpadding="0" cellspacing="0" border="0">
81
<td class="md" nowrap valign="top"> typedef struct FLAC__Metadata_Chain FLAC__Metadata_Chain
86
<table cellspacing=5 cellpadding=0 border=0>
94
The opaque structure definition for the level 2 chain type. </td>
97
<a name="a1" doxytag="metadata.h::FLAC__Metadata_Iterator"></a><p>
98
<table width="100%" cellpadding="2" cellspacing="0" border="0">
101
<table cellpadding="0" cellspacing="0" border="0">
103
<td class="md" nowrap valign="top"> typedef struct FLAC__Metadata_Iterator FLAC__Metadata_Iterator
108
<table cellspacing=5 cellpadding=0 border=0>
116
The opaque structure definition for the level 2 iterator type. </td>
119
<hr><h2>Enumeration Type Documentation</h2>
120
<a name="a21" doxytag="metadata.h::FLAC__Metadata_ChainStatus"></a><p>
121
<table width="100%" cellpadding="2" cellspacing="0" border="0">
124
<table cellpadding="0" cellspacing="0" border="0">
126
<td class="md" nowrap valign="top"> enum FLAC__Metadata_ChainStatus
131
<table cellspacing=5 cellpadding=0 border=0>
140
Enumeration values:</b><dd>
141
<table border=0 cellspacing=2 cellpadding=0>
142
<tr><td valign=top><em><a name="a21a18" doxytag="FLAC__METADATA_CHAIN_STATUS_OK"></a><em>FLAC__METADATA_CHAIN_STATUS_OK</em></em> </td><td>
143
The chain is in the normal OK state </td></tr>
144
<tr><td valign=top><em><a name="a21a19" doxytag="FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT"></a><em>FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT</em></em> </td><td>
145
The data passed into a function violated the function's usage criteria </td></tr>
146
<tr><td valign=top><em><a name="a21a20" doxytag="FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE"></a><em>FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE</em></em> </td><td>
147
The chain could not open the target file </td></tr>
148
<tr><td valign=top><em><a name="a21a21" doxytag="FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE"></a><em>FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE</em></em> </td><td>
149
The chain could not find the FLAC signature at the start of the file </td></tr>
150
<tr><td valign=top><em><a name="a21a22" doxytag="FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE"></a><em>FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE</em></em> </td><td>
151
The chain tried to write to a file that was not writable </td></tr>
152
<tr><td valign=top><em><a name="a21a23" doxytag="FLAC__METADATA_CHAIN_STATUS_BAD_METADATA"></a><em>FLAC__METADATA_CHAIN_STATUS_BAD_METADATA</em></em> </td><td>
153
The chain encountered input that does not conform to the FLAC metadata specification </td></tr>
154
<tr><td valign=top><em><a name="a21a24" doxytag="FLAC__METADATA_CHAIN_STATUS_READ_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_READ_ERROR</em></em> </td><td>
155
The chain encountered an error while reading the FLAC file </td></tr>
156
<tr><td valign=top><em><a name="a21a25" doxytag="FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR</em></em> </td><td>
157
The chain encountered an error while seeking in the FLAC file </td></tr>
158
<tr><td valign=top><em><a name="a21a26" doxytag="FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR</em></em> </td><td>
159
The chain encountered an error while writing the FLAC file </td></tr>
160
<tr><td valign=top><em><a name="a21a27" doxytag="FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR</em></em> </td><td>
161
The chain encountered an error renaming the FLAC file </td></tr>
162
<tr><td valign=top><em><a name="a21a28" doxytag="FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR</em></em> </td><td>
163
The chain encountered an error removing the temporary file </td></tr>
164
<tr><td valign=top><em><a name="a21a29" doxytag="FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR</em></em> </td><td>
165
Memory allocation failed </td></tr>
166
<tr><td valign=top><em><a name="a21a30" doxytag="FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR"></a><em>FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR</em></em> </td><td>
167
The caller violated an assertion or an unexpected error occurred </td></tr>
173
<hr><h2>Function Documentation</h2>
174
<a name="a3" doxytag="metadata.h::FLAC__metadata_chain_new"></a><p>
175
<table width="100%" cellpadding="2" cellspacing="0" border="0">
178
<table cellpadding="0" cellspacing="0" border="0">
180
<td class="md" nowrap valign="top"> <a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a>* FLAC__metadata_chain_new </td>
181
<td class="md" valign="top">( </td>
182
<td class="mdname1" valign="top" nowrap> </td>
183
<td class="md" valign="top">) </td>
184
<td class="md" nowrap></td>
191
<table cellspacing=5 cellpadding=0 border=0>
199
Create a new chain instance.<dl compact><dt><b>
200
Return values: </b><dd>
201
<table border=0 cellspacing=2 cellpadding=0>
202
<tr><td valign=top><em>FLAC__Metadata_Chain</em> </td><td>
203
* <code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
208
<a name="a4" doxytag="metadata.h::FLAC__metadata_chain_delete"></a><p>
209
<table width="100%" cellpadding="2" cellspacing="0" border="0">
212
<table cellpadding="0" cellspacing="0" border="0">
214
<td class="md" nowrap valign="top"> void FLAC__metadata_chain_delete </td>
215
<td class="md" valign="top">( </td>
216
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
217
<td class="mdname1" valign="top" nowrap> <em>chain</em> </td>
218
<td class="md" valign="top">) </td>
219
<td class="md" nowrap></td>
226
<table cellspacing=5 cellpadding=0 border=0>
234
Free a chain instance. Deletes the object pointed to by <em>chain</em>.<dl compact><dt><b>
236
<table border=0 cellspacing=2 cellpadding=0>
237
<tr><td valign=top><em>chain</em> </td><td>
238
A pointer to an existing chain. </td></tr>
240
</dl><dl compact><dt><b>
242
<div class="fragment"><pre>chain != NULL
243
</pre></div> </dl> </td>
246
<a name="a5" doxytag="metadata.h::FLAC__metadata_chain_status"></a><p>
247
<table width="100%" cellpadding="2" cellspacing="0" border="0">
250
<table cellpadding="0" cellspacing="0" border="0">
252
<td class="md" nowrap valign="top"> <a class="el" href="group__flac__metadata__level2.html#a21">FLAC__Metadata_ChainStatus</a> FLAC__metadata_chain_status </td>
253
<td class="md" valign="top">( </td>
254
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
255
<td class="mdname1" valign="top" nowrap> <em>chain</em> </td>
256
<td class="md" valign="top">) </td>
257
<td class="md" nowrap></td>
264
<table cellspacing=5 cellpadding=0 border=0>
272
Get the current status of the chain. Call this after a function returns <code>false</code> to get the reason for the error. Also resets the status to FLAC__METADATA_CHAIN_STATUS_OK.<dl compact><dt><b>
274
<table border=0 cellspacing=2 cellpadding=0>
275
<tr><td valign=top><em>chain</em> </td><td>
276
A pointer to an existing chain. </td></tr>
278
</dl><dl compact><dt><b>
280
<div class="fragment"><pre>chain != NULL
281
</pre></div> </dl><dl compact><dt><b>
282
Return values: </b><dd>
283
<table border=0 cellspacing=2 cellpadding=0>
284
<tr><td valign=top><em>FLAC__Metadata_ChainStatus</em> </td><td>
285
The current status of the chain. </td></tr>
290
<a name="a6" doxytag="metadata.h::FLAC__metadata_chain_read"></a><p>
291
<table width="100%" cellpadding="2" cellspacing="0" border="0">
294
<table cellpadding="0" cellspacing="0" border="0">
296
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_chain_read </td>
297
<td class="md" valign="top">( </td>
298
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
299
<td class="mdname" nowrap> <em>chain</em>, </td>
304
<td class="md" nowrap>const char * </td>
305
<td class="mdname" nowrap> <em>filename</em></td>
309
<td class="md">) </td>
310
<td class="md" colspan="2"></td>
317
<table cellspacing=5 cellpadding=0 border=0>
325
Read all metadata from a FLAC file into the chain.<dl compact><dt><b>
327
<table border=0 cellspacing=2 cellpadding=0>
328
<tr><td valign=top><em>chain</em> </td><td>
329
A pointer to an existing chain. </td></tr>
330
<tr><td valign=top><em>filename</em> </td><td>
331
The path to the FLAC file to read. </td></tr>
333
</dl><dl compact><dt><b>
335
<div class="fragment"><pre>chain != NULL
336
</pre></div> <div class="fragment"><pre>filename != NULL
337
</pre></div> </dl><dl compact><dt><b>
338
Return values: </b><dd>
339
<table border=0 cellspacing=2 cellpadding=0>
340
<tr><td valign=top><em>FLAC__bool</em> </td><td>
341
<code>true</code> if a valid list of metadata blocks was read from <em>filename</em>, else <code>false</code>. On failure, check the status with <a class="el" href="group__flac__metadata__level2.html#a5">FLAC__metadata_chain_status</a>(). </td></tr>
346
<a name="a7" doxytag="metadata.h::FLAC__metadata_chain_write"></a><p>
347
<table width="100%" cellpadding="2" cellspacing="0" border="0">
350
<table cellpadding="0" cellspacing="0" border="0">
352
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_chain_write </td>
353
<td class="md" valign="top">( </td>
354
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
355
<td class="mdname" nowrap> <em>chain</em>, </td>
360
<td class="md" nowrap>FLAC__bool </td>
361
<td class="mdname" nowrap> <em>use_padding</em>, </td>
366
<td class="md" nowrap>FLAC__bool </td>
367
<td class="mdname" nowrap> <em>preserve_file_stats</em></td>
371
<td class="md">) </td>
372
<td class="md" colspan="2"></td>
379
<table cellspacing=5 cellpadding=0 border=0>
387
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:
389
If the current chain is the same size as the existing metadata, the new data is written in place.
391
If the current chain is longer than the existing metadata, and <em>use_padding</em> is <code>true</code>, and the last block is a PADDING block of sufficient length, the function will truncate the final padding block so that the overall size of the metadata is the same as the existing metadata, and then just rewrite the metadata. Otherwise, if not all of the above conditions are met, the entire FLAC file must be rewritten. If you want to use padding this way it is a good idea to call <a class="el" href="group__flac__metadata__level2.html#a9">FLAC__metadata_chain_sort_padding</a>() first so that you have the maximum amount of padding to work with, unless you need to preserve ordering of the PADDING blocks for some reason.
393
If the current chain is shorter than the existing metadata, and <em>use_padding</em> is <code>true</code>, and the final block is a PADDING block, the padding is extended to make the overall size the same as the existing data. If <em>use_padding</em> is <code>true</code> and the last block is not a PADDING block, a new PADDING block is added to the end of the new data to make it the same size as the existing data (if possible, see the note to <a class="el" href="group__flac__metadata__level1.html#a11">FLAC__metadata_simple_iterator_set_block</a>() about the four byte limit) and the new data is written in place. If none of the above apply or <em>use_padding</em> is <code>false</code>, the entire FLAC file is rewritten.
395
If <em>preserve_file_stats</em> is <code>true</code>, the owner and modification time will be preserved even if the FLAC file is written.<dl compact><dt><b>
397
<table border=0 cellspacing=2 cellpadding=0>
398
<tr><td valign=top><em>chain</em> </td><td>
399
A pointer to an existing chain. </td></tr>
400
<tr><td valign=top><em>use_padding</em> </td><td>
401
See above. </td></tr>
402
<tr><td valign=top><em>preserve_file_stats</em> </td><td>
403
See above. </td></tr>
405
</dl><dl compact><dt><b>
407
<div class="fragment"><pre>chain != NULL
408
</pre></div> </dl><dl compact><dt><b>
409
Return values: </b><dd>
410
<table border=0 cellspacing=2 cellpadding=0>
411
<tr><td valign=top><em>FLAC__bool</em> </td><td>
412
<code>true</code> if the write succeeded, else <code>false</code>. On failure, check the status with <a class="el" href="group__flac__metadata__level2.html#a5">FLAC__metadata_chain_status</a>(). </td></tr>
417
<a name="a8" doxytag="metadata.h::FLAC__metadata_chain_merge_padding"></a><p>
418
<table width="100%" cellpadding="2" cellspacing="0" border="0">
421
<table cellpadding="0" cellspacing="0" border="0">
423
<td class="md" nowrap valign="top"> void FLAC__metadata_chain_merge_padding </td>
424
<td class="md" valign="top">( </td>
425
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
426
<td class="mdname1" valign="top" nowrap> <em>chain</em> </td>
427
<td class="md" valign="top">) </td>
428
<td class="md" nowrap></td>
435
<table cellspacing=5 cellpadding=0 border=0>
443
Merge adjacent PADDING blocks into a single block.
447
This function does not write to the FLAC file, it only modifies the chain.</dl><dl compact><dt><b>
449
Any iterator on the current chain will become invalid after this call. You should delete the iterator and get a new one.</dl><dl compact><dt><b>
451
<table border=0 cellspacing=2 cellpadding=0>
452
<tr><td valign=top><em>chain</em> </td><td>
453
A pointer to an existing chain. </td></tr>
455
</dl><dl compact><dt><b>
457
<div class="fragment"><pre>chain != NULL
458
</pre></div> </dl> </td>
461
<a name="a9" doxytag="metadata.h::FLAC__metadata_chain_sort_padding"></a><p>
462
<table width="100%" cellpadding="2" cellspacing="0" border="0">
465
<table cellpadding="0" cellspacing="0" border="0">
467
<td class="md" nowrap valign="top"> void FLAC__metadata_chain_sort_padding </td>
468
<td class="md" valign="top">( </td>
469
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
470
<td class="mdname1" valign="top" nowrap> <em>chain</em> </td>
471
<td class="md" valign="top">) </td>
472
<td class="md" nowrap></td>
479
<table cellspacing=5 cellpadding=0 border=0>
487
This function will move all PADDING blocks to the end on the metadata, then merge them into a single block.
491
This function does not write to the FLAC file, it only modifies the chain.</dl><dl compact><dt><b>
493
Any iterator on the current chain will become invalid after this call. You should delete the iterator and get a new one.</dl><dl compact><dt><b>
495
<table border=0 cellspacing=2 cellpadding=0>
496
<tr><td valign=top><em>chain</em> </td><td>
497
A pointer to an existing chain. </td></tr>
499
</dl><dl compact><dt><b>
501
<div class="fragment"><pre>chain != NULL
502
</pre></div> </dl> </td>
505
<a name="a10" doxytag="metadata.h::FLAC__metadata_iterator_new"></a><p>
506
<table width="100%" cellpadding="2" cellspacing="0" border="0">
509
<table cellpadding="0" cellspacing="0" border="0">
511
<td class="md" nowrap valign="top"> <a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a>* FLAC__metadata_iterator_new </td>
512
<td class="md" valign="top">( </td>
513
<td class="mdname1" valign="top" nowrap> </td>
514
<td class="md" valign="top">) </td>
515
<td class="md" nowrap></td>
522
<table cellspacing=5 cellpadding=0 border=0>
530
Create a new iterator instance.<dl compact><dt><b>
531
Return values: </b><dd>
532
<table border=0 cellspacing=2 cellpadding=0>
533
<tr><td valign=top><em>FLAC__Metadata_Iterator</em> </td><td>
534
* <code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
539
<a name="a11" doxytag="metadata.h::FLAC__metadata_iterator_delete"></a><p>
540
<table width="100%" cellpadding="2" cellspacing="0" border="0">
543
<table cellpadding="0" cellspacing="0" border="0">
545
<td class="md" nowrap valign="top"> void FLAC__metadata_iterator_delete </td>
546
<td class="md" valign="top">( </td>
547
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
548
<td class="mdname1" valign="top" nowrap> <em>iterator</em> </td>
549
<td class="md" valign="top">) </td>
550
<td class="md" nowrap></td>
557
<table cellspacing=5 cellpadding=0 border=0>
565
Free an iterator instance. Deletes the object pointed to by <em>iterator</em>.<dl compact><dt><b>
567
<table border=0 cellspacing=2 cellpadding=0>
568
<tr><td valign=top><em>iterator</em> </td><td>
569
A pointer to an existing iterator. </td></tr>
571
</dl><dl compact><dt><b>
573
<div class="fragment"><pre>iterator != NULL
574
</pre></div> </dl> </td>
577
<a name="a12" doxytag="metadata.h::FLAC__metadata_iterator_init"></a><p>
578
<table width="100%" cellpadding="2" cellspacing="0" border="0">
581
<table cellpadding="0" cellspacing="0" border="0">
583
<td class="md" nowrap valign="top"> void FLAC__metadata_iterator_init </td>
584
<td class="md" valign="top">( </td>
585
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
586
<td class="mdname" nowrap> <em>iterator</em>, </td>
591
<td class="md" nowrap><a class="el" href="group__flac__metadata__level2.html#a0">FLAC__Metadata_Chain</a> * </td>
592
<td class="mdname" nowrap> <em>chain</em></td>
596
<td class="md">) </td>
597
<td class="md" colspan="2"></td>
604
<table cellspacing=5 cellpadding=0 border=0>
612
Initialize the iterator to point to the first metadata block in the given chain.<dl compact><dt><b>
614
<table border=0 cellspacing=2 cellpadding=0>
615
<tr><td valign=top><em>iterator</em> </td><td>
616
A pointer to an existing iterator. </td></tr>
617
<tr><td valign=top><em>chain</em> </td><td>
618
A pointer to an existing and initialized (read) chain. </td></tr>
620
</dl><dl compact><dt><b>
622
<div class="fragment"><pre>iterator != NULL
623
</pre></div> <div class="fragment"><pre>chain != NULL
624
</pre></div> </dl> </td>
627
<a name="a13" doxytag="metadata.h::FLAC__metadata_iterator_next"></a><p>
628
<table width="100%" cellpadding="2" cellspacing="0" border="0">
631
<table cellpadding="0" cellspacing="0" border="0">
633
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_next </td>
634
<td class="md" valign="top">( </td>
635
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
636
<td class="mdname1" valign="top" nowrap> <em>iterator</em> </td>
637
<td class="md" valign="top">) </td>
638
<td class="md" nowrap></td>
645
<table cellspacing=5 cellpadding=0 border=0>
653
Moves the iterator forward one metadata block, returning <code>false</code> if already at the end.<dl compact><dt><b>
655
<table border=0 cellspacing=2 cellpadding=0>
656
<tr><td valign=top><em>iterator</em> </td><td>
657
A pointer to an existing initialized iterator. </td></tr>
659
</dl><dl compact><dt><b>
661
<div class="fragment"><pre>iterator != NULL
662
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
663
Return values: </b><dd>
664
<table border=0 cellspacing=2 cellpadding=0>
665
<tr><td valign=top><em>FLAC__bool</em> </td><td>
666
<code>false</code> if already at the last metadata block of the chain, else <code>true</code>. </td></tr>
671
<a name="a14" doxytag="metadata.h::FLAC__metadata_iterator_prev"></a><p>
672
<table width="100%" cellpadding="2" cellspacing="0" border="0">
675
<table cellpadding="0" cellspacing="0" border="0">
677
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_prev </td>
678
<td class="md" valign="top">( </td>
679
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
680
<td class="mdname1" valign="top" nowrap> <em>iterator</em> </td>
681
<td class="md" valign="top">) </td>
682
<td class="md" nowrap></td>
689
<table cellspacing=5 cellpadding=0 border=0>
697
Moves the iterator backward one metadata block, returning <code>false</code> if already at the beginning.<dl compact><dt><b>
699
<table border=0 cellspacing=2 cellpadding=0>
700
<tr><td valign=top><em>iterator</em> </td><td>
701
A pointer to an existing initialized iterator. </td></tr>
703
</dl><dl compact><dt><b>
705
<div class="fragment"><pre>iterator != NULL
706
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
707
Return values: </b><dd>
708
<table border=0 cellspacing=2 cellpadding=0>
709
<tr><td valign=top><em>FLAC__bool</em> </td><td>
710
<code>false</code> if already at the first metadata block of the chain, else <code>true</code>. </td></tr>
715
<a name="a15" doxytag="metadata.h::FLAC__metadata_iterator_get_block_type"></a><p>
716
<table width="100%" cellpadding="2" cellspacing="0" border="0">
719
<table cellpadding="0" cellspacing="0" border="0">
721
<td class="md" nowrap valign="top"> <a class="el" href="group__flac__format.html#a93">FLAC__MetadataType</a> FLAC__metadata_iterator_get_block_type </td>
722
<td class="md" valign="top">( </td>
723
<td class="md" nowrap valign="top">const <a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
724
<td class="mdname1" valign="top" nowrap> <em>iterator</em> </td>
725
<td class="md" valign="top">) </td>
726
<td class="md" nowrap></td>
733
<table cellspacing=5 cellpadding=0 border=0>
741
Get the type of the metadata block at the current position.<dl compact><dt><b>
743
<table border=0 cellspacing=2 cellpadding=0>
744
<tr><td valign=top><em>iterator</em> </td><td>
745
A pointer to an existing initialized iterator. </td></tr>
747
</dl><dl compact><dt><b>
749
<div class="fragment"><pre>iterator != NULL
750
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
751
Return values: </b><dd>
752
<table border=0 cellspacing=2 cellpadding=0>
753
<tr><td valign=top><em>FLAC__MetadataType</em> </td><td>
754
The type of the metadata block at the current iterator position. </td></tr>
759
<a name="a16" doxytag="metadata.h::FLAC__metadata_iterator_get_block"></a><p>
760
<table width="100%" cellpadding="2" cellspacing="0" border="0">
763
<table cellpadding="0" cellspacing="0" border="0">
765
<td class="md" nowrap valign="top"> <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* FLAC__metadata_iterator_get_block </td>
766
<td class="md" valign="top">( </td>
767
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
768
<td class="mdname1" valign="top" nowrap> <em>iterator</em> </td>
769
<td class="md" valign="top">) </td>
770
<td class="md" nowrap></td>
777
<table cellspacing=5 cellpadding=0 border=0>
785
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 <a class="el" href="group__flac__metadata__level2.html#a17">FLAC__metadata_iterator_set_block</a>() to reflect the changes; the pointer returned by <a class="el" href="group__flac__metadata__level2.html#a16">FLAC__metadata_iterator_get_block</a>() points directly into the chain.
789
Do not call <a class="el" href="group__flac__metadata__object.html#a2">FLAC__metadata_object_delete</a>() on the returned object; to delete a block use <a class="el" href="group__flac__metadata__level2.html#a18">FLAC__metadata_iterator_delete_block</a>().</dl><dl compact><dt><b>
791
<table border=0 cellspacing=2 cellpadding=0>
792
<tr><td valign=top><em>iterator</em> </td><td>
793
A pointer to an existing initialized iterator. </td></tr>
795
</dl><dl compact><dt><b>
797
<div class="fragment"><pre>iterator != NULL
798
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
799
Return values: </b><dd>
800
<table border=0 cellspacing=2 cellpadding=0>
801
<tr><td valign=top><em><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a></em> </td><td>
802
* The current metadata block. </td></tr>
807
<a name="a17" doxytag="metadata.h::FLAC__metadata_iterator_set_block"></a><p>
808
<table width="100%" cellpadding="2" cellspacing="0" border="0">
811
<table cellpadding="0" cellspacing="0" border="0">
813
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_set_block </td>
814
<td class="md" valign="top">( </td>
815
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
816
<td class="mdname" nowrap> <em>iterator</em>, </td>
821
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
822
<td class="mdname" nowrap> <em>block</em></td>
826
<td class="md">) </td>
827
<td class="md" colspan="2"></td>
834
<table cellspacing=5 cellpadding=0 border=0>
842
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.<dl compact><dt><b>
844
<table border=0 cellspacing=2 cellpadding=0>
845
<tr><td valign=top><em>iterator</em> </td><td>
846
A pointer to an existing initialized iterator. </td></tr>
847
<tr><td valign=top><em>block</em> </td><td>
848
A pointer to a metadata block. </td></tr>
850
</dl><dl compact><dt><b>
852
<div class="fragment"><pre>iterator != NULL
853
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() <div class="fragment"><pre>block != NULL
854
</pre></div> </dl><dl compact><dt><b>
855
Return values: </b><dd>
856
<table border=0 cellspacing=2 cellpadding=0>
857
<tr><td valign=top><em>FLAC__bool</em> </td><td>
858
<code>false</code> if the conditions in the above description are not met, or a memory allocation error occurs, otherwise <code>true</code>. </td></tr>
863
<a name="a18" doxytag="metadata.h::FLAC__metadata_iterator_delete_block"></a><p>
864
<table width="100%" cellpadding="2" cellspacing="0" border="0">
867
<table cellpadding="0" cellspacing="0" border="0">
869
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_delete_block </td>
870
<td class="md" valign="top">( </td>
871
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
872
<td class="mdname" nowrap> <em>iterator</em>, </td>
877
<td class="md" nowrap>FLAC__bool </td>
878
<td class="mdname" nowrap> <em>replace_with_padding</em></td>
882
<td class="md">) </td>
883
<td class="md" colspan="2"></td>
890
<table cellspacing=5 cellpadding=0 border=0>
898
Removes the current block from the chain. If <em>replace_with_padding</em> is <code>true</code>, the block will instead be replaced with a padding block of equal size. You can not delete the STREAMINFO block. The iterator will be left pointing to the block before the one just "deleted", even if <em>replace_with_padding</em> is <code>true</code>.<dl compact><dt><b>
900
<table border=0 cellspacing=2 cellpadding=0>
901
<tr><td valign=top><em>iterator</em> </td><td>
902
A pointer to an existing initialized iterator. </td></tr>
903
<tr><td valign=top><em>replace_with_padding</em> </td><td>
904
See above. </td></tr>
906
</dl><dl compact><dt><b>
908
<div class="fragment"><pre>iterator != NULL
909
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
910
Return values: </b><dd>
911
<table border=0 cellspacing=2 cellpadding=0>
912
<tr><td valign=top><em>FLAC__bool</em> </td><td>
913
<code>false</code> if the conditions in the above description are not met, otherwise <code>true</code>. </td></tr>
918
<a name="a19" doxytag="metadata.h::FLAC__metadata_iterator_insert_block_before"></a><p>
919
<table width="100%" cellpadding="2" cellspacing="0" border="0">
922
<table cellpadding="0" cellspacing="0" border="0">
924
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_insert_block_before </td>
925
<td class="md" valign="top">( </td>
926
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
927
<td class="mdname" nowrap> <em>iterator</em>, </td>
932
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
933
<td class="mdname" nowrap> <em>block</em></td>
937
<td class="md">) </td>
938
<td class="md" colspan="2"></td>
945
<table cellspacing=5 cellpadding=0 border=0>
953
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.<dl compact><dt><b>
955
<table border=0 cellspacing=2 cellpadding=0>
956
<tr><td valign=top><em>iterator</em> </td><td>
957
A pointer to an existing initialized iterator. </td></tr>
958
<tr><td valign=top><em>block</em> </td><td>
959
A pointer to a metadata block to insert. </td></tr>
961
</dl><dl compact><dt><b>
963
<div class="fragment"><pre>iterator != NULL
964
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
965
Return values: </b><dd>
966
<table border=0 cellspacing=2 cellpadding=0>
967
<tr><td valign=top><em>FLAC__bool</em> </td><td>
968
<code>false</code> if the conditions in the above description are not met, or a memory allocation error occurs, otherwise <code>true</code>. </td></tr>
973
<a name="a20" doxytag="metadata.h::FLAC__metadata_iterator_insert_block_after"></a><p>
974
<table width="100%" cellpadding="2" cellspacing="0" border="0">
977
<table cellpadding="0" cellspacing="0" border="0">
979
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_iterator_insert_block_after </td>
980
<td class="md" valign="top">( </td>
981
<td class="md" nowrap valign="top"><a class="el" href="group__flac__metadata__level2.html#a1">FLAC__Metadata_Iterator</a> * </td>
982
<td class="mdname" nowrap> <em>iterator</em>, </td>
987
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
988
<td class="mdname" nowrap> <em>block</em></td>
992
<td class="md">) </td>
993
<td class="md" colspan="2"></td>
1000
<table cellspacing=5 cellpadding=0 border=0>
1008
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.<dl compact><dt><b>
1009
Parameters: </b><dd>
1010
<table border=0 cellspacing=2 cellpadding=0>
1011
<tr><td valign=top><em>iterator</em> </td><td>
1012
A pointer to an existing initialized iterator. </td></tr>
1013
<tr><td valign=top><em>block</em> </td><td>
1014
A pointer to a metadata block to insert. </td></tr>
1016
</dl><dl compact><dt><b>
1018
<div class="fragment"><pre>iterator != NULL
1019
</pre></div> <em>iterator</em> has been successfully initialized with <a class="el" href="group__flac__metadata__level2.html#a12">FLAC__metadata_iterator_init</a>() </dl><dl compact><dt><b>
1020
Return values: </b><dd>
1021
<table border=0 cellspacing=2 cellpadding=0>
1022
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1023
<code>false</code> if the conditions in the above description are not met, or a memory allocation error occurs, otherwise <code>true</code>. </td></tr>
1028
<hr><h2>Variable Documentation</h2>
1029
<a name="a2" doxytag="metadata.h::FLAC__Metadata_ChainStatusString"></a><p>
1030
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1033
<table cellpadding="0" cellspacing="0" border="0">
1035
<td class="md" nowrap valign="top"> const char* const FLAC__Metadata_ChainStatusString[]
1040
<table cellspacing=5 cellpadding=0 border=0>
1048
Maps a FLAC__Metadata_ChainStatus to a C string.
1050
Using a FLAC__Metadata_ChainStatus as the index to this array will give the string equivalent. The contents should not be modified. </td>
1053
<hr><address><small>Generated on Sat Jan 25 10:44:54 2003 for FLAC by
1054
<a href="http://www.doxygen.org/index.html">
1055
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
1056
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
1057
© 1997-2002</small></address>