1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>FLAC/metadata.h: metadata object methods</title>
3
<title>FLAC: FLAC/metadata.h: metadata object methods</title>
4
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 object methods<br>
6
<!-- Generated by Doxygen 1.4.2 -->
7
<div class="qindex"><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">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
8
<h1>FLAC/metadata.h: metadata object methods<br>
11
10
[<a class="el" href="group__flac__metadata.html">FLAC/metadata.h: metadata interfaces</a>]</small>
12
</h1>This module contains methods for manipulating FLAC metadata objects.
13
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
14
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
15
<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__object.html#a0">FLAC__metadata_object_new</a> (<a class="el" href="group__flac__format.html#a97">FLAC__MetadataType</a> type)</td></tr>
16
<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__object.html#a1">FLAC__metadata_object_clone</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
17
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a2">FLAC__metadata_object_delete</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
18
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a3">FLAC__metadata_object_is_equal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block1, const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block2)</td></tr>
19
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a4">FLAC__metadata_object_application_set_data</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__byte *data, unsigned length, FLAC__bool copy)</td></tr>
20
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a5">FLAC__metadata_object_seektable_resize_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_points)</td></tr>
21
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a6">FLAC__metadata_object_seektable_set_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num, <a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> point)</td></tr>
22
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a7">FLAC__metadata_object_seektable_insert_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num, <a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> point)</td></tr>
23
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a8">FLAC__metadata_object_seektable_delete_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num)</td></tr>
24
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a9">FLAC__metadata_object_seektable_is_legal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
25
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a10">FLAC__metadata_object_seektable_template_append_placeholders</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned num)</td></tr>
26
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a11">FLAC__metadata_object_seektable_template_append_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__uint64 sample_number)</td></tr>
27
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a12">FLAC__metadata_object_seektable_template_append_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__uint64 sample_numbers[], unsigned num)</td></tr>
28
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a13">FLAC__metadata_object_seektable_template_append_spaced_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned num, FLAC__uint64 total_samples)</td></tr>
29
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a14">FLAC__metadata_object_seektable_template_sort</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__bool compact)</td></tr>
30
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a15">FLAC__metadata_object_vorbiscomment_set_vendor_string</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
31
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a16">FLAC__metadata_object_vorbiscomment_resize_comments</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_comments)</td></tr>
32
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a17">FLAC__metadata_object_vorbiscomment_set_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
33
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a18">FLAC__metadata_object_vorbiscomment_insert_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
34
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a19">FLAC__metadata_object_vorbiscomment_append_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
35
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a20">FLAC__metadata_object_vorbiscomment_replace_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool all, FLAC__bool copy)</td></tr>
36
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a21">FLAC__metadata_object_vorbiscomment_delete_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num)</td></tr>
37
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a22">FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair</a> (<a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> *entry, const char *field_name, const char *field_value)</td></tr>
38
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a23">FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair</a> (const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, char **field_name, char **field_value)</td></tr>
39
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a24">FLAC__metadata_object_vorbiscomment_entry_matches</a> (const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, const char *field_name, unsigned field_name_length)</td></tr>
40
<tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a25">FLAC__metadata_object_vorbiscomment_find_entry_from</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned offset, const char *field_name)</td></tr>
41
<tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a26">FLAC__metadata_object_vorbiscomment_remove_entry_matching</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, const char *field_name)</td></tr>
42
<tr><td nowrap align=right valign=top>int </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a27">FLAC__metadata_object_vorbiscomment_remove_entries_matching</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, const char *field_name)</td></tr>
43
<tr><td nowrap align=right valign=top><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> * </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a28">FLAC__metadata_object_cuesheet_track_new</a> ()</td></tr>
44
<tr><td nowrap align=right valign=top><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> * </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a29">FLAC__metadata_object_cuesheet_track_clone</a> (const <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *object)</td></tr>
45
<tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a30">FLAC__metadata_object_cuesheet_track_delete</a> (<a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *object)</td></tr>
46
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a31">FLAC__metadata_object_cuesheet_track_resize_indices</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned new_num_indices)</td></tr>
47
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a32">FLAC__metadata_object_cuesheet_track_insert_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num, <a class="el" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> index)</td></tr>
48
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a33">FLAC__metadata_object_cuesheet_track_insert_blank_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num)</td></tr>
49
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a34">FLAC__metadata_object_cuesheet_track_delete_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num)</td></tr>
50
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a35">FLAC__metadata_object_cuesheet_resize_tracks</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_tracks)</td></tr>
51
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a36">FLAC__metadata_object_cuesheet_insert_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *track, FLAC__bool copy)</td></tr>
52
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a37">FLAC__metadata_object_cuesheet_insert_blank_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num)</td></tr>
53
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a38">FLAC__metadata_object_cuesheet_delete_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num)</td></tr>
54
<tr><td nowrap align=right valign=top>FLAC__bool </td><td valign=bottom><a class="el" href="group__flac__metadata__object.html#a39">FLAC__metadata_object_cuesheet_is_legal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__bool check_cd_da_subset, const char **violation)</td></tr>
11
</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
12
This module contains methods for manipulating FLAC metadata objects.
14
Since many are variable length we have to be careful about the memory management. We decree that all pointers to data in the object are owned by the object and memory-managed by the object.<p>
15
Use the <a class="el" href="group__flac__metadata__object.html#ga0">FLAC__metadata_object_new()</a> and <a class="el" href="group__flac__metadata__object.html#ga2">FLAC__metadata_object_delete()</a> functions to create all instances. When using the FLAC__metadata_object_set_*() functions to set pointers to data, set <em>copy</em> to <code>true</code> to have the function make it's own copy of the data, or to <code>false</code> to give the object ownership of your data. In the latter case your pointer must be freeable by free() and will be free()d when the object is <a class="el" href="group__flac__metadata__object.html#ga2">FLAC__metadata_object_delete()</a>d. It is legal to pass a null pointer as the data pointer to a FLAC__metadata_object_set_*() function as long as the length argument is 0 and the <em>copy</em> argument is <code>false</code>.<p>
16
The <a class="el" href="group__flac__metadata__object.html#ga0">FLAC__metadata_object_new()</a> and <a class="el" href="group__flac__metadata__object.html#ga1">FLAC__metadata_object_clone()</a> function will return <code>NULL</code> in the case of a memory allocation error, otherwise a new object. The FLAC__metadata_object_set_*() functions return <code>false</code> in the case of a memory allocation error.<p>
17
We don't have the convenience of C++ here, so note that the library relies on you to keep the types straight. In other words, if you pass, for example, a FLAC__StreamMetadata* that represents a STREAMINFO block to <a class="el" href="group__flac__metadata__object.html#ga4">FLAC__metadata_object_application_set_data()</a>, you will get an assertion failure.<p>
18
For convenience the FLAC__metadata_object_vorbiscomment_*() functions maintain a trailing NUL on each Vorbis comment entry. This is not counted toward the length or stored in the stream, but it can make working with plain comments (those that don't contain embedded-NULs in the value) easier. Entries passed into these functions have trailing NULs added if missing, and returned entries are guaranteed to have a trailing NUL.<p>
19
The FLAC__metadata_object_vorbiscomment_*() functions that take a Vorbis comment entry/name/value will first validate that it complies with the Vorbis comment specification and return false if it does not.<p>
20
There is no need to recalculate the length field on metadata blocks you have modified. They will be calculated automatically before they are written back to a file.
22
<table border="0" cellpadding="0" cellspacing="0">
24
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
25
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga0">FLAC__metadata_object_new</a> (<a class="el" href="group__flac__format.html#ga109">FLAC__MetadataType</a> type)</td></tr>
27
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga1">FLAC__metadata_object_clone</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
29
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga2">FLAC__metadata_object_delete</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
31
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga3">FLAC__metadata_object_is_equal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block1, const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *block2)</td></tr>
33
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga4">FLAC__metadata_object_application_set_data</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__byte *data, unsigned length, FLAC__bool copy)</td></tr>
35
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga5">FLAC__metadata_object_seektable_resize_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_points)</td></tr>
37
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga6">FLAC__metadata_object_seektable_set_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num, <a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> point)</td></tr>
39
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga7">FLAC__metadata_object_seektable_insert_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num, <a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> point)</td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga8">FLAC__metadata_object_seektable_delete_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned point_num)</td></tr>
43
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga9">FLAC__metadata_object_seektable_is_legal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga10">FLAC__metadata_object_seektable_template_append_placeholders</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned num)</td></tr>
47
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga11">FLAC__metadata_object_seektable_template_append_point</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__uint64 sample_number)</td></tr>
49
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga12">FLAC__metadata_object_seektable_template_append_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__uint64 sample_numbers[], unsigned num)</td></tr>
51
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga13">FLAC__metadata_object_seektable_template_append_spaced_points</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned num, FLAC__uint64 total_samples)</td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga14">FLAC__metadata_object_seektable_template_append_spaced_points_by_samples</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned samples, FLAC__uint64 total_samples)</td></tr>
55
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__bool compact)</td></tr>
57
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga16">FLAC__metadata_object_vorbiscomment_set_vendor_string</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
59
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga17">FLAC__metadata_object_vorbiscomment_resize_comments</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_comments)</td></tr>
61
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga18">FLAC__metadata_object_vorbiscomment_set_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
63
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga19">FLAC__metadata_object_vorbiscomment_insert_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
65
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga20">FLAC__metadata_object_vorbiscomment_append_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool copy)</td></tr>
67
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga21">FLAC__metadata_object_vorbiscomment_replace_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, FLAC__bool all, FLAC__bool copy)</td></tr>
69
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga22">FLAC__metadata_object_vorbiscomment_delete_comment</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned comment_num)</td></tr>
71
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga23">FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair</a> (<a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> *entry, const char *field_name, const char *field_value)</td></tr>
73
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga24">FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair</a> (const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, char **field_name, char **field_value)</td></tr>
75
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga25">FLAC__metadata_object_vorbiscomment_entry_matches</a> (const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> entry, const char *field_name, unsigned field_name_length)</td></tr>
77
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga26">FLAC__metadata_object_vorbiscomment_find_entry_from</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned offset, const char *field_name)</td></tr>
79
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga27">FLAC__metadata_object_vorbiscomment_remove_entry_matching</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, const char *field_name)</td></tr>
81
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga28">FLAC__metadata_object_vorbiscomment_remove_entries_matching</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, const char *field_name)</td></tr>
83
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga29">FLAC__metadata_object_cuesheet_track_new</a> (void)</td></tr>
85
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga30">FLAC__metadata_object_cuesheet_track_clone</a> (const <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *object)</td></tr>
87
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga31">FLAC__metadata_object_cuesheet_track_delete</a> (<a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *object)</td></tr>
89
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga32">FLAC__metadata_object_cuesheet_track_resize_indices</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned new_num_indices)</td></tr>
91
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga33">FLAC__metadata_object_cuesheet_track_insert_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num, <a class="el" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> index)</td></tr>
93
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga34">FLAC__metadata_object_cuesheet_track_insert_blank_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num)</td></tr>
95
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga35">FLAC__metadata_object_cuesheet_track_delete_index</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, unsigned index_num)</td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga36">FLAC__metadata_object_cuesheet_resize_tracks</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned new_num_tracks)</td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga37">FLAC__metadata_object_cuesheet_insert_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num, <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *track, FLAC__bool copy)</td></tr>
101
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga38">FLAC__metadata_object_cuesheet_insert_blank_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num)</td></tr>
103
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga39">FLAC__metadata_object_cuesheet_delete_track</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, unsigned track_num)</td></tr>
105
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga40">FLAC__metadata_object_cuesheet_is_legal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__bool check_cd_da_subset, const char **violation)</td></tr>
107
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__uint32 </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga41">FLAC__metadata_object_cuesheet_calculate_cddb_id</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)</td></tr>
109
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga42">FLAC__metadata_object_picture_set_mime_type</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, char *mime_type, FLAC__bool copy)</td></tr>
111
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga43">FLAC__metadata_object_picture_set_description</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__byte *description, FLAC__bool copy)</td></tr>
113
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga44">FLAC__metadata_object_picture_set_data</a> (<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy)</td></tr>
115
<tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__flac__metadata__object.html#ga45">FLAC__metadata_object_picture_is_legal</a> (const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, const char **violation)</td></tr>
56
<hr><a name="_details"></a><h2>Detailed Description</h2>
57
This module contains methods for manipulating FLAC metadata objects.
61
Since many are variable length we have to be careful about the memory management. We decree that all pointers to data in the object are owned by the object and memory-managed by the object.
63
Use the <a class="el" href="group__flac__metadata__object.html#a0">FLAC__metadata_object_new</a>() and <a class="el" href="group__flac__metadata__object.html#a2">FLAC__metadata_object_delete</a>() functions to create all instances. When using the FLAC__metadata_object_set_*() functions to set pointers to data, set <em>copy</em> to <code>true</code> to have the function make it's own copy of the data, or to <code>false</code> to give the object ownership of your data. In the latter case your pointer must be freeable by free() and will be free()d when the object is <a class="el" href="group__flac__metadata__object.html#a2">FLAC__metadata_object_delete</a>()d. It is legal to pass a null pointer as the data pointer to a FLAC__metadata_object_set_*() function as long as the length argument is 0 and the <em>copy</em> argument is <code>false</code>.
65
The <a class="el" href="group__flac__metadata__object.html#a0">FLAC__metadata_object_new</a>() and <a class="el" href="group__flac__metadata__object.html#a1">FLAC__metadata_object_clone</a>() function will return <code>NULL</code> in the case of a memory allocation error, otherwise a new object. The FLAC__metadata_object_set_*() functions return <code>false</code> in the case of a memory allocation error.
67
We don't have the convenience of C++ here, so note that the library relies on you to keep the types straight. In other words, if you pass, for example, a <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* that represents a STREAMINFO block to <a class="el" href="group__flac__metadata__object.html#a4">FLAC__metadata_object_application_set_data</a>(), you will get an assertion failure.
69
For convenience the FLAC__metadata_object_vorbiscomment_*() functions maintain a trailing NUL on each Vorbis comment entry. This is not counted toward the length or stored in the stream, but it can make working with plain comments (those that don't contain embedded-NULs in the value) easier. Entries passed into these functions have trailing NULs added if missing, and returned entries are guaranteed to have a trailing NUL.
71
The FLAC__metadata_object_vorbiscomment_*() functions that take a Vorbis comment entry/name/value will first validate that it complies with the Vorbis comment specification and return false if it does not.
73
There is no need to recalculate the length field on metadata blocks you have modified. They will be calculated automatically before they are written back to a file. <hr><h2>Function Documentation</h2>
74
<a name="a0" doxytag="metadata.h::FLAC__metadata_object_new"></a><p>
75
<table width="100%" cellpadding="2" cellspacing="0" border="0">
118
<hr><h2>Function Documentation</h2>
119
<a class="anchor" name="ga0" doxytag="metadata.h::FLAC__metadata_object_new"></a><p>
120
<table class="mdTable" cellpadding="2" cellspacing="0">
78
123
<table cellpadding="0" cellspacing="0" border="0">
80
<td class="md" nowrap valign="top"> <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* FLAC__metadata_object_new </td>
125
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* FLAC__metadata_object_new </td>
81
126
<td class="md" valign="top">( </td>
82
<td class="md" nowrap valign="top"><a class="el" href="group__flac__format.html#a97">FLAC__MetadataType</a> </td>
83
<td class="mdname1" valign="top" nowrap> <em>type</em> </td>
84
<td class="md" valign="top">) </td>
127
<td class="md" nowrap valign="top"><a class="el" href="group__flac__format.html#ga109">FLAC__MetadataType</a> </td>
128
<td class="mdname1" valign="top" nowrap> <em>type</em> </td>
129
<td class="md" valign="top"> ) </td>
85
130
<td class="md" nowrap></td>
92
<table cellspacing=5 cellpadding=0 border=0>
136
<table cellspacing="5" cellpadding="0" border="0">
374
Resize the seekpoint array.
376
If the size shrinks, elements will truncated; if it grows, new placeholder points will be added to the end.<dl compact><dt><b>
378
<table border=0 cellspacing=2 cellpadding=0>
379
<tr><td valign=top><em>object</em> </td><td>
380
A pointer to an existing SEEKTABLE object. </td></tr>
381
<tr><td valign=top><em>new_num_points</em> </td><td>
382
The desired length of the array; may be <code>0</code>. </td></tr>
384
</dl><dl compact><dt><b>
386
<div class="fragment"><pre>object != NULL
387
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
388
</pre></div> <div class="fragment"><pre>(object->data.seek_table.points == NULL && object->data.seek_table.num_points == 0) ||
396
Resize the seekpoint array.<p>
397
If the size shrinks, elements will truncated; if it grows, new placeholder points will be added to the end.<p>
398
<dl compact><dt><b>Parameters:</b></dt><dd>
399
<table border="0" cellspacing="2" cellpadding="0">
400
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
401
<tr><td valign="top"></td><td valign="top"><em>new_num_points</em> </td><td>The desired length of the array; may be <code>0</code>. </td></tr>
404
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
405
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
406
</pre></div> <div class="fragment"><pre class="fragment"> (object->data.seek_table.points == NULL && object->data.seek_table.num_points == 0) ||
389
407
(object->data.seek_table.points != NULL && object->data.seek_table.num_points > 0)
390
</pre></div> </dl><dl compact><dt><b>
391
Return values: </b><dd>
392
<table border=0 cellspacing=2 cellpadding=0>
393
<tr><td valign=top><em>FLAC__bool</em> </td><td>
394
<code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
399
<a name="a6" doxytag="metadata.h::FLAC__metadata_object_seektable_set_point"></a><p>
400
<table width="100%" cellpadding="2" cellspacing="0" border="0">
403
<table cellpadding="0" cellspacing="0" border="0">
405
<td class="md" nowrap valign="top"> void FLAC__metadata_object_seektable_set_point </td>
406
<td class="md" valign="top">( </td>
407
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
408
<td class="mdname" nowrap> <em>object</em>, </td>
413
<td class="md" nowrap>unsigned </td>
414
<td class="mdname" nowrap> <em>point_num</em>, </td>
419
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> </td>
420
<td class="mdname" nowrap> <em>point</em></td>
424
<td class="md">) </td>
425
<td class="md" colspan="2"></td>
432
<table cellspacing=5 cellpadding=0 border=0>
440
Set a seekpoint in a seektable.<dl compact><dt><b>
442
<table border=0 cellspacing=2 cellpadding=0>
443
<tr><td valign=top><em>object</em> </td><td>
444
A pointer to an existing SEEKTABLE object. </td></tr>
445
<tr><td valign=top><em>point_num</em> </td><td>
446
Index into seekpoint array to set. </td></tr>
447
<tr><td valign=top><em>point</em> </td><td>
448
The point to set. </td></tr>
450
</dl><dl compact><dt><b>
452
<div class="fragment"><pre>object != NULL
453
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
454
</pre></div> <div class="fragment"><pre>object->data.seek_table.num_points > point_num
455
</pre></div> </dl> </td>
458
<a name="a7" doxytag="metadata.h::FLAC__metadata_object_seektable_insert_point"></a><p>
459
<table width="100%" cellpadding="2" cellspacing="0" border="0">
462
<table cellpadding="0" cellspacing="0" border="0">
464
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_insert_point </td>
465
<td class="md" valign="top">( </td>
466
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
467
<td class="mdname" nowrap> <em>object</em>, </td>
472
<td class="md" nowrap>unsigned </td>
473
<td class="mdname" nowrap> <em>point_num</em>, </td>
478
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> </td>
479
<td class="mdname" nowrap> <em>point</em></td>
483
<td class="md">) </td>
484
<td class="md" colspan="2"></td>
491
<table cellspacing=5 cellpadding=0 border=0>
499
Insert a seekpoint into a seektable.<dl compact><dt><b>
501
<table border=0 cellspacing=2 cellpadding=0>
502
<tr><td valign=top><em>object</em> </td><td>
503
A pointer to an existing SEEKTABLE object. </td></tr>
504
<tr><td valign=top><em>point_num</em> </td><td>
505
Index into seekpoint array to set. </td></tr>
506
<tr><td valign=top><em>point</em> </td><td>
507
The point to set. </td></tr>
509
</dl><dl compact><dt><b>
511
<div class="fragment"><pre>object != NULL
512
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
513
</pre></div> <div class="fragment"><pre>object->data.seek_table.num_points >= point_num
514
</pre></div> </dl><dl compact><dt><b>
515
Return values: </b><dd>
516
<table border=0 cellspacing=2 cellpadding=0>
517
<tr><td valign=top><em>FLAC__bool</em> </td><td>
518
<code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
523
<a name="a8" doxytag="metadata.h::FLAC__metadata_object_seektable_delete_point"></a><p>
524
<table width="100%" cellpadding="2" cellspacing="0" border="0">
527
<table cellpadding="0" cellspacing="0" border="0">
529
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_delete_point </td>
530
<td class="md" valign="top">( </td>
531
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
532
<td class="mdname" nowrap> <em>object</em>, </td>
537
<td class="md" nowrap>unsigned </td>
538
<td class="mdname" nowrap> <em>point_num</em></td>
542
<td class="md">) </td>
543
<td class="md" colspan="2"></td>
550
<table cellspacing=5 cellpadding=0 border=0>
558
Delete a seekpoint from a seektable.<dl compact><dt><b>
560
<table border=0 cellspacing=2 cellpadding=0>
561
<tr><td valign=top><em>object</em> </td><td>
562
A pointer to an existing SEEKTABLE object. </td></tr>
563
<tr><td valign=top><em>point_num</em> </td><td>
564
Index into seekpoint array to set. </td></tr>
566
</dl><dl compact><dt><b>
568
<div class="fragment"><pre>object != NULL
569
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
570
</pre></div> <div class="fragment"><pre>object->data.seek_table.num_points > point_num
571
</pre></div> </dl><dl compact><dt><b>
572
Return values: </b><dd>
573
<table border=0 cellspacing=2 cellpadding=0>
574
<tr><td valign=top><em>FLAC__bool</em> </td><td>
575
<code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
580
<a name="a9" doxytag="metadata.h::FLAC__metadata_object_seektable_is_legal"></a><p>
581
<table width="100%" cellpadding="2" cellspacing="0" border="0">
584
<table cellpadding="0" cellspacing="0" border="0">
586
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_is_legal </td>
408
</pre></div> </dd></dl>
409
<dl compact><dt><b>Return values:</b></dt><dd>
410
<table border="0" cellspacing="2" cellpadding="0">
411
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
417
<a class="anchor" name="ga6" doxytag="metadata.h::FLAC__metadata_object_seektable_set_point"></a><p>
418
<table class="mdTable" cellpadding="2" cellspacing="0">
421
<table cellpadding="0" cellspacing="0" border="0">
423
<td class="md" nowrap valign="top">void FLAC__metadata_object_seektable_set_point </td>
424
<td class="md" valign="top">( </td>
425
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
426
<td class="mdname" nowrap> <em>object</em>, </td>
429
<td class="md" nowrap align="right"></td>
431
<td class="md" nowrap>unsigned </td>
432
<td class="mdname" nowrap> <em>point_num</em>, </td>
435
<td class="md" nowrap align="right"></td>
437
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> </td>
438
<td class="mdname" nowrap> <em>point</em></td>
442
<td class="md">) </td>
443
<td class="md" colspan="2"></td>
449
<table cellspacing="5" cellpadding="0" border="0">
457
Set a seekpoint in a seektable.<p>
458
<dl compact><dt><b>Parameters:</b></dt><dd>
459
<table border="0" cellspacing="2" cellpadding="0">
460
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
461
<tr><td valign="top"></td><td valign="top"><em>point_num</em> </td><td>Index into seekpoint array to set. </td></tr>
462
<tr><td valign="top"></td><td valign="top"><em>point</em> </td><td>The point to set. </td></tr>
465
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
466
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
467
</pre></div> <div class="fragment"><pre class="fragment"> object->data.seek_table.num_points > point_num
468
</pre></div> </dd></dl>
472
<a class="anchor" name="ga7" doxytag="metadata.h::FLAC__metadata_object_seektable_insert_point"></a><p>
473
<table class="mdTable" cellpadding="2" cellspacing="0">
476
<table cellpadding="0" cellspacing="0" border="0">
478
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_insert_point </td>
479
<td class="md" valign="top">( </td>
480
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
481
<td class="mdname" nowrap> <em>object</em>, </td>
484
<td class="md" nowrap align="right"></td>
486
<td class="md" nowrap>unsigned </td>
487
<td class="mdname" nowrap> <em>point_num</em>, </td>
490
<td class="md" nowrap align="right"></td>
492
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> </td>
493
<td class="mdname" nowrap> <em>point</em></td>
497
<td class="md">) </td>
498
<td class="md" colspan="2"></td>
504
<table cellspacing="5" cellpadding="0" border="0">
512
Insert a seekpoint into a seektable.<p>
513
<dl compact><dt><b>Parameters:</b></dt><dd>
514
<table border="0" cellspacing="2" cellpadding="0">
515
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
516
<tr><td valign="top"></td><td valign="top"><em>point_num</em> </td><td>Index into seekpoint array to set. </td></tr>
517
<tr><td valign="top"></td><td valign="top"><em>point</em> </td><td>The point to set. </td></tr>
520
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
521
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
522
</pre></div> <div class="fragment"><pre class="fragment"> object->data.seek_table.num_points >= point_num
523
</pre></div> </dd></dl>
524
<dl compact><dt><b>Return values:</b></dt><dd>
525
<table border="0" cellspacing="2" cellpadding="0">
526
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
532
<a class="anchor" name="ga8" doxytag="metadata.h::FLAC__metadata_object_seektable_delete_point"></a><p>
533
<table class="mdTable" cellpadding="2" cellspacing="0">
536
<table cellpadding="0" cellspacing="0" border="0">
538
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_delete_point </td>
539
<td class="md" valign="top">( </td>
540
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
541
<td class="mdname" nowrap> <em>object</em>, </td>
544
<td class="md" nowrap align="right"></td>
546
<td class="md" nowrap>unsigned </td>
547
<td class="mdname" nowrap> <em>point_num</em></td>
551
<td class="md">) </td>
552
<td class="md" colspan="2"></td>
558
<table cellspacing="5" cellpadding="0" border="0">
566
Delete a seekpoint from a seektable.<p>
567
<dl compact><dt><b>Parameters:</b></dt><dd>
568
<table border="0" cellspacing="2" cellpadding="0">
569
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
570
<tr><td valign="top"></td><td valign="top"><em>point_num</em> </td><td>Index into seekpoint array to set. </td></tr>
573
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
574
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
575
</pre></div> <div class="fragment"><pre class="fragment"> object->data.seek_table.num_points > point_num
576
</pre></div> </dd></dl>
577
<dl compact><dt><b>Return values:</b></dt><dd>
578
<table border="0" cellspacing="2" cellpadding="0">
579
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
585
<a class="anchor" name="ga9" doxytag="metadata.h::FLAC__metadata_object_seektable_is_legal"></a><p>
586
<table class="mdTable" cellpadding="2" cellspacing="0">
589
<table cellpadding="0" cellspacing="0" border="0">
591
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_is_legal </td>
587
592
<td class="md" valign="top">( </td>
588
593
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
589
<td class="mdname1" valign="top" nowrap> <em>object</em> </td>
590
<td class="md" valign="top">) </td>
594
<td class="mdname1" valign="top" nowrap> <em>object</em> </td>
595
<td class="md" valign="top"> ) </td>
591
596
<td class="md" nowrap></td>
598
<table cellspacing=5 cellpadding=0 border=0>
606
Check a seektable to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the seektable.<dl compact><dt><b>
608
<table border=0 cellspacing=2 cellpadding=0>
609
<tr><td valign=top><em>object</em> </td><td>
610
A pointer to an existing SEEKTABLE object. </td></tr>
612
</dl><dl compact><dt><b>
614
<div class="fragment"><pre>object != NULL
615
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
616
</pre></div> </dl><dl compact><dt><b>
617
Return values: </b><dd>
618
<table border=0 cellspacing=2 cellpadding=0>
619
<tr><td valign=top><em>FLAC__bool</em> </td><td>
620
<code>false</code> if seek table is illegal, else <code>true</code>. </td></tr>
625
<a name="a10" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_placeholders"></a><p>
626
<table width="100%" cellpadding="2" cellspacing="0" border="0">
629
<table cellpadding="0" cellspacing="0" border="0">
631
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders </td>
632
<td class="md" valign="top">( </td>
633
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
634
<td class="mdname" nowrap> <em>object</em>, </td>
639
<td class="md" nowrap>unsigned </td>
640
<td class="mdname" nowrap> <em>num</em></td>
644
<td class="md">) </td>
645
<td class="md" colspan="2"></td>
652
<table cellspacing=5 cellpadding=0 border=0>
660
Append a number of placeholder points to the end of a seek table.
664
As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#a14">FLAC__metadata_object_seektable_template_sort</a>() when finished to make the seek table legal.</dl><dl compact><dt><b>
666
<table border=0 cellspacing=2 cellpadding=0>
667
<tr><td valign=top><em>object</em> </td><td>
668
A pointer to an existing SEEKTABLE object. </td></tr>
669
<tr><td valign=top><em>num</em> </td><td>
670
The number of placeholder points to append. </td></tr>
672
</dl><dl compact><dt><b>
674
<div class="fragment"><pre>object != NULL
675
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
676
</pre></div> </dl><dl compact><dt><b>
677
Return values: </b><dd>
678
<table border=0 cellspacing=2 cellpadding=0>
679
<tr><td valign=top><em>FLAC__bool</em> </td><td>
680
<code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
685
<a name="a11" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_point"></a><p>
686
<table width="100%" cellpadding="2" cellspacing="0" border="0">
689
<table cellpadding="0" cellspacing="0" border="0">
691
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_template_append_point </td>
692
<td class="md" valign="top">( </td>
693
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
694
<td class="mdname" nowrap> <em>object</em>, </td>
699
<td class="md" nowrap>FLAC__uint64 </td>
700
<td class="mdname" nowrap> <em>sample_number</em></td>
704
<td class="md">) </td>
705
<td class="md" colspan="2"></td>
712
<table cellspacing=5 cellpadding=0 border=0>
720
Append a specific seek point template to the end of a seek table.
724
As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#a14">FLAC__metadata_object_seektable_template_sort</a>() when finished to make the seek table legal.</dl><dl compact><dt><b>
726
<table border=0 cellspacing=2 cellpadding=0>
727
<tr><td valign=top><em>object</em> </td><td>
728
A pointer to an existing SEEKTABLE object. </td></tr>
729
<tr><td valign=top><em>sample_number</em> </td><td>
730
The sample number of the seek point template. </td></tr>
732
</dl><dl compact><dt><b>
734
<div class="fragment"><pre>object != NULL
735
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
736
</pre></div> </dl><dl compact><dt><b>
737
Return values: </b><dd>
738
<table border=0 cellspacing=2 cellpadding=0>
739
<tr><td valign=top><em>FLAC__bool</em> </td><td>
740
<code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
745
<a name="a12" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_points"></a><p>
746
<table width="100%" cellpadding="2" cellspacing="0" border="0">
749
<table cellpadding="0" cellspacing="0" border="0">
751
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_template_append_points </td>
752
<td class="md" valign="top">( </td>
753
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
754
<td class="mdname" nowrap> <em>object</em>, </td>
759
<td class="md" nowrap>FLAC__uint64 </td>
760
<td class="mdname" nowrap> <em>sample_numbers</em>[], </td>
765
<td class="md" nowrap>unsigned </td>
766
<td class="mdname" nowrap> <em>num</em></td>
770
<td class="md">) </td>
771
<td class="md" colspan="2"></td>
778
<table cellspacing=5 cellpadding=0 border=0>
786
Append specific seek point templates to the end of a seek table.
790
As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#a14">FLAC__metadata_object_seektable_template_sort</a>() when finished to make the seek table legal.</dl><dl compact><dt><b>
792
<table border=0 cellspacing=2 cellpadding=0>
793
<tr><td valign=top><em>object</em> </td><td>
794
A pointer to an existing SEEKTABLE object. </td></tr>
795
<tr><td valign=top><em>sample_numbers</em> </td><td>
796
An array of sample numbers for the seek points. </td></tr>
797
<tr><td valign=top><em>num</em> </td><td>
798
The number of seek point templates to append. </td></tr>
800
</dl><dl compact><dt><b>
802
<div class="fragment"><pre>object != NULL
803
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
804
</pre></div> </dl><dl compact><dt><b>
805
Return values: </b><dd>
806
<table border=0 cellspacing=2 cellpadding=0>
807
<tr><td valign=top><em>FLAC__bool</em> </td><td>
808
<code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
813
<a name="a13" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_spaced_points"></a><p>
814
<table width="100%" cellpadding="2" cellspacing="0" border="0">
817
<table cellpadding="0" cellspacing="0" border="0">
819
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points </td>
820
<td class="md" valign="top">( </td>
821
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
822
<td class="mdname" nowrap> <em>object</em>, </td>
827
<td class="md" nowrap>unsigned </td>
828
<td class="mdname" nowrap> <em>num</em>, </td>
833
<td class="md" nowrap>FLAC__uint64 </td>
834
<td class="mdname" nowrap> <em>total_samples</em></td>
838
<td class="md">) </td>
839
<td class="md" colspan="2"></td>
846
<table cellspacing=5 cellpadding=0 border=0>
854
Append a set of evenly-spaced seek point templates to the end of a seek table.
858
As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#a14">FLAC__metadata_object_seektable_template_sort</a>() when finished to make the seek table legal.</dl><dl compact><dt><b>
860
<table border=0 cellspacing=2 cellpadding=0>
861
<tr><td valign=top><em>object</em> </td><td>
862
A pointer to an existing SEEKTABLE object. </td></tr>
863
<tr><td valign=top><em>num</em> </td><td>
864
The number of placeholder points to append. </td></tr>
865
<tr><td valign=top><em>total_samples</em> </td><td>
866
The total number of samples to be encoded; the seekpoints will be spaced approximately <em>total_samples</em> / <em>num</em> samples apart. </td></tr>
868
</dl><dl compact><dt><b>
870
<div class="fragment"><pre>object != NULL
871
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a100">FLAC__METADATA_TYPE_SEEKTABLE</a>
872
</pre></div> </dl><dl compact><dt><b>
873
Return values: </b><dd>
874
<table border=0 cellspacing=2 cellpadding=0>
875
<tr><td valign=top><em>FLAC__bool</em> </td><td>
876
<code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
881
<a name="a14" doxytag="metadata.h::FLAC__metadata_object_seektable_template_sort"></a><p>
882
<table width="100%" cellpadding="2" cellspacing="0" border="0">
885
<table cellpadding="0" cellspacing="0" border="0">
887
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_seektable_template_sort </td>
888
<td class="md" valign="top">( </td>
889
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
890
<td class="mdname" nowrap> <em>object</em>, </td>
602
<table cellspacing="5" cellpadding="0" border="0">
610
Check a seektable to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the seektable.<p>
611
<dl compact><dt><b>Parameters:</b></dt><dd>
612
<table border="0" cellspacing="2" cellpadding="0">
613
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
616
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
617
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
618
</pre></div> </dd></dl>
619
<dl compact><dt><b>Return values:</b></dt><dd>
620
<table border="0" cellspacing="2" cellpadding="0">
621
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if seek table is illegal, else <code>true</code>. </td></tr>
627
<a class="anchor" name="ga10" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_placeholders"></a><p>
628
<table class="mdTable" cellpadding="2" cellspacing="0">
631
<table cellpadding="0" cellspacing="0" border="0">
633
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders </td>
634
<td class="md" valign="top">( </td>
635
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
636
<td class="mdname" nowrap> <em>object</em>, </td>
639
<td class="md" nowrap align="right"></td>
641
<td class="md" nowrap>unsigned </td>
642
<td class="mdname" nowrap> <em>num</em></td>
646
<td class="md">) </td>
647
<td class="md" colspan="2"></td>
653
<table cellspacing="5" cellpadding="0" border="0">
661
Append a number of placeholder points to the end of a seek table.<p>
662
<dl compact><dt><b>Note:</b></dt><dd>As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort()</a> when finished to make the seek table legal.</dd></dl>
663
<dl compact><dt><b>Parameters:</b></dt><dd>
664
<table border="0" cellspacing="2" cellpadding="0">
665
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
666
<tr><td valign="top"></td><td valign="top"><em>num</em> </td><td>The number of placeholder points to append. </td></tr>
669
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
670
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
671
</pre></div> </dd></dl>
672
<dl compact><dt><b>Return values:</b></dt><dd>
673
<table border="0" cellspacing="2" cellpadding="0">
674
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
680
<a class="anchor" name="ga11" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_point"></a><p>
681
<table class="mdTable" cellpadding="2" cellspacing="0">
684
<table cellpadding="0" cellspacing="0" border="0">
686
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_point </td>
687
<td class="md" valign="top">( </td>
688
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
689
<td class="mdname" nowrap> <em>object</em>, </td>
692
<td class="md" nowrap align="right"></td>
694
<td class="md" nowrap>FLAC__uint64 </td>
695
<td class="mdname" nowrap> <em>sample_number</em></td>
699
<td class="md">) </td>
700
<td class="md" colspan="2"></td>
706
<table cellspacing="5" cellpadding="0" border="0">
714
Append a specific seek point template to the end of a seek table.<p>
715
<dl compact><dt><b>Note:</b></dt><dd>As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort()</a> when finished to make the seek table legal.</dd></dl>
716
<dl compact><dt><b>Parameters:</b></dt><dd>
717
<table border="0" cellspacing="2" cellpadding="0">
718
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
719
<tr><td valign="top"></td><td valign="top"><em>sample_number</em> </td><td>The sample number of the seek point template. </td></tr>
722
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
723
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
724
</pre></div> </dd></dl>
725
<dl compact><dt><b>Return values:</b></dt><dd>
726
<table border="0" cellspacing="2" cellpadding="0">
727
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
733
<a class="anchor" name="ga12" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_points"></a><p>
734
<table class="mdTable" cellpadding="2" cellspacing="0">
737
<table cellpadding="0" cellspacing="0" border="0">
739
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_points </td>
740
<td class="md" valign="top">( </td>
741
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
742
<td class="mdname" nowrap> <em>object</em>, </td>
745
<td class="md" nowrap align="right"></td>
747
<td class="md" nowrap>FLAC__uint64 </td>
748
<td class="mdname" nowrap> <em>sample_numbers</em>[], </td>
751
<td class="md" nowrap align="right"></td>
753
<td class="md" nowrap>unsigned </td>
754
<td class="mdname" nowrap> <em>num</em></td>
758
<td class="md">) </td>
759
<td class="md" colspan="2"></td>
765
<table cellspacing="5" cellpadding="0" border="0">
773
Append specific seek point templates to the end of a seek table.<p>
774
<dl compact><dt><b>Note:</b></dt><dd>As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort()</a> when finished to make the seek table legal.</dd></dl>
775
<dl compact><dt><b>Parameters:</b></dt><dd>
776
<table border="0" cellspacing="2" cellpadding="0">
777
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
778
<tr><td valign="top"></td><td valign="top"><em>sample_numbers</em> </td><td>An array of sample numbers for the seek points. </td></tr>
779
<tr><td valign="top"></td><td valign="top"><em>num</em> </td><td>The number of seek point templates to append. </td></tr>
782
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
783
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
784
</pre></div> </dd></dl>
785
<dl compact><dt><b>Return values:</b></dt><dd>
786
<table border="0" cellspacing="2" cellpadding="0">
787
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
793
<a class="anchor" name="ga13" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_spaced_points"></a><p>
794
<table class="mdTable" cellpadding="2" cellspacing="0">
797
<table cellpadding="0" cellspacing="0" border="0">
799
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points </td>
800
<td class="md" valign="top">( </td>
801
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
802
<td class="mdname" nowrap> <em>object</em>, </td>
805
<td class="md" nowrap align="right"></td>
807
<td class="md" nowrap>unsigned </td>
808
<td class="mdname" nowrap> <em>num</em>, </td>
811
<td class="md" nowrap align="right"></td>
813
<td class="md" nowrap>FLAC__uint64 </td>
814
<td class="mdname" nowrap> <em>total_samples</em></td>
818
<td class="md">) </td>
819
<td class="md" colspan="2"></td>
825
<table cellspacing="5" cellpadding="0" border="0">
833
Append a set of evenly-spaced seek point templates to the end of a seek table.<p>
834
<dl compact><dt><b>Note:</b></dt><dd>As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort()</a> when finished to make the seek table legal.</dd></dl>
835
<dl compact><dt><b>Parameters:</b></dt><dd>
836
<table border="0" cellspacing="2" cellpadding="0">
837
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
838
<tr><td valign="top"></td><td valign="top"><em>num</em> </td><td>The number of placeholder points to append. </td></tr>
839
<tr><td valign="top"></td><td valign="top"><em>total_samples</em> </td><td>The total number of samples to be encoded; the seekpoints will be spaced approximately <em>total_samples</em> / <em>num</em> samples apart. </td></tr>
842
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
843
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
844
</pre></div> <div class="fragment"><pre class="fragment"> total_samples > 0
845
</pre></div> </dd></dl>
846
<dl compact><dt><b>Return values:</b></dt><dd>
847
<table border="0" cellspacing="2" cellpadding="0">
848
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
854
<a class="anchor" name="ga14" doxytag="metadata.h::FLAC__metadata_object_seektable_template_append_spaced_points_by_samples"></a><p>
855
<table class="mdTable" cellpadding="2" cellspacing="0">
858
<table cellpadding="0" cellspacing="0" border="0">
860
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points_by_samples </td>
861
<td class="md" valign="top">( </td>
862
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
863
<td class="mdname" nowrap> <em>object</em>, </td>
866
<td class="md" nowrap align="right"></td>
868
<td class="md" nowrap>unsigned </td>
869
<td class="mdname" nowrap> <em>samples</em>, </td>
872
<td class="md" nowrap align="right"></td>
874
<td class="md" nowrap>FLAC__uint64 </td>
875
<td class="mdname" nowrap> <em>total_samples</em></td>
879
<td class="md">) </td>
880
<td class="md" colspan="2"></td>
886
<table cellspacing="5" cellpadding="0" border="0">
894
Append a set of evenly-spaced seek point templates to the end of a seek table.<p>
895
<dl compact><dt><b>Note:</b></dt><dd>As with the other ..._seektable_template_... functions, you should call <a class="el" href="group__flac__metadata__object.html#ga15">FLAC__metadata_object_seektable_template_sort()</a> when finished to make the seek table legal.</dd></dl>
896
<dl compact><dt><b>Parameters:</b></dt><dd>
897
<table border="0" cellspacing="2" cellpadding="0">
898
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing SEEKTABLE object. </td></tr>
899
<tr><td valign="top"></td><td valign="top"><em>samples</em> </td><td>The number of samples apart to space the placeholder points. The first point will be at sample <code>0</code>, the second at sample <em>samples</em>, then 2*<em>samples</em>, and so on. As long as <em>samples</em> and <em>total_samples</em> are greater than <code>0</code>, there will always be at least one seekpoint at sample <code>0</code>. </td></tr>
900
<tr><td valign="top"></td><td valign="top"><em>total_samples</em> </td><td>The total number of samples to be encoded; the seekpoints will be spaced <em>samples</em> samples apart. </td></tr>
903
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
904
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a111">FLAC__METADATA_TYPE_SEEKTABLE</a>
905
</pre></div> <div class="fragment"><pre class="fragment"> samples > 0
906
</pre></div> <div class="fragment"><pre class="fragment"> total_samples > 0
907
</pre></div> </dd></dl>
908
<dl compact><dt><b>Return values:</b></dt><dd>
909
<table border="0" cellspacing="2" cellpadding="0">
910
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
916
<a class="anchor" name="ga15" doxytag="metadata.h::FLAC__metadata_object_seektable_template_sort"></a><p>
917
<table class="mdTable" cellpadding="2" cellspacing="0">
920
<table cellpadding="0" cellspacing="0" border="0">
922
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_sort </td>
923
<td class="md" valign="top">( </td>
924
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
925
<td class="mdname" nowrap> <em>object</em>, </td>
928
<td class="md" nowrap align="right"></td>
895
930
<td class="md" nowrap>FLAC__bool </td>
896
<td class="mdname" nowrap> <em>compact</em></td>
931
<td class="mdname" nowrap> <em>compact</em></td>
900
935
<td class="md">) </td>
901
936
<td class="md" colspan="2"></td>
908
<table cellspacing=5 cellpadding=0 border=0>
942
<table cellspacing="5" cellpadding="0" border="0">
1118
Sets a comment in a VORBIS_COMMENT block.
1120
For convenience, a trailing NUL is added to the entry if it doesn't have one already.
1122
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.
1126
If this function returns <code>false</code>, the caller still owns the pointer.</dl><dl compact><dt><b>
1127
Parameters: </b><dd>
1128
<table border=0 cellspacing=2 cellpadding=0>
1129
<tr><td valign=top><em>object</em> </td><td>
1130
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1131
<tr><td valign=top><em>comment_num</em> </td><td>
1132
Index into comment array to set. </td></tr>
1133
<tr><td valign=top><em>entry</em> </td><td>
1134
The entry to set the comment to. </td></tr>
1135
<tr><td valign=top><em>copy</em> </td><td>
1136
See above. </td></tr>
1138
</dl><dl compact><dt><b>
1140
<div class="fragment"><pre>object != NULL
1141
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1142
</pre></div> <div class="fragment"><pre>comment_num < object->data.vorbis_comment.num_comments
1143
</pre></div> <div class="fragment"><pre>(entry.entry != NULL && entry.length > 0) ||
1133
Sets a comment in a VORBIS_COMMENT block.<p>
1134
For convenience, a trailing NUL is added to the entry if it doesn't have one already.<p>
1135
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.<p>
1136
<dl compact><dt><b>Note:</b></dt><dd>If this function returns <code>false</code>, the caller still owns the pointer.</dd></dl>
1137
<dl compact><dt><b>Parameters:</b></dt><dd>
1138
<table border="0" cellspacing="2" cellpadding="0">
1139
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1140
<tr><td valign="top"></td><td valign="top"><em>comment_num</em> </td><td>Index into comment array to set. </td></tr>
1141
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>The entry to set the comment to. </td></tr>
1142
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
1145
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1146
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1147
</pre></div> <div class="fragment"><pre class="fragment"> comment_num < object->data.vorbis_comment.num_comments
1148
</pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0) ||
1144
1149
(entry.entry == NULL && entry.length == 0)
1145
</pre></div> </dl><dl compact><dt><b>
1146
Return values: </b><dd>
1147
<table border=0 cellspacing=2 cellpadding=0>
1148
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1149
<code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1154
<a name="a18" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_insert_comment"></a><p>
1155
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1158
<table cellpadding="0" cellspacing="0" border="0">
1160
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment </td>
1161
<td class="md" valign="top">( </td>
1162
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1163
<td class="mdname" nowrap> <em>object</em>, </td>
1168
<td class="md" nowrap>unsigned </td>
1169
<td class="mdname" nowrap> <em>comment_num</em>, </td>
1174
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1175
<td class="mdname" nowrap> <em>entry</em>, </td>
1180
<td class="md" nowrap>FLAC__bool </td>
1181
<td class="mdname" nowrap> <em>copy</em></td>
1185
<td class="md">) </td>
1186
<td class="md" colspan="2"></td>
1193
<table cellspacing=5 cellpadding=0 border=0>
1201
Insert a comment in a VORBIS_COMMENT block at the given index.
1203
For convenience, a trailing NUL is added to the entry if it doesn't have one already.
1205
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.
1209
If this function returns <code>false</code>, the caller still owns the pointer.</dl><dl compact><dt><b>
1210
Parameters: </b><dd>
1211
<table border=0 cellspacing=2 cellpadding=0>
1212
<tr><td valign=top><em>object</em> </td><td>
1213
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1214
<tr><td valign=top><em>comment_num</em> </td><td>
1215
The index at which to insert the comment. The comments at and after <em>comment_num</em> move right one position. To append a comment to the end, set <em>comment_num</em> to <code>object->data.vorbis_comment.num_comments</code> . </td></tr>
1216
<tr><td valign=top><em>entry</em> </td><td>
1217
The comment to insert. </td></tr>
1218
<tr><td valign=top><em>copy</em> </td><td>
1219
See above. </td></tr>
1221
</dl><dl compact><dt><b>
1223
<div class="fragment"><pre>object != NULL
1224
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1225
</pre></div> <div class="fragment"><pre>object->data.vorbis_comment.num_comments >= comment_num
1226
</pre></div> <div class="fragment"><pre>(entry.entry != NULL && entry.length > 0) ||
1227
(entry.entry == NULL && entry.length == 0 && copy == <font class="keyword">false</font>)
1228
</pre></div> </dl><dl compact><dt><b>
1229
Return values: </b><dd>
1230
<table border=0 cellspacing=2 cellpadding=0>
1231
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1232
<code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1237
<a name="a19" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_append_comment"></a><p>
1238
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1241
<table cellpadding="0" cellspacing="0" border="0">
1243
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment </td>
1244
<td class="md" valign="top">( </td>
1245
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1246
<td class="mdname" nowrap> <em>object</em>, </td>
1251
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1252
<td class="mdname" nowrap> <em>entry</em>, </td>
1257
<td class="md" nowrap>FLAC__bool </td>
1258
<td class="mdname" nowrap> <em>copy</em></td>
1262
<td class="md">) </td>
1263
<td class="md" colspan="2"></td>
1270
<table cellspacing=5 cellpadding=0 border=0>
1278
Appends a comment to a VORBIS_COMMENT block.
1280
For convenience, a trailing NUL is added to the entry if it doesn't have one already.
1282
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.
1286
If this function returns <code>false</code>, the caller still owns the pointer.</dl><dl compact><dt><b>
1287
Parameters: </b><dd>
1288
<table border=0 cellspacing=2 cellpadding=0>
1289
<tr><td valign=top><em>object</em> </td><td>
1290
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1291
<tr><td valign=top><em>entry</em> </td><td>
1292
The comment to insert. </td></tr>
1293
<tr><td valign=top><em>copy</em> </td><td>
1294
See above. </td></tr>
1296
</dl><dl compact><dt><b>
1298
<div class="fragment"><pre>object != NULL
1299
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1300
</pre></div> <div class="fragment"><pre>(entry.entry != NULL && entry.length > 0) ||
1301
(entry.entry == NULL && entry.length == 0 && copy == <font class="keyword">false</font>)
1302
</pre></div> </dl><dl compact><dt><b>
1303
Return values: </b><dd>
1304
<table border=0 cellspacing=2 cellpadding=0>
1305
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1306
<code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1311
<a name="a20" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_replace_comment"></a><p>
1312
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1315
<table cellpadding="0" cellspacing="0" border="0">
1317
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment </td>
1318
<td class="md" valign="top">( </td>
1319
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1320
<td class="mdname" nowrap> <em>object</em>, </td>
1325
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1326
<td class="mdname" nowrap> <em>entry</em>, </td>
1331
<td class="md" nowrap>FLAC__bool </td>
1332
<td class="mdname" nowrap> <em>all</em>, </td>
1337
<td class="md" nowrap>FLAC__bool </td>
1338
<td class="mdname" nowrap> <em>copy</em></td>
1342
<td class="md">) </td>
1343
<td class="md" colspan="2"></td>
1350
<table cellspacing=5 cellpadding=0 border=0>
1358
Replaces comments in a VORBIS_COMMENT block with a new one.
1360
For convenience, a trailing NUL is added to the entry if it doesn't have one already.
1362
Depending on the the value of <em>all</em>, either all or just the first comment whose field name(s) match the given entry's name will be replaced by the given entry. If no comments match, <em>entry</em> will simply be appended.
1364
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.
1368
If this function returns <code>false</code>, the caller still owns the pointer.</dl><dl compact><dt><b>
1369
Parameters: </b><dd>
1370
<table border=0 cellspacing=2 cellpadding=0>
1371
<tr><td valign=top><em>object</em> </td><td>
1372
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1373
<tr><td valign=top><em>entry</em> </td><td>
1374
The comment to insert. </td></tr>
1375
<tr><td valign=top><em>all</em> </td><td>
1376
If <code>true</code>, all comments whose field name matches <em>entry's</em> field name will be removed, and <em>entry</em> will be inserted at the position of the first matching comment. If <code>false</code>, only the first comment whose field name matches <em>entry's</em> field name will be replaced with <em>entry</em>. </td></tr>
1377
<tr><td valign=top><em>copy</em> </td><td>
1378
See above. </td></tr>
1380
</dl><dl compact><dt><b>
1382
<div class="fragment"><pre>object != NULL
1383
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1384
</pre></div> <div class="fragment"><pre>(entry.entry != NULL && entry.length > 0) ||
1385
(entry.entry == NULL && entry.length == 0 && copy == <font class="keyword">false</font>)
1386
</pre></div> </dl><dl compact><dt><b>
1387
Return values: </b><dd>
1388
<table border=0 cellspacing=2 cellpadding=0>
1389
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1390
<code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1395
<a name="a21" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_delete_comment"></a><p>
1396
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1399
<table cellpadding="0" cellspacing="0" border="0">
1401
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment </td>
1402
<td class="md" valign="top">( </td>
1403
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1404
<td class="mdname" nowrap> <em>object</em>, </td>
1409
<td class="md" nowrap>unsigned </td>
1410
<td class="mdname" nowrap> <em>comment_num</em></td>
1414
<td class="md">) </td>
1415
<td class="md" colspan="2"></td>
1422
<table cellspacing=5 cellpadding=0 border=0>
1430
Delete a comment in a VORBIS_COMMENT block at the given index.<dl compact><dt><b>
1431
Parameters: </b><dd>
1432
<table border=0 cellspacing=2 cellpadding=0>
1433
<tr><td valign=top><em>object</em> </td><td>
1434
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1435
<tr><td valign=top><em>comment_num</em> </td><td>
1436
The index of the comment to delete. </td></tr>
1438
</dl><dl compact><dt><b>
1440
<div class="fragment"><pre>object != NULL
1441
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1442
</pre></div> <div class="fragment"><pre>object->data.vorbis_comment.num_comments > comment_num
1443
</pre></div> </dl><dl compact><dt><b>
1444
Return values: </b><dd>
1445
<table border=0 cellspacing=2 cellpadding=0>
1446
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1447
<code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
1452
<a name="a22" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair"></a><p>
1453
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1456
<table cellpadding="0" cellspacing="0" border="0">
1458
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair </td>
1150
</pre></div> </dd></dl>
1151
<dl compact><dt><b>Return values:</b></dt><dd>
1152
<table border="0" cellspacing="2" cellpadding="0">
1153
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1159
<a class="anchor" name="ga19" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_insert_comment"></a><p>
1160
<table class="mdTable" cellpadding="2" cellspacing="0">
1163
<table cellpadding="0" cellspacing="0" border="0">
1165
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment </td>
1166
<td class="md" valign="top">( </td>
1167
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1168
<td class="mdname" nowrap> <em>object</em>, </td>
1171
<td class="md" nowrap align="right"></td>
1172
<td class="md"></td>
1173
<td class="md" nowrap>unsigned </td>
1174
<td class="mdname" nowrap> <em>comment_num</em>, </td>
1177
<td class="md" nowrap align="right"></td>
1178
<td class="md"></td>
1179
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1180
<td class="mdname" nowrap> <em>entry</em>, </td>
1183
<td class="md" nowrap align="right"></td>
1184
<td class="md"></td>
1185
<td class="md" nowrap>FLAC__bool </td>
1186
<td class="mdname" nowrap> <em>copy</em></td>
1189
<td class="md"></td>
1190
<td class="md">) </td>
1191
<td class="md" colspan="2"></td>
1197
<table cellspacing="5" cellpadding="0" border="0">
1205
Insert a comment in a VORBIS_COMMENT block at the given index.<p>
1206
For convenience, a trailing NUL is added to the entry if it doesn't have one already.<p>
1207
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.<p>
1208
<dl compact><dt><b>Note:</b></dt><dd>If this function returns <code>false</code>, the caller still owns the pointer.</dd></dl>
1209
<dl compact><dt><b>Parameters:</b></dt><dd>
1210
<table border="0" cellspacing="2" cellpadding="0">
1211
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1212
<tr><td valign="top"></td><td valign="top"><em>comment_num</em> </td><td>The index at which to insert the comment. The comments at and after <em>comment_num</em> move right one position. To append a comment to the end, set <em>comment_num</em> to <code>object->data.vorbis_comment.num_comments</code> . </td></tr>
1213
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>The comment to insert. </td></tr>
1214
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
1217
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1218
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1219
</pre></div> <div class="fragment"><pre class="fragment"> object->data.vorbis_comment.num_comments >= comment_num
1220
</pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0) ||
1221
(entry.entry == NULL && entry.length == 0 && copy == <span class="keyword">false</span>)
1222
</pre></div> </dd></dl>
1223
<dl compact><dt><b>Return values:</b></dt><dd>
1224
<table border="0" cellspacing="2" cellpadding="0">
1225
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1231
<a class="anchor" name="ga20" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_append_comment"></a><p>
1232
<table class="mdTable" cellpadding="2" cellspacing="0">
1235
<table cellpadding="0" cellspacing="0" border="0">
1237
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment </td>
1238
<td class="md" valign="top">( </td>
1239
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1240
<td class="mdname" nowrap> <em>object</em>, </td>
1243
<td class="md" nowrap align="right"></td>
1244
<td class="md"></td>
1245
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1246
<td class="mdname" nowrap> <em>entry</em>, </td>
1249
<td class="md" nowrap align="right"></td>
1250
<td class="md"></td>
1251
<td class="md" nowrap>FLAC__bool </td>
1252
<td class="mdname" nowrap> <em>copy</em></td>
1255
<td class="md"></td>
1256
<td class="md">) </td>
1257
<td class="md" colspan="2"></td>
1263
<table cellspacing="5" cellpadding="0" border="0">
1271
Appends a comment to a VORBIS_COMMENT block.<p>
1272
For convenience, a trailing NUL is added to the entry if it doesn't have one already.<p>
1273
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.<p>
1274
<dl compact><dt><b>Note:</b></dt><dd>If this function returns <code>false</code>, the caller still owns the pointer.</dd></dl>
1275
<dl compact><dt><b>Parameters:</b></dt><dd>
1276
<table border="0" cellspacing="2" cellpadding="0">
1277
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1278
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>The comment to insert. </td></tr>
1279
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
1282
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1283
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1284
</pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0) ||
1285
(entry.entry == NULL && entry.length == 0 && copy == <span class="keyword">false</span>)
1286
</pre></div> </dd></dl>
1287
<dl compact><dt><b>Return values:</b></dt><dd>
1288
<table border="0" cellspacing="2" cellpadding="0">
1289
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1295
<a class="anchor" name="ga21" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_replace_comment"></a><p>
1296
<table class="mdTable" cellpadding="2" cellspacing="0">
1299
<table cellpadding="0" cellspacing="0" border="0">
1301
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment </td>
1302
<td class="md" valign="top">( </td>
1303
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1304
<td class="mdname" nowrap> <em>object</em>, </td>
1307
<td class="md" nowrap align="right"></td>
1308
<td class="md"></td>
1309
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1310
<td class="mdname" nowrap> <em>entry</em>, </td>
1313
<td class="md" nowrap align="right"></td>
1314
<td class="md"></td>
1315
<td class="md" nowrap>FLAC__bool </td>
1316
<td class="mdname" nowrap> <em>all</em>, </td>
1319
<td class="md" nowrap align="right"></td>
1320
<td class="md"></td>
1321
<td class="md" nowrap>FLAC__bool </td>
1322
<td class="mdname" nowrap> <em>copy</em></td>
1325
<td class="md"></td>
1326
<td class="md">) </td>
1327
<td class="md" colspan="2"></td>
1333
<table cellspacing="5" cellpadding="0" border="0">
1341
Replaces comments in a VORBIS_COMMENT block with a new one.<p>
1342
For convenience, a trailing NUL is added to the entry if it doesn't have one already.<p>
1343
Depending on the the value of <em>all</em>, either all or just the first comment whose field name(s) match the given entry's name will be replaced by the given entry. If no comments match, <em>entry</em> will simply be appended.<p>
1344
If <em>copy</em> is <code>true</code>, a copy of the entry is stored; otherwise, the object takes ownership of the <code>entry.entry</code> pointer.<p>
1345
<dl compact><dt><b>Note:</b></dt><dd>If this function returns <code>false</code>, the caller still owns the pointer.</dd></dl>
1346
<dl compact><dt><b>Parameters:</b></dt><dd>
1347
<table border="0" cellspacing="2" cellpadding="0">
1348
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1349
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>The comment to insert. </td></tr>
1350
<tr><td valign="top"></td><td valign="top"><em>all</em> </td><td>If <code>true</code>, all comments whose field name matches <em>entry's</em> field name will be removed, and <em>entry</em> will be inserted at the position of the first matching comment. If <code>false</code>, only the first comment whose field name matches <em>entry's</em> field name will be replaced with <em>entry</em>. </td></tr>
1351
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
1354
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1355
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1356
</pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0) ||
1357
(entry.entry == NULL && entry.length == 0 && copy == <span class="keyword">false</span>)
1358
</pre></div> </dd></dl>
1359
<dl compact><dt><b>Return values:</b></dt><dd>
1360
<table border="0" cellspacing="2" cellpadding="0">
1361
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1367
<a class="anchor" name="ga22" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_delete_comment"></a><p>
1368
<table class="mdTable" cellpadding="2" cellspacing="0">
1371
<table cellpadding="0" cellspacing="0" border="0">
1373
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment </td>
1374
<td class="md" valign="top">( </td>
1375
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1376
<td class="mdname" nowrap> <em>object</em>, </td>
1379
<td class="md" nowrap align="right"></td>
1380
<td class="md"></td>
1381
<td class="md" nowrap>unsigned </td>
1382
<td class="mdname" nowrap> <em>comment_num</em></td>
1385
<td class="md"></td>
1386
<td class="md">) </td>
1387
<td class="md" colspan="2"></td>
1393
<table cellspacing="5" cellpadding="0" border="0">
1401
Delete a comment in a VORBIS_COMMENT block at the given index.<p>
1402
<dl compact><dt><b>Parameters:</b></dt><dd>
1403
<table border="0" cellspacing="2" cellpadding="0">
1404
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1405
<tr><td valign="top"></td><td valign="top"><em>comment_num</em> </td><td>The index of the comment to delete. </td></tr>
1408
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1409
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1410
</pre></div> <div class="fragment"><pre class="fragment"> object->data.vorbis_comment.num_comments > comment_num
1411
</pre></div> </dd></dl>
1412
<dl compact><dt><b>Return values:</b></dt><dd>
1413
<table border="0" cellspacing="2" cellpadding="0">
1414
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
1420
<a class="anchor" name="ga23" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair"></a><p>
1421
<table class="mdTable" cellpadding="2" cellspacing="0">
1424
<table cellpadding="0" cellspacing="0" border="0">
1426
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair </td>
1459
1427
<td class="md" valign="top">( </td>
1460
1428
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> * </td>
1461
<td class="mdname" nowrap> <em>entry</em>, </td>
1466
<td class="md" nowrap>const char * </td>
1467
<td class="mdname" nowrap> <em>field_name</em>, </td>
1472
<td class="md" nowrap>const char * </td>
1473
<td class="mdname" nowrap> <em>field_value</em></td>
1477
<td class="md">) </td>
1478
<td class="md" colspan="2"></td>
1485
<table cellspacing=5 cellpadding=0 border=0>
1493
Creates a Vorbis comment entry from NUL-terminated name and value strings.
1495
On return, the filled-in <em>entry->entry</em> pointer will point to malloc()ed memory and shall be owned by the caller. For convenience the entry will have a terminating NUL.<dl compact><dt><b>
1496
Parameters: </b><dd>
1497
<table border=0 cellspacing=2 cellpadding=0>
1498
<tr><td valign=top><em>entry</em> </td><td>
1499
A pointer to a Vorbis comment entry. The entry's <code>entry</code> pointer should not point to allocated memory as it will be overwritten. </td></tr>
1500
<tr><td valign=top><em>field_name</em> </td><td>
1501
The field name in ASCII, <code>NUL</code> terminated. </td></tr>
1502
<tr><td valign=top><em>field_value</em> </td><td>
1503
The field value in UTF-8, <code>NUL</code> terminated. </td></tr>
1505
</dl><dl compact><dt><b>
1507
<div class="fragment"><pre>entry != NULL
1508
</pre></div> <div class="fragment"><pre>field_name != NULL
1509
</pre></div> <div class="fragment"><pre>field_value != NULL
1510
</pre></div> </dl><dl compact><dt><b>
1511
Return values: </b><dd>
1512
<table border=0 cellspacing=2 cellpadding=0>
1513
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1514
<code>false</code> if malloc() fails, or if <em>field_name</em> or <em>field_value</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1519
<a name="a23" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair"></a><p>
1520
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1523
<table cellpadding="0" cellspacing="0" border="0">
1525
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair </td>
1526
<td class="md" valign="top">( </td>
1527
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1528
<td class="mdname" nowrap> <em>entry</em>, </td>
1533
<td class="md" nowrap>char ** </td>
1534
<td class="mdname" nowrap> <em>field_name</em>, </td>
1539
<td class="md" nowrap>char ** </td>
1540
<td class="mdname" nowrap> <em>field_value</em></td>
1544
<td class="md">) </td>
1545
<td class="md" colspan="2"></td>
1552
<table cellspacing=5 cellpadding=0 border=0>
1560
Splits a Vorbis comment entry into NUL-terminated name and value strings.
1562
The returned pointers to name and value will be allocated by malloc() and shall be owned by the caller.<dl compact><dt><b>
1563
Parameters: </b><dd>
1564
<table border=0 cellspacing=2 cellpadding=0>
1565
<tr><td valign=top><em>entry</em> </td><td>
1566
An existing Vorbis comment entry. </td></tr>
1567
<tr><td valign=top><em>field_name</em> </td><td>
1568
The address of where the returned pointer to the field name will be stored. </td></tr>
1569
<tr><td valign=top><em>field_value</em> </td><td>
1570
The address of where the returned pointer to the field value will be stored. </td></tr>
1572
</dl><dl compact><dt><b>
1574
<div class="fragment"><pre>(entry.entry != NULL && entry.length > 0)
1575
</pre></div> <div class="fragment"><pre>memchr(entry.entry, <font class="charliteral">'='</font>, entry.length) != NULL
1576
</pre></div> <div class="fragment"><pre>field_name != NULL
1577
</pre></div> <div class="fragment"><pre>field_value != NULL
1578
</pre></div> </dl><dl compact><dt><b>
1579
Return values: </b><dd>
1580
<table border=0 cellspacing=2 cellpadding=0>
1581
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1582
<code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1587
<a name="a24" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_matches"></a><p>
1588
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1591
<table cellpadding="0" cellspacing="0" border="0">
1593
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches </td>
1594
<td class="md" valign="top">( </td>
1595
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1596
<td class="mdname" nowrap> <em>entry</em>, </td>
1601
<td class="md" nowrap>const char * </td>
1602
<td class="mdname" nowrap> <em>field_name</em>, </td>
1429
<td class="mdname" nowrap> <em>entry</em>, </td>
1432
<td class="md" nowrap align="right"></td>
1433
<td class="md"></td>
1434
<td class="md" nowrap>const char * </td>
1435
<td class="mdname" nowrap> <em>field_name</em>, </td>
1438
<td class="md" nowrap align="right"></td>
1439
<td class="md"></td>
1440
<td class="md" nowrap>const char * </td>
1441
<td class="mdname" nowrap> <em>field_value</em></td>
1444
<td class="md"></td>
1445
<td class="md">) </td>
1446
<td class="md" colspan="2"></td>
1452
<table cellspacing="5" cellpadding="0" border="0">
1460
Creates a Vorbis comment entry from NUL-terminated name and value strings.<p>
1461
On return, the filled-in <em>entry->entry</em> pointer will point to malloc()ed memory and shall be owned by the caller. For convenience the entry will have a terminating NUL.<p>
1462
<dl compact><dt><b>Parameters:</b></dt><dd>
1463
<table border="0" cellspacing="2" cellpadding="0">
1464
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>A pointer to a Vorbis comment entry. The entry's <code>entry</code> pointer should not point to allocated memory as it will be overwritten. </td></tr>
1465
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The field name in ASCII, <code>NUL</code> terminated. </td></tr>
1466
<tr><td valign="top"></td><td valign="top"><em>field_value</em> </td><td>The field value in UTF-8, <code>NUL</code> terminated. </td></tr>
1469
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> entry != NULL
1470
</pre></div> <div class="fragment"><pre class="fragment"> field_name != NULL
1471
</pre></div> <div class="fragment"><pre class="fragment"> field_value != NULL
1472
</pre></div> </dd></dl>
1473
<dl compact><dt><b>Return values:</b></dt><dd>
1474
<table border="0" cellspacing="2" cellpadding="0">
1475
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if malloc() fails, or if <em>field_name</em> or <em>field_value</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1481
<a class="anchor" name="ga24" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair"></a><p>
1482
<table class="mdTable" cellpadding="2" cellspacing="0">
1485
<table cellpadding="0" cellspacing="0" border="0">
1487
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair </td>
1488
<td class="md" valign="top">( </td>
1489
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1490
<td class="mdname" nowrap> <em>entry</em>, </td>
1493
<td class="md" nowrap align="right"></td>
1494
<td class="md"></td>
1495
<td class="md" nowrap>char ** </td>
1496
<td class="mdname" nowrap> <em>field_name</em>, </td>
1499
<td class="md" nowrap align="right"></td>
1500
<td class="md"></td>
1501
<td class="md" nowrap>char ** </td>
1502
<td class="mdname" nowrap> <em>field_value</em></td>
1505
<td class="md"></td>
1506
<td class="md">) </td>
1507
<td class="md" colspan="2"></td>
1513
<table cellspacing="5" cellpadding="0" border="0">
1521
Splits a Vorbis comment entry into NUL-terminated name and value strings.<p>
1522
The returned pointers to name and value will be allocated by malloc() and shall be owned by the caller.<p>
1523
<dl compact><dt><b>Parameters:</b></dt><dd>
1524
<table border="0" cellspacing="2" cellpadding="0">
1525
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>An existing Vorbis comment entry. </td></tr>
1526
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The address of where the returned pointer to the field name will be stored. </td></tr>
1527
<tr><td valign="top"></td><td valign="top"><em>field_value</em> </td><td>The address of where the returned pointer to the field value will be stored. </td></tr>
1530
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0)
1531
</pre></div> <div class="fragment"><pre class="fragment"> memchr(entry.entry, <span class="charliteral">'='</span>, entry.length) != NULL
1532
</pre></div> <div class="fragment"><pre class="fragment"> field_name != NULL
1533
</pre></div> <div class="fragment"><pre class="fragment"> field_value != NULL
1534
</pre></div> </dd></dl>
1535
<dl compact><dt><b>Return values:</b></dt><dd>
1536
<table border="0" cellspacing="2" cellpadding="0">
1537
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation fails or <em>entry</em> does not comply with the Vorbis comment specification, else <code>true</code>. </td></tr>
1543
<a class="anchor" name="ga25" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_entry_matches"></a><p>
1544
<table class="mdTable" cellpadding="2" cellspacing="0">
1547
<table cellpadding="0" cellspacing="0" border="0">
1549
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches </td>
1550
<td class="md" valign="top">( </td>
1551
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> </td>
1552
<td class="mdname" nowrap> <em>entry</em>, </td>
1555
<td class="md" nowrap align="right"></td>
1556
<td class="md"></td>
1557
<td class="md" nowrap>const char * </td>
1558
<td class="mdname" nowrap> <em>field_name</em>, </td>
1561
<td class="md" nowrap align="right"></td>
1562
<td class="md"></td>
1607
1563
<td class="md" nowrap>unsigned </td>
1608
<td class="mdname" nowrap> <em>field_name_length</em></td>
1564
<td class="mdname" nowrap> <em>field_name_length</em></td>
1567
<td class="md"></td>
1612
1568
<td class="md">) </td>
1613
1569
<td class="md" colspan="2"></td>
1620
<table cellspacing=5 cellpadding=0 border=0>
1575
<table cellspacing="5" cellpadding="0" border="0">
1628
Check if the given Vorbis comment entry's field name matches the given field name.<dl compact><dt><b>
1629
Parameters: </b><dd>
1630
<table border=0 cellspacing=2 cellpadding=0>
1631
<tr><td valign=top><em>entry</em> </td><td>
1632
An existing Vorbis comment entry. </td></tr>
1633
<tr><td valign=top><em>field_name</em> </td><td>
1634
The field name to check. </td></tr>
1635
<tr><td valign=top><em>field_name_length</em> </td><td>
1636
The length of <em>field_name</em>, not including the terminating <code>NUL</code>. </td></tr>
1638
</dl><dl compact><dt><b>
1640
<div class="fragment"><pre>(entry.entry != NULL && entry.length > 0)
1641
</pre></div> </dl><dl compact><dt><b>
1642
Return values: </b><dd>
1643
<table border=0 cellspacing=2 cellpadding=0>
1644
<tr><td valign=top><em>FLAC__bool</em> </td><td>
1645
<code>true</code> if the field names match, else <code>false</code> </td></tr>
1583
Check if the given Vorbis comment entry's field name matches the given field name.<p>
1584
<dl compact><dt><b>Parameters:</b></dt><dd>
1585
<table border="0" cellspacing="2" cellpadding="0">
1586
<tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>An existing Vorbis comment entry. </td></tr>
1587
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The field name to check. </td></tr>
1588
<tr><td valign="top"></td><td valign="top"><em>field_name_length</em> </td><td>The length of <em>field_name</em>, not including the terminating <code>NUL</code>. </td></tr>
1591
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> (entry.entry != NULL && entry.length > 0)
1592
</pre></div> </dd></dl>
1593
<dl compact><dt><b>Return values:</b></dt><dd>
1594
<table border="0" cellspacing="2" cellpadding="0">
1595
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>true</code> if the field names match, else <code>false</code> </td></tr>
1650
<a name="a25" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_find_entry_from"></a><p>
1651
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1601
<a class="anchor" name="ga26" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_find_entry_from"></a><p>
1602
<table class="mdTable" cellpadding="2" cellspacing="0">
1654
1605
<table cellpadding="0" cellspacing="0" border="0">
1656
<td class="md" nowrap valign="top"> int FLAC__metadata_object_vorbiscomment_find_entry_from </td>
1607
<td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_find_entry_from </td>
1657
1608
<td class="md" valign="top">( </td>
1658
1609
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1659
<td class="mdname" nowrap> <em>object</em>, </td>
1610
<td class="mdname" nowrap> <em>object</em>, </td>
1613
<td class="md" nowrap align="right"></td>
1614
<td class="md"></td>
1664
1615
<td class="md" nowrap>unsigned </td>
1665
<td class="mdname" nowrap> <em>offset</em>, </td>
1670
<td class="md" nowrap>const char * </td>
1671
<td class="mdname" nowrap> <em>field_name</em></td>
1675
<td class="md">) </td>
1676
<td class="md" colspan="2"></td>
1683
<table cellspacing=5 cellpadding=0 border=0>
1691
Find a Vorbis comment with the given field name.
1693
The search begins at entry number <em>offset</em>; use an offset of 0 to search from the beginning of the comment array.<dl compact><dt><b>
1694
Parameters: </b><dd>
1695
<table border=0 cellspacing=2 cellpadding=0>
1696
<tr><td valign=top><em>object</em> </td><td>
1697
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1698
<tr><td valign=top><em>offset</em> </td><td>
1699
The offset into the comment array from where to start the search. </td></tr>
1700
<tr><td valign=top><em>field_name</em> </td><td>
1701
The field name of the comment to find. </td></tr>
1703
</dl><dl compact><dt><b>
1705
<div class="fragment"><pre>object != NULL
1706
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1707
</pre></div> <div class="fragment"><pre>field_name != NULL
1708
</pre></div> </dl><dl compact><dt><b>
1709
Return values: </b><dd>
1710
<table border=0 cellspacing=2 cellpadding=0>
1711
<tr><td valign=top><em>int</em> </td><td>
1712
The offset in the comment array of the first comment whose field name matches <em>field_name</em>, or <code>-1</code> if no match was found. </td></tr>
1717
<a name="a26" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_remove_entry_matching"></a><p>
1718
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1721
<table cellpadding="0" cellspacing="0" border="0">
1723
<td class="md" nowrap valign="top"> int FLAC__metadata_object_vorbiscomment_remove_entry_matching </td>
1724
<td class="md" valign="top">( </td>
1725
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1726
<td class="mdname" nowrap> <em>object</em>, </td>
1731
<td class="md" nowrap>const char * </td>
1732
<td class="mdname" nowrap> <em>field_name</em></td>
1736
<td class="md">) </td>
1737
<td class="md" colspan="2"></td>
1744
<table cellspacing=5 cellpadding=0 border=0>
1752
Remove first Vorbis comment matching the given field name.<dl compact><dt><b>
1753
Parameters: </b><dd>
1754
<table border=0 cellspacing=2 cellpadding=0>
1755
<tr><td valign=top><em>object</em> </td><td>
1756
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1757
<tr><td valign=top><em>field_name</em> </td><td>
1758
The field name of comment to delete. </td></tr>
1760
</dl><dl compact><dt><b>
1762
<div class="fragment"><pre>object != NULL
1763
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1764
</pre></div> </dl><dl compact><dt><b>
1765
Return values: </b><dd>
1766
<table border=0 cellspacing=2 cellpadding=0>
1767
<tr><td valign=top><em>int</em> </td><td>
1768
<code>-1</code> for memory allocation error, <code>0</code> for no matching entries, <code>1</code> for one matching entry deleted. </td></tr>
1773
<a name="a27" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_remove_entries_matching"></a><p>
1774
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1777
<table cellpadding="0" cellspacing="0" border="0">
1779
<td class="md" nowrap valign="top"> int FLAC__metadata_object_vorbiscomment_remove_entries_matching </td>
1780
<td class="md" valign="top">( </td>
1781
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1782
<td class="mdname" nowrap> <em>object</em>, </td>
1787
<td class="md" nowrap>const char * </td>
1788
<td class="mdname" nowrap> <em>field_name</em></td>
1792
<td class="md">) </td>
1793
<td class="md" colspan="2"></td>
1800
<table cellspacing=5 cellpadding=0 border=0>
1808
Remove all Vorbis comments matching the given field name.<dl compact><dt><b>
1809
Parameters: </b><dd>
1810
<table border=0 cellspacing=2 cellpadding=0>
1811
<tr><td valign=top><em>object</em> </td><td>
1812
A pointer to an existing VORBIS_COMMENT object. </td></tr>
1813
<tr><td valign=top><em>field_name</em> </td><td>
1814
The field name of comments to delete. </td></tr>
1816
</dl><dl compact><dt><b>
1818
<div class="fragment"><pre>object != NULL
1819
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a101">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1820
</pre></div> </dl><dl compact><dt><b>
1821
Return values: </b><dd>
1822
<table border=0 cellspacing=2 cellpadding=0>
1823
<tr><td valign=top><em>int</em> </td><td>
1824
<code>-1</code> for memory allocation error, <code>0</code> for no matching entries, else the number of matching entries deleted. </td></tr>
1829
<a name="a28" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_new"></a><p>
1830
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1833
<table cellpadding="0" cellspacing="0" border="0">
1835
<td class="md" nowrap valign="top"> <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a>* FLAC__metadata_object_cuesheet_track_new </td>
1836
<td class="md" valign="top">( </td>
1837
<td class="mdname1" valign="top" nowrap> </td>
1838
<td class="md" valign="top">) </td>
1616
<td class="mdname" nowrap> <em>offset</em>, </td>
1619
<td class="md" nowrap align="right"></td>
1620
<td class="md"></td>
1621
<td class="md" nowrap>const char * </td>
1622
<td class="mdname" nowrap> <em>field_name</em></td>
1625
<td class="md"></td>
1626
<td class="md">) </td>
1627
<td class="md" colspan="2"></td>
1633
<table cellspacing="5" cellpadding="0" border="0">
1641
Find a Vorbis comment with the given field name.<p>
1642
The search begins at entry number <em>offset</em>; use an offset of 0 to search from the beginning of the comment array.<p>
1643
<dl compact><dt><b>Parameters:</b></dt><dd>
1644
<table border="0" cellspacing="2" cellpadding="0">
1645
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1646
<tr><td valign="top"></td><td valign="top"><em>offset</em> </td><td>The offset into the comment array from where to start the search. </td></tr>
1647
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The field name of the comment to find. </td></tr>
1650
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1651
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1652
</pre></div> <div class="fragment"><pre class="fragment"> field_name != NULL
1653
</pre></div> </dd></dl>
1654
<dl compact><dt><b>Return values:</b></dt><dd>
1655
<table border="0" cellspacing="2" cellpadding="0">
1656
<tr><td valign="top"></td><td valign="top"><em>int</em> </td><td>The offset in the comment array of the first comment whose field name matches <em>field_name</em>, or <code>-1</code> if no match was found. </td></tr>
1662
<a class="anchor" name="ga27" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_remove_entry_matching"></a><p>
1663
<table class="mdTable" cellpadding="2" cellspacing="0">
1666
<table cellpadding="0" cellspacing="0" border="0">
1668
<td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_remove_entry_matching </td>
1669
<td class="md" valign="top">( </td>
1670
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1671
<td class="mdname" nowrap> <em>object</em>, </td>
1674
<td class="md" nowrap align="right"></td>
1675
<td class="md"></td>
1676
<td class="md" nowrap>const char * </td>
1677
<td class="mdname" nowrap> <em>field_name</em></td>
1680
<td class="md"></td>
1681
<td class="md">) </td>
1682
<td class="md" colspan="2"></td>
1688
<table cellspacing="5" cellpadding="0" border="0">
1696
Remove first Vorbis comment matching the given field name.<p>
1697
<dl compact><dt><b>Parameters:</b></dt><dd>
1698
<table border="0" cellspacing="2" cellpadding="0">
1699
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1700
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The field name of comment to delete. </td></tr>
1703
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1704
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1705
</pre></div> </dd></dl>
1706
<dl compact><dt><b>Return values:</b></dt><dd>
1707
<table border="0" cellspacing="2" cellpadding="0">
1708
<tr><td valign="top"></td><td valign="top"><em>int</em> </td><td><code>-1</code> for memory allocation error, <code>0</code> for no matching entries, <code>1</code> for one matching entry deleted. </td></tr>
1714
<a class="anchor" name="ga28" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_remove_entries_matching"></a><p>
1715
<table class="mdTable" cellpadding="2" cellspacing="0">
1718
<table cellpadding="0" cellspacing="0" border="0">
1720
<td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_remove_entries_matching </td>
1721
<td class="md" valign="top">( </td>
1722
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
1723
<td class="mdname" nowrap> <em>object</em>, </td>
1726
<td class="md" nowrap align="right"></td>
1727
<td class="md"></td>
1728
<td class="md" nowrap>const char * </td>
1729
<td class="mdname" nowrap> <em>field_name</em></td>
1732
<td class="md"></td>
1733
<td class="md">) </td>
1734
<td class="md" colspan="2"></td>
1740
<table cellspacing="5" cellpadding="0" border="0">
1748
Remove all Vorbis comments matching the given field name.<p>
1749
<dl compact><dt><b>Parameters:</b></dt><dd>
1750
<table border="0" cellspacing="2" cellpadding="0">
1751
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1752
<tr><td valign="top"></td><td valign="top"><em>field_name</em> </td><td>The field name of comments to delete. </td></tr>
1755
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1756
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a112">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1757
</pre></div> </dd></dl>
1758
<dl compact><dt><b>Return values:</b></dt><dd>
1759
<table border="0" cellspacing="2" cellpadding="0">
1760
<tr><td valign="top"></td><td valign="top"><em>int</em> </td><td><code>-1</code> for memory allocation error, <code>0</code> for no matching entries, else the number of matching entries deleted. </td></tr>
1766
<a class="anchor" name="ga29" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_new"></a><p>
1767
<table class="mdTable" cellpadding="2" cellspacing="0">
1770
<table cellpadding="0" cellspacing="0" border="0">
1772
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a>* FLAC__metadata_object_cuesheet_track_new </td>
1773
<td class="md" valign="top">( </td>
1774
<td class="md" nowrap valign="top">void </td>
1775
<td class="mdname1" valign="top" nowrap> </td>
1776
<td class="md" valign="top"> ) </td>
1839
1777
<td class="md" nowrap></td>
1846
<table cellspacing=5 cellpadding=0 border=0>
1783
<table cellspacing="5" cellpadding="0" border="0">
1990
Resize a track's index point array.
1992
If the size shrinks, elements will truncated; if it grows, new blank indices will be added to the end.<dl compact><dt><b>
1993
Parameters: </b><dd>
1994
<table border=0 cellspacing=2 cellpadding=0>
1995
<tr><td valign=top><em>object</em> </td><td>
1996
A pointer to an existing CUESHEET object. </td></tr>
1997
<tr><td valign=top><em>track_num</em> </td><td>
1998
The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
1999
<tr><td valign=top><em>new_num_indices</em> </td><td>
2000
The desired length of the array; may be <code>0</code>. </td></tr>
2002
</dl><dl compact><dt><b>
2004
<div class="fragment"><pre>object != NULL
2005
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2006
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks > track_num
2007
</pre></div> <div class="fragment"><pre>(object->data.cue_sheet.tracks[track_num].indices == NULL && object->data.cue_sheet.tracks[track_num].num_indices == 0) ||
1919
Resize a track's index point array.<p>
1920
If the size shrinks, elements will truncated; if it grows, new blank indices will be added to the end.<p>
1921
<dl compact><dt><b>Parameters:</b></dt><dd>
1922
<table border="0" cellspacing="2" cellpadding="0">
1923
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
1924
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
1925
<tr><td valign="top"></td><td valign="top"><em>new_num_indices</em> </td><td>The desired length of the array; may be <code>0</code>. </td></tr>
1928
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1929
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
1930
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks > track_num
1931
</pre></div> <div class="fragment"><pre class="fragment"> (object->data.cue_sheet.tracks[track_num].indices == NULL && object->data.cue_sheet.tracks[track_num].num_indices == 0) ||
2008
1932
(object->data.cue_sheet.tracks[track_num].indices != NULL && object->data.cue_sheet.tracks[track_num].num_indices > 0)
2009
</pre></div> </dl><dl compact><dt><b>
2010
Return values: </b><dd>
2011
<table border=0 cellspacing=2 cellpadding=0>
2012
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2013
<code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
1933
</pre></div> </dd></dl>
1934
<dl compact><dt><b>Return values:</b></dt><dd>
1935
<table border="0" cellspacing="2" cellpadding="0">
1936
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
2018
<a name="a32" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_insert_index"></a><p>
2019
<table width="100%" cellpadding="2" cellspacing="0" border="0">
1942
<a class="anchor" name="ga33" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_insert_index"></a><p>
1943
<table class="mdTable" cellpadding="2" cellspacing="0">
2022
1946
<table cellpadding="0" cellspacing="0" border="0">
2024
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index </td>
1948
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index </td>
2025
1949
<td class="md" valign="top">( </td>
2026
1950
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2027
<td class="mdname" nowrap> <em>object</em>, </td>
2032
<td class="md" nowrap>unsigned </td>
2033
<td class="mdname" nowrap> <em>track_num</em>, </td>
2038
<td class="md" nowrap>unsigned </td>
2039
<td class="mdname" nowrap> <em>index_num</em>, </td>
1951
<td class="mdname" nowrap> <em>object</em>, </td>
1954
<td class="md" nowrap align="right"></td>
1955
<td class="md"></td>
1956
<td class="md" nowrap>unsigned </td>
1957
<td class="mdname" nowrap> <em>track_num</em>, </td>
1960
<td class="md" nowrap align="right"></td>
1961
<td class="md"></td>
1962
<td class="md" nowrap>unsigned </td>
1963
<td class="mdname" nowrap> <em>index_num</em>, </td>
1966
<td class="md" nowrap align="right"></td>
1967
<td class="md"></td>
2044
1968
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> </td>
2045
<td class="mdname" nowrap> <em>index</em></td>
2049
<td class="md">) </td>
2050
<td class="md" colspan="2"></td>
2057
<table cellspacing=5 cellpadding=0 border=0>
2065
Insert an index point in a CUESHEET track at the given index.<dl compact><dt><b>
2066
Parameters: </b><dd>
2067
<table border=0 cellspacing=2 cellpadding=0>
2068
<tr><td valign=top><em>object</em> </td><td>
2069
A pointer to an existing CUESHEET object. </td></tr>
2070
<tr><td valign=top><em>track_num</em> </td><td>
2071
The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2072
<tr><td valign=top><em>index_num</em> </td><td>
2073
The index into the track's index array at which to insert the index point. NOTE: this is not necessarily the same as the index point's <em>number</em> field. The indices at and after <em>index_num</em> move right one position. To append an index point to the end, set <em>index_num</em> to <code>object->data.cue_sheet.tracks[track_num].num_indices</code> . </td></tr>
2074
<tr><td valign=top><em>index</em> </td><td>
2075
The index point to insert. </td></tr>
2077
</dl><dl compact><dt><b>
2079
<div class="fragment"><pre>object != NULL
2080
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2081
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks > track_num
2082
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.tracks[track_num].num_indices >= index_num
2083
</pre></div> </dl><dl compact><dt><b>
2084
Return values: </b><dd>
2085
<table border=0 cellspacing=2 cellpadding=0>
2086
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2087
<code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2092
<a name="a33" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_insert_blank_index"></a><p>
2093
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2096
<table cellpadding="0" cellspacing="0" border="0">
2098
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index </td>
2099
<td class="md" valign="top">( </td>
2100
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2101
<td class="mdname" nowrap> <em>object</em>, </td>
2106
<td class="md" nowrap>unsigned </td>
2107
<td class="mdname" nowrap> <em>track_num</em>, </td>
2112
<td class="md" nowrap>unsigned </td>
2113
<td class="mdname" nowrap> <em>index_num</em></td>
2117
<td class="md">) </td>
2118
<td class="md" colspan="2"></td>
2125
<table cellspacing=5 cellpadding=0 border=0>
2133
Insert a blank index point in a CUESHEET track at the given index.
2135
A blank index point is one in which all field values are zero.<dl compact><dt><b>
2136
Parameters: </b><dd>
2137
<table border=0 cellspacing=2 cellpadding=0>
2138
<tr><td valign=top><em>object</em> </td><td>
2139
A pointer to an existing CUESHEET object. </td></tr>
2140
<tr><td valign=top><em>track_num</em> </td><td>
2141
The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2142
<tr><td valign=top><em>index_num</em> </td><td>
2143
The index into the track's index array at which to insert the index point. NOTE: this is not necessarily the same as the index point's <em>number</em> field. The indices at and after <em>index_num</em> move right one position. To append an index point to the end, set <em>index_num</em> to <code>object->data.cue_sheet.tracks[track_num].num_indices</code> . </td></tr>
2145
</dl><dl compact><dt><b>
2147
<div class="fragment"><pre>object != NULL
2148
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2149
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks > track_num
2150
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.tracks[track_num].num_indices >= index_num
2151
</pre></div> </dl><dl compact><dt><b>
2152
Return values: </b><dd>
2153
<table border=0 cellspacing=2 cellpadding=0>
2154
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2155
<code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2160
<a name="a34" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_delete_index"></a><p>
2161
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2164
<table cellpadding="0" cellspacing="0" border="0">
2166
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index </td>
2167
<td class="md" valign="top">( </td>
2168
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2169
<td class="mdname" nowrap> <em>object</em>, </td>
2174
<td class="md" nowrap>unsigned </td>
2175
<td class="mdname" nowrap> <em>track_num</em>, </td>
2180
<td class="md" nowrap>unsigned </td>
2181
<td class="mdname" nowrap> <em>index_num</em></td>
2185
<td class="md">) </td>
2186
<td class="md" colspan="2"></td>
2193
<table cellspacing=5 cellpadding=0 border=0>
2201
Delete an index point in a CUESHEET track at the given index.<dl compact><dt><b>
2202
Parameters: </b><dd>
2203
<table border=0 cellspacing=2 cellpadding=0>
2204
<tr><td valign=top><em>object</em> </td><td>
2205
A pointer to an existing CUESHEET object. </td></tr>
2206
<tr><td valign=top><em>track_num</em> </td><td>
2207
The index into the track array of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2208
<tr><td valign=top><em>index_num</em> </td><td>
2209
The index into the track's index array of the index to delete. NOTE: this is not necessarily the same as the index's <em>number</em> field. </td></tr>
2211
</dl><dl compact><dt><b>
2213
<div class="fragment"><pre>object != NULL
2214
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2215
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks > track_num
2216
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.tracks[track_num].num_indices > index_num
2217
</pre></div> </dl><dl compact><dt><b>
2218
Return values: </b><dd>
2219
<table border=0 cellspacing=2 cellpadding=0>
2220
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2221
<code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2226
<a name="a35" doxytag="metadata.h::FLAC__metadata_object_cuesheet_resize_tracks"></a><p>
2227
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2230
<table cellpadding="0" cellspacing="0" border="0">
2232
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks </td>
2233
<td class="md" valign="top">( </td>
2234
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2235
<td class="mdname" nowrap> <em>object</em>, </td>
2240
<td class="md" nowrap>unsigned </td>
2241
<td class="mdname" nowrap> <em>new_num_tracks</em></td>
2245
<td class="md">) </td>
2246
<td class="md" colspan="2"></td>
2253
<table cellspacing=5 cellpadding=0 border=0>
2261
Resize the track array.
2263
If the size shrinks, elements will truncated; if it grows, new blank tracks will be added to the end.<dl compact><dt><b>
2264
Parameters: </b><dd>
2265
<table border=0 cellspacing=2 cellpadding=0>
2266
<tr><td valign=top><em>object</em> </td><td>
2267
A pointer to an existing CUESHEET object. </td></tr>
2268
<tr><td valign=top><em>new_num_tracks</em> </td><td>
2269
The desired length of the array; may be <code>0</code>. </td></tr>
2271
</dl><dl compact><dt><b>
2273
<div class="fragment"><pre>object != NULL
2274
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2275
</pre></div> <div class="fragment"><pre>(object->data.cue_sheet.tracks == NULL && object->data.cue_sheet.num_tracks == 0) ||
1969
<td class="mdname" nowrap> <em>index</em></td>
1972
<td class="md"></td>
1973
<td class="md">) </td>
1974
<td class="md" colspan="2"></td>
1980
<table cellspacing="5" cellpadding="0" border="0">
1988
Insert an index point in a CUESHEET track at the given index.<p>
1989
<dl compact><dt><b>Parameters:</b></dt><dd>
1990
<table border="0" cellspacing="2" cellpadding="0">
1991
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
1992
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
1993
<tr><td valign="top"></td><td valign="top"><em>index_num</em> </td><td>The index into the track's index array at which to insert the index point. NOTE: this is not necessarily the same as the index point's <em>number</em> field. The indices at and after <em>index_num</em> move right one position. To append an index point to the end, set <em>index_num</em> to <code>object->data.cue_sheet.tracks</code>[track_num].num_indices . </td></tr>
1994
<tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>The index point to insert. </td></tr>
1997
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1998
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
1999
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks > track_num
2000
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.tracks[track_num].num_indices >= index_num
2001
</pre></div> </dd></dl>
2002
<dl compact><dt><b>Return values:</b></dt><dd>
2003
<table border="0" cellspacing="2" cellpadding="0">
2004
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2010
<a class="anchor" name="ga34" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_insert_blank_index"></a><p>
2011
<table class="mdTable" cellpadding="2" cellspacing="0">
2014
<table cellpadding="0" cellspacing="0" border="0">
2016
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index </td>
2017
<td class="md" valign="top">( </td>
2018
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2019
<td class="mdname" nowrap> <em>object</em>, </td>
2022
<td class="md" nowrap align="right"></td>
2023
<td class="md"></td>
2024
<td class="md" nowrap>unsigned </td>
2025
<td class="mdname" nowrap> <em>track_num</em>, </td>
2028
<td class="md" nowrap align="right"></td>
2029
<td class="md"></td>
2030
<td class="md" nowrap>unsigned </td>
2031
<td class="mdname" nowrap> <em>index_num</em></td>
2034
<td class="md"></td>
2035
<td class="md">) </td>
2036
<td class="md" colspan="2"></td>
2042
<table cellspacing="5" cellpadding="0" border="0">
2050
Insert a blank index point in a CUESHEET track at the given index.<p>
2051
A blank index point is one in which all field values are zero.<p>
2052
<dl compact><dt><b>Parameters:</b></dt><dd>
2053
<table border="0" cellspacing="2" cellpadding="0">
2054
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2055
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2056
<tr><td valign="top"></td><td valign="top"><em>index_num</em> </td><td>The index into the track's index array at which to insert the index point. NOTE: this is not necessarily the same as the index point's <em>number</em> field. The indices at and after <em>index_num</em> move right one position. To append an index point to the end, set <em>index_num</em> to <code>object->data.cue_sheet.tracks</code>[track_num].num_indices . </td></tr>
2059
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2060
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2061
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks > track_num
2062
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.tracks[track_num].num_indices >= index_num
2063
</pre></div> </dd></dl>
2064
<dl compact><dt><b>Return values:</b></dt><dd>
2065
<table border="0" cellspacing="2" cellpadding="0">
2066
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2072
<a class="anchor" name="ga35" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_delete_index"></a><p>
2073
<table class="mdTable" cellpadding="2" cellspacing="0">
2076
<table cellpadding="0" cellspacing="0" border="0">
2078
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index </td>
2079
<td class="md" valign="top">( </td>
2080
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2081
<td class="mdname" nowrap> <em>object</em>, </td>
2084
<td class="md" nowrap align="right"></td>
2085
<td class="md"></td>
2086
<td class="md" nowrap>unsigned </td>
2087
<td class="mdname" nowrap> <em>track_num</em>, </td>
2090
<td class="md" nowrap align="right"></td>
2091
<td class="md"></td>
2092
<td class="md" nowrap>unsigned </td>
2093
<td class="mdname" nowrap> <em>index_num</em></td>
2096
<td class="md"></td>
2097
<td class="md">) </td>
2098
<td class="md" colspan="2"></td>
2104
<table cellspacing="5" cellpadding="0" border="0">
2112
Delete an index point in a CUESHEET track at the given index.<p>
2113
<dl compact><dt><b>Parameters:</b></dt><dd>
2114
<table border="0" cellspacing="2" cellpadding="0">
2115
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2116
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index into the track array of the track to modify. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2117
<tr><td valign="top"></td><td valign="top"><em>index_num</em> </td><td>The index into the track's index array of the index to delete. NOTE: this is not necessarily the same as the index's <em>number</em> field. </td></tr>
2120
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2121
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2122
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks > track_num
2123
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.tracks[track_num].num_indices > index_num
2124
</pre></div> </dd></dl>
2125
<dl compact><dt><b>Return values:</b></dt><dd>
2126
<table border="0" cellspacing="2" cellpadding="0">
2127
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2133
<a class="anchor" name="ga36" doxytag="metadata.h::FLAC__metadata_object_cuesheet_resize_tracks"></a><p>
2134
<table class="mdTable" cellpadding="2" cellspacing="0">
2137
<table cellpadding="0" cellspacing="0" border="0">
2139
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks </td>
2140
<td class="md" valign="top">( </td>
2141
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2142
<td class="mdname" nowrap> <em>object</em>, </td>
2145
<td class="md" nowrap align="right"></td>
2146
<td class="md"></td>
2147
<td class="md" nowrap>unsigned </td>
2148
<td class="mdname" nowrap> <em>new_num_tracks</em></td>
2151
<td class="md"></td>
2152
<td class="md">) </td>
2153
<td class="md" colspan="2"></td>
2159
<table cellspacing="5" cellpadding="0" border="0">
2167
Resize the track array.<p>
2168
If the size shrinks, elements will truncated; if it grows, new blank tracks will be added to the end.<p>
2169
<dl compact><dt><b>Parameters:</b></dt><dd>
2170
<table border="0" cellspacing="2" cellpadding="0">
2171
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2172
<tr><td valign="top"></td><td valign="top"><em>new_num_tracks</em> </td><td>The desired length of the array; may be <code>0</code>. </td></tr>
2175
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2176
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2177
</pre></div> <div class="fragment"><pre class="fragment"> (object->data.cue_sheet.tracks == NULL && object->data.cue_sheet.num_tracks == 0) ||
2276
2178
(object->data.cue_sheet.tracks != NULL && object->data.cue_sheet.num_tracks > 0)
2277
</pre></div> </dl><dl compact><dt><b>
2278
Return values: </b><dd>
2279
<table border=0 cellspacing=2 cellpadding=0>
2280
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2281
<code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
2179
</pre></div> </dd></dl>
2180
<dl compact><dt><b>Return values:</b></dt><dd>
2181
<table border="0" cellspacing="2" cellpadding="0">
2182
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
2286
<a name="a36" doxytag="metadata.h::FLAC__metadata_object_cuesheet_insert_track"></a><p>
2287
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2188
<a class="anchor" name="ga37" doxytag="metadata.h::FLAC__metadata_object_cuesheet_insert_track"></a><p>
2189
<table class="mdTable" cellpadding="2" cellspacing="0">
2290
2192
<table cellpadding="0" cellspacing="0" border="0">
2292
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_insert_track </td>
2194
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_insert_track </td>
2293
2195
<td class="md" valign="top">( </td>
2294
2196
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2295
<td class="mdname" nowrap> <em>object</em>, </td>
2197
<td class="mdname" nowrap> <em>object</em>, </td>
2200
<td class="md" nowrap align="right"></td>
2201
<td class="md"></td>
2300
2202
<td class="md" nowrap>unsigned </td>
2301
<td class="mdname" nowrap> <em>track_num</em>, </td>
2203
<td class="mdname" nowrap> <em>track_num</em>, </td>
2206
<td class="md" nowrap align="right"></td>
2207
<td class="md"></td>
2306
2208
<td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> * </td>
2307
<td class="mdname" nowrap> <em>track</em>, </td>
2209
<td class="mdname" nowrap> <em>track</em>, </td>
2212
<td class="md" nowrap align="right"></td>
2213
<td class="md"></td>
2312
2214
<td class="md" nowrap>FLAC__bool </td>
2313
<td class="mdname" nowrap> <em>copy</em></td>
2215
<td class="mdname" nowrap> <em>copy</em></td>
2218
<td class="md"></td>
2317
2219
<td class="md">) </td>
2318
2220
<td class="md" colspan="2"></td>
2325
<table cellspacing=5 cellpadding=0 border=0>
2226
<table cellspacing="5" cellpadding="0" border="0">
2333
Sets a track in a CUESHEET block.
2335
If <em>copy</em> is <code>true</code>, a copy of the track is stored; otherwise, the object takes ownership of the <em>track</em> pointer.<dl compact><dt><b>
2336
Parameters: </b><dd>
2337
<table border=0 cellspacing=2 cellpadding=0>
2338
<tr><td valign=top><em>object</em> </td><td>
2339
A pointer to an existing CUESHEET object. </td></tr>
2340
<tr><td valign=top><em>track_num</em> </td><td>
2341
Index into track array to set. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2342
<tr><td valign=top><em>track</em> </td><td>
2343
The track to set the track to. You may safely pass in a const pointer if <em>copy</em> is <code>true</code>. </td></tr>
2344
<tr><td valign=top><em>copy</em> </td><td>
2345
See above. </td></tr>
2347
</dl><dl compact><dt><b>
2349
<div class="fragment"><pre>object != NULL
2350
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2351
</pre></div> <div class="fragment"><pre>track_num < object->data.cue_sheet.num_tracks
2352
</pre></div> <div class="fragment"><pre>(track->indices != NULL && track->num_indices > 0) ||
2234
Sets a track in a CUESHEET block.<p>
2235
If <em>copy</em> is <code>true</code>, a copy of the track is stored; otherwise, the object takes ownership of the <em>track</em> pointer.<p>
2236
<dl compact><dt><b>Parameters:</b></dt><dd>
2237
<table border="0" cellspacing="2" cellpadding="0">
2238
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2239
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>Index into track array to set. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2240
<tr><td valign="top"></td><td valign="top"><em>track</em> </td><td>The track to set the track to. You may safely pass in a const pointer if <em>copy</em> is <code>true</code>. </td></tr>
2241
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
2244
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2245
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2246
</pre></div> <div class="fragment"><pre class="fragment"> track_num < object->data.cue_sheet.num_tracks
2247
</pre></div> <div class="fragment"><pre class="fragment"> (track->indices != NULL && track->num_indices > 0) ||
2353
2248
(track->indices == NULL && track->num_indices == 0)
2354
2249
\retval FLAC__bool
2355
\c <font class="keyword">false</font> <font class="keywordflow">if</font> \a copy is \c <font class="keyword">true</font> and malloc() fails, <font class="keywordflow">else</font> \c <font class="keyword">true</font>.
2250
\c <span class="keyword">false</span> <span class="keywordflow">if</span> \a copy is \c <span class="keyword">true</span> and malloc() fails, else \c true.
2357
FLAC__bool FLAC__metadata_object_cuesheet_set_track(<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <font class="keywordtype">unsigned</font> track_num, <a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *track, FLAC__bool copy);
2358
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2359
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks >= track_num
2360
</pre></div> </dl><dl compact><dt><b>
2361
Return values: </b><dd>
2362
<table border=0 cellspacing=2 cellpadding=0>
2363
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2364
<code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2369
<a name="a37" doxytag="metadata.h::FLAC__metadata_object_cuesheet_insert_blank_track"></a><p>
2370
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2373
<table cellpadding="0" cellspacing="0" border="0">
2375
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track </td>
2376
<td class="md" valign="top">( </td>
2377
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2378
<td class="mdname" nowrap> <em>object</em>, </td>
2383
<td class="md" nowrap>unsigned </td>
2384
<td class="mdname" nowrap> <em>track_num</em></td>
2388
<td class="md">) </td>
2389
<td class="md" colspan="2"></td>
2396
<table cellspacing=5 cellpadding=0 border=0>
2404
Insert a blank track in a CUESHEET block at the given index.
2406
A blank track is one in which all field values are zero.<dl compact><dt><b>
2407
Parameters: </b><dd>
2408
<table border=0 cellspacing=2 cellpadding=0>
2409
<tr><td valign=top><em>object</em> </td><td>
2410
A pointer to an existing CUESHEET object. </td></tr>
2411
<tr><td valign=top><em>track_num</em> </td><td>
2412
The index at which to insert the track. NOTE: this is not necessarily the same as the track's <em>number</em> field. The tracks at and after <em>track_num</em> move right one position. To append a track to the end, set <em>track_num</em> to <code>object->data.cue_sheet.num_tracks</code> . </td></tr>
2414
</dl><dl compact><dt><b>
2416
<div class="fragment"><pre>object != NULL
2417
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2418
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks >= track_num
2419
</pre></div> </dl><dl compact><dt><b>
2420
Return values: </b><dd>
2421
<table border=0 cellspacing=2 cellpadding=0>
2422
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2423
<code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2428
<a name="a38" doxytag="metadata.h::FLAC__metadata_object_cuesheet_delete_track"></a><p>
2429
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2432
<table cellpadding="0" cellspacing="0" border="0">
2434
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_delete_track </td>
2435
<td class="md" valign="top">( </td>
2436
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2437
<td class="mdname" nowrap> <em>object</em>, </td>
2442
<td class="md" nowrap>unsigned </td>
2443
<td class="mdname" nowrap> <em>track_num</em></td>
2447
<td class="md">) </td>
2448
<td class="md" colspan="2"></td>
2455
<table cellspacing=5 cellpadding=0 border=0>
2463
Delete a track in a CUESHEET block at the given index.<dl compact><dt><b>
2464
Parameters: </b><dd>
2465
<table border=0 cellspacing=2 cellpadding=0>
2466
<tr><td valign=top><em>object</em> </td><td>
2467
A pointer to an existing CUESHEET object. </td></tr>
2468
<tr><td valign=top><em>track_num</em> </td><td>
2469
The index into the track array of the track to delete. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2471
</dl><dl compact><dt><b>
2473
<div class="fragment"><pre>object != NULL
2474
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2475
</pre></div> <div class="fragment"><pre>object->data.cue_sheet.num_tracks > track_num
2476
</pre></div> </dl><dl compact><dt><b>
2477
Return values: </b><dd>
2478
<table border=0 cellspacing=2 cellpadding=0>
2479
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2480
<code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2485
<a name="a39" doxytag="metadata.h::FLAC__metadata_object_cuesheet_is_legal"></a><p>
2486
<table width="100%" cellpadding="2" cellspacing="0" border="0">
2489
<table cellpadding="0" cellspacing="0" border="0">
2491
<td class="md" nowrap valign="top"> FLAC__bool FLAC__metadata_object_cuesheet_is_legal </td>
2492
<td class="md" valign="top">( </td>
2493
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2494
<td class="mdname" nowrap> <em>object</em>, </td>
2499
<td class="md" nowrap>FLAC__bool </td>
2500
<td class="mdname" nowrap> <em>check_cd_da_subset</em>, </td>
2505
<td class="md" nowrap>const char ** </td>
2506
<td class="mdname" nowrap> <em>violation</em></td>
2510
<td class="md">) </td>
2511
<td class="md" colspan="2"></td>
2518
<table cellspacing=5 cellpadding=0 border=0>
2526
Check a cue sheet to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the cue sheet.<dl compact><dt><b>
2527
Parameters: </b><dd>
2528
<table border=0 cellspacing=2 cellpadding=0>
2529
<tr><td valign=top><em>object</em> </td><td>
2530
A pointer to an existing CUESHEET object. </td></tr>
2531
<tr><td valign=top><em>check_cd_da_subset</em> </td><td>
2532
If <code>true</code>, check CUESHEET against more stringent requirements for a CD-DA (audio) disc. </td></tr>
2533
<tr><td valign=top><em>violation</em> </td><td>
2534
Address of a pointer to a string. If there is a violation, a pointer to a string explanation of the violation will be returned here. <em>violation</em> may be <code>NULL</code> if you don't need the returned string. Do not free the returned string; it will always point to static data. </td></tr>
2536
</dl><dl compact><dt><b>
2538
<div class="fragment"><pre>object != NULL
2539
</pre></div> <div class="fragment"><pre>object->type == <a class="code" href="format_8h.html#a97a102">FLAC__METADATA_TYPE_CUESHEET</a>
2540
</pre></div> </dl><dl compact><dt><b>
2541
Return values: </b><dd>
2542
<table border=0 cellspacing=2 cellpadding=0>
2543
<tr><td valign=top><em>FLAC__bool</em> </td><td>
2544
<code>false</code> if cue sheet is illegal, else <code>true</code>. </td></tr>
2549
<hr><address><small>Generated on Fri Feb 4 18:39:16 2005 for FLAC by
2550
<a href="http://www.doxygen.org/index.html">
2551
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
2552
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
2553
© 1997-2002</small></address>
2252
FLAC__bool FLAC__metadata_object_cuesheet_set_track(<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">unsigned</span> track_num, <a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *track, FLAC__bool copy);
2254
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2255
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks >= track_num
2256
</pre></div> </dd></dl>
2257
<dl compact><dt><b>Return values:</b></dt><dd>
2258
<table border="0" cellspacing="2" cellpadding="0">
2259
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2265
<a class="anchor" name="ga38" doxytag="metadata.h::FLAC__metadata_object_cuesheet_insert_blank_track"></a><p>
2266
<table class="mdTable" cellpadding="2" cellspacing="0">
2269
<table cellpadding="0" cellspacing="0" border="0">
2271
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track </td>
2272
<td class="md" valign="top">( </td>
2273
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2274
<td class="mdname" nowrap> <em>object</em>, </td>
2277
<td class="md" nowrap align="right"></td>
2278
<td class="md"></td>
2279
<td class="md" nowrap>unsigned </td>
2280
<td class="mdname" nowrap> <em>track_num</em></td>
2283
<td class="md"></td>
2284
<td class="md">) </td>
2285
<td class="md" colspan="2"></td>
2291
<table cellspacing="5" cellpadding="0" border="0">
2299
Insert a blank track in a CUESHEET block at the given index.<p>
2300
A blank track is one in which all field values are zero.<p>
2301
<dl compact><dt><b>Parameters:</b></dt><dd>
2302
<table border="0" cellspacing="2" cellpadding="0">
2303
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2304
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index at which to insert the track. NOTE: this is not necessarily the same as the track's <em>number</em> field. The tracks at and after <em>track_num</em> move right one position. To append a track to the end, set <em>track_num</em> to <code>object->data.cue_sheet.num_tracks</code> . </td></tr>
2307
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2308
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2309
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks >= track_num
2310
</pre></div> </dd></dl>
2311
<dl compact><dt><b>Return values:</b></dt><dd>
2312
<table border="0" cellspacing="2" cellpadding="0">
2313
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2319
<a class="anchor" name="ga39" doxytag="metadata.h::FLAC__metadata_object_cuesheet_delete_track"></a><p>
2320
<table class="mdTable" cellpadding="2" cellspacing="0">
2323
<table cellpadding="0" cellspacing="0" border="0">
2325
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_delete_track </td>
2326
<td class="md" valign="top">( </td>
2327
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2328
<td class="mdname" nowrap> <em>object</em>, </td>
2331
<td class="md" nowrap align="right"></td>
2332
<td class="md"></td>
2333
<td class="md" nowrap>unsigned </td>
2334
<td class="mdname" nowrap> <em>track_num</em></td>
2337
<td class="md"></td>
2338
<td class="md">) </td>
2339
<td class="md" colspan="2"></td>
2345
<table cellspacing="5" cellpadding="0" border="0">
2353
Delete a track in a CUESHEET block at the given index.<p>
2354
<dl compact><dt><b>Parameters:</b></dt><dd>
2355
<table border="0" cellspacing="2" cellpadding="0">
2356
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2357
<tr><td valign="top"></td><td valign="top"><em>track_num</em> </td><td>The index into the track array of the track to delete. NOTE: this is not necessarily the same as the track's <em>number</em> field. </td></tr>
2360
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2361
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2362
</pre></div> <div class="fragment"><pre class="fragment"> object->data.cue_sheet.num_tracks > track_num
2363
</pre></div> </dd></dl>
2364
<dl compact><dt><b>Return values:</b></dt><dd>
2365
<table border="0" cellspacing="2" cellpadding="0">
2366
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2372
<a class="anchor" name="ga40" doxytag="metadata.h::FLAC__metadata_object_cuesheet_is_legal"></a><p>
2373
<table class="mdTable" cellpadding="2" cellspacing="0">
2376
<table cellpadding="0" cellspacing="0" border="0">
2378
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_is_legal </td>
2379
<td class="md" valign="top">( </td>
2380
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2381
<td class="mdname" nowrap> <em>object</em>, </td>
2384
<td class="md" nowrap align="right"></td>
2385
<td class="md"></td>
2386
<td class="md" nowrap>FLAC__bool </td>
2387
<td class="mdname" nowrap> <em>check_cd_da_subset</em>, </td>
2390
<td class="md" nowrap align="right"></td>
2391
<td class="md"></td>
2392
<td class="md" nowrap>const char ** </td>
2393
<td class="mdname" nowrap> <em>violation</em></td>
2396
<td class="md"></td>
2397
<td class="md">) </td>
2398
<td class="md" colspan="2"></td>
2404
<table cellspacing="5" cellpadding="0" border="0">
2412
Check a cue sheet to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the cue sheet.<p>
2413
<dl compact><dt><b>Parameters:</b></dt><dd>
2414
<table border="0" cellspacing="2" cellpadding="0">
2415
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2416
<tr><td valign="top"></td><td valign="top"><em>check_cd_da_subset</em> </td><td>If <code>true</code>, check CUESHEET against more stringent requirements for a CD-DA (audio) disc. </td></tr>
2417
<tr><td valign="top"></td><td valign="top"><em>violation</em> </td><td>Address of a pointer to a string. If there is a violation, a pointer to a string explanation of the violation will be returned here. <em>violation</em> may be <code>NULL</code> if you don't need the returned string. Do not free the returned string; it will always point to static data. </td></tr>
2420
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2421
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2422
</pre></div> </dd></dl>
2423
<dl compact><dt><b>Return values:</b></dt><dd>
2424
<table border="0" cellspacing="2" cellpadding="0">
2425
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if cue sheet is illegal, else <code>true</code>. </td></tr>
2431
<a class="anchor" name="ga41" doxytag="metadata.h::FLAC__metadata_object_cuesheet_calculate_cddb_id"></a><p>
2432
<table class="mdTable" cellpadding="2" cellspacing="0">
2435
<table cellpadding="0" cellspacing="0" border="0">
2437
<td class="md" nowrap valign="top">FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id </td>
2438
<td class="md" valign="top">( </td>
2439
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2440
<td class="mdname1" valign="top" nowrap> <em>object</em> </td>
2441
<td class="md" valign="top"> ) </td>
2442
<td class="md" nowrap></td>
2448
<table cellspacing="5" cellpadding="0" border="0">
2456
Calculate and return the CDDB/freedb ID for a cue sheet. The function assumes the cue sheet corresponds to a CD; the result is undefined if the cuesheet's is_cd bit is not set.<p>
2457
<dl compact><dt><b>Parameters:</b></dt><dd>
2458
<table border="0" cellspacing="2" cellpadding="0">
2459
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing CUESHEET object. </td></tr>
2462
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2463
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a113">FLAC__METADATA_TYPE_CUESHEET</a>
2464
</pre></div> </dd></dl>
2465
<dl compact><dt><b>Return values:</b></dt><dd>
2466
<table border="0" cellspacing="2" cellpadding="0">
2467
<tr><td valign="top"></td><td valign="top"><em>FLAC__uint32</em> </td><td>The unsigned integer representation of the CDDB/freedb ID </td></tr>
2473
<a class="anchor" name="ga42" doxytag="metadata.h::FLAC__metadata_object_picture_set_mime_type"></a><p>
2474
<table class="mdTable" cellpadding="2" cellspacing="0">
2477
<table cellpadding="0" cellspacing="0" border="0">
2479
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_mime_type </td>
2480
<td class="md" valign="top">( </td>
2481
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2482
<td class="mdname" nowrap> <em>object</em>, </td>
2485
<td class="md" nowrap align="right"></td>
2486
<td class="md"></td>
2487
<td class="md" nowrap>char * </td>
2488
<td class="mdname" nowrap> <em>mime_type</em>, </td>
2491
<td class="md" nowrap align="right"></td>
2492
<td class="md"></td>
2493
<td class="md" nowrap>FLAC__bool </td>
2494
<td class="mdname" nowrap> <em>copy</em></td>
2497
<td class="md"></td>
2498
<td class="md">) </td>
2499
<td class="md" colspan="2"></td>
2505
<table cellspacing="5" cellpadding="0" border="0">
2513
Sets the MIME type of a PICTURE block.<p>
2514
If <em>copy</em> is <code>true</code>, a copy of the string is stored; otherwise, the object takes ownership of the pointer. The existing string will be freed if this function is successful, otherwise the original string will remain if <em>copy</em> is <code>true</code> and malloc() fails.<p>
2515
<dl compact><dt><b>Note:</b></dt><dd>It is safe to pass a const pointer to <em>mime_type</em> if <em>copy</em> is <code>true</code>.</dd></dl>
2516
<dl compact><dt><b>Parameters:</b></dt><dd>
2517
<table border="0" cellspacing="2" cellpadding="0">
2518
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing PICTURE object. </td></tr>
2519
<tr><td valign="top"></td><td valign="top"><em>mime_type</em> </td><td>A pointer to the MIME type string. The string must be ASCII characters 0x20-0x7e, NUL-terminated. No validation is done. </td></tr>
2520
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
2523
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2524
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a114">FLAC__METADATA_TYPE_PICTURE</a>
2525
</pre></div> <div class="fragment"><pre class="fragment"> (mime_type != NULL)
2526
</pre></div> </dd></dl>
2527
<dl compact><dt><b>Return values:</b></dt><dd>
2528
<table border="0" cellspacing="2" cellpadding="0">
2529
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2535
<a class="anchor" name="ga43" doxytag="metadata.h::FLAC__metadata_object_picture_set_description"></a><p>
2536
<table class="mdTable" cellpadding="2" cellspacing="0">
2539
<table cellpadding="0" cellspacing="0" border="0">
2541
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_description </td>
2542
<td class="md" valign="top">( </td>
2543
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2544
<td class="mdname" nowrap> <em>object</em>, </td>
2547
<td class="md" nowrap align="right"></td>
2548
<td class="md"></td>
2549
<td class="md" nowrap>FLAC__byte * </td>
2550
<td class="mdname" nowrap> <em>description</em>, </td>
2553
<td class="md" nowrap align="right"></td>
2554
<td class="md"></td>
2555
<td class="md" nowrap>FLAC__bool </td>
2556
<td class="mdname" nowrap> <em>copy</em></td>
2559
<td class="md"></td>
2560
<td class="md">) </td>
2561
<td class="md" colspan="2"></td>
2567
<table cellspacing="5" cellpadding="0" border="0">
2575
Sets the description of a PICTURE block.<p>
2576
If <em>copy</em> is <code>true</code>, a copy of the string is stored; otherwise, the object takes ownership of the pointer. The existing string will be freed if this function is successful, otherwise the original string will remain if <em>copy</em> is <code>true</code> and malloc() fails.<p>
2577
<dl compact><dt><b>Note:</b></dt><dd>It is safe to pass a const pointer to <em>description</em> if <em>copy</em> is <code>true</code>.</dd></dl>
2578
<dl compact><dt><b>Parameters:</b></dt><dd>
2579
<table border="0" cellspacing="2" cellpadding="0">
2580
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing PICTURE object. </td></tr>
2581
<tr><td valign="top"></td><td valign="top"><em>description</em> </td><td>A pointer to the description string. The string must be valid UTF-8, NUL-terminated. No validation is done. </td></tr>
2582
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
2585
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2586
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a114">FLAC__METADATA_TYPE_PICTURE</a>
2587
</pre></div> <div class="fragment"><pre class="fragment"> (description != NULL)
2588
</pre></div> </dd></dl>
2589
<dl compact><dt><b>Return values:</b></dt><dd>
2590
<table border="0" cellspacing="2" cellpadding="0">
2591
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2597
<a class="anchor" name="ga44" doxytag="metadata.h::FLAC__metadata_object_picture_set_data"></a><p>
2598
<table class="mdTable" cellpadding="2" cellspacing="0">
2601
<table cellpadding="0" cellspacing="0" border="0">
2603
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_data </td>
2604
<td class="md" valign="top">( </td>
2605
<td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2606
<td class="mdname" nowrap> <em>object</em>, </td>
2609
<td class="md" nowrap align="right"></td>
2610
<td class="md"></td>
2611
<td class="md" nowrap>FLAC__byte * </td>
2612
<td class="mdname" nowrap> <em>data</em>, </td>
2615
<td class="md" nowrap align="right"></td>
2616
<td class="md"></td>
2617
<td class="md" nowrap>FLAC__uint32 </td>
2618
<td class="mdname" nowrap> <em>length</em>, </td>
2621
<td class="md" nowrap align="right"></td>
2622
<td class="md"></td>
2623
<td class="md" nowrap>FLAC__bool </td>
2624
<td class="mdname" nowrap> <em>copy</em></td>
2627
<td class="md"></td>
2628
<td class="md">) </td>
2629
<td class="md" colspan="2"></td>
2635
<table cellspacing="5" cellpadding="0" border="0">
2643
Sets the picture data of a PICTURE block.<p>
2644
If <em>copy</em> is <code>true</code>, a copy of the data is stored; otherwise, the object takes ownership of the pointer. Also sets the <em>data_length</em> field of the metadata object to what is passed in as the <em>length</em> parameter. The existing data will be freed if this function is successful, otherwise the original data and data_length will remain if <em>copy</em> is <code>true</code> and malloc() fails.<p>
2645
<dl compact><dt><b>Note:</b></dt><dd>It is safe to pass a const pointer to <em>data</em> if <em>copy</em> is <code>true</code>.</dd></dl>
2646
<dl compact><dt><b>Parameters:</b></dt><dd>
2647
<table border="0" cellspacing="2" cellpadding="0">
2648
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to an existing PICTURE object. </td></tr>
2649
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>A pointer to the data to set. </td></tr>
2650
<tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>The length of <em>data</em> in bytes. </td></tr>
2651
<tr><td valign="top"></td><td valign="top"><em>copy</em> </td><td>See above. </td></tr>
2654
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2655
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a114">FLAC__METADATA_TYPE_PICTURE</a>
2656
</pre></div> <div class="fragment"><pre class="fragment"> (data != NULL && length > 0) ||
2657
(data == NULL && length == 0 && copy == <span class="keyword">false</span>)
2658
</pre></div> </dd></dl>
2659
<dl compact><dt><b>Return values:</b></dt><dd>
2660
<table border="0" cellspacing="2" cellpadding="0">
2661
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2667
<a class="anchor" name="ga45" doxytag="metadata.h::FLAC__metadata_object_picture_is_legal"></a><p>
2668
<table class="mdTable" cellpadding="2" cellspacing="0">
2671
<table cellpadding="0" cellspacing="0" border="0">
2673
<td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_is_legal </td>
2674
<td class="md" valign="top">( </td>
2675
<td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> * </td>
2676
<td class="mdname" nowrap> <em>object</em>, </td>
2679
<td class="md" nowrap align="right"></td>
2680
<td class="md"></td>
2681
<td class="md" nowrap>const char ** </td>
2682
<td class="mdname" nowrap> <em>violation</em></td>
2685
<td class="md"></td>
2686
<td class="md">) </td>
2687
<td class="md" colspan="2"></td>
2693
<table cellspacing="5" cellpadding="0" border="0">
2701
Check a PICTURE block to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the PICTURE block.<p>
2702
<dl compact><dt><b>Parameters:</b></dt><dd>
2703
<table border="0" cellspacing="2" cellpadding="0">
2704
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>A pointer to existing PICTURE block to be checked. </td></tr>
2705
<tr><td valign="top"></td><td valign="top"><em>violation</em> </td><td>Address of a pointer to a string. If there is a violation, a pointer to a string explanation of the violation will be returned here. <em>violation</em> may be <code>NULL</code> if you don't need the returned string. Do not free the returned string; it will always point to static data. </td></tr>
2708
<dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
2709
</pre></div> <div class="fragment"><pre class="fragment"> object->type == <a class="code" href="group__flac__format.html#gga109a114">FLAC__METADATA_TYPE_PICTURE</a>
2710
</pre></div> </dd></dl>
2711
<dl compact><dt><b>Return values:</b></dt><dd>
2712
<table border="0" cellspacing="2" cellpadding="0">
2713
<tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em> </td><td><code>false</code> if PICTURE block is illegal, else <code>true</code>. </td></tr>
2721
<div class="copyright">
2722
<!-- @@@ oh so hacky -->
2726
Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
2728
<td width="1%" align="right">
2729
<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
2734
<!-- Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson -->
2735
<!-- Permission is granted to copy, distribute and/or modify this document -->
2736
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
2737
<!-- or any later version published by the Free Software Foundation; -->
2738
<!-- with no invariant sections. -->
2739
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->