comparison src/flac-1.2.1/doc/html/api/group__flac__metadata__object.html @ 86:98c1576536ae

Bring in flac, ogg, vorbis
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 19 Mar 2013 17:37:49 +0000
parents
children
comparison
equal deleted inserted replaced
85:545efbb81310 86:98c1576536ae
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>FLAC: FLAC/metadata.h: metadata object methods</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.2 -->
7 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>FLAC/metadata.h: metadata object methods<br>
9 <small>
10 [<a class="el" href="group__flac__metadata.html">FLAC/metadata.h: metadata interfaces</a>]</small>
11 </h1><hr><a name="_details"></a><h2>Detailed Description</h2>
12 This module contains methods for manipulating FLAC metadata objects.
13 <p>
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.
21 <p>
22 <table border="0" cellpadding="0" cellspacing="0">
23 <tr><td></td></tr>
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> *&nbsp;</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#ga113">FLAC__MetadataType</a> type)</td></tr>
26
27 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</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>
28
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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>
30
31 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
32
33 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
34
35 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
36
37 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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>
38
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
40
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
42
43 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
44
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
46
47 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
48
49 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
50
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
52
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
54
55 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
56
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
58
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
60
61 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
62
63 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
64
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
66
67 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
68
69 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
70
71 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
72
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
74
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
76
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</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>
78
79 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</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>
80
81 <tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</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>
82
83 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *&nbsp;</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>
84
85 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *&nbsp;</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>
86
87 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</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>
88
89 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
90
91 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
92
93 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
94
95 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
96
97 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
98
99 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
100
101 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
102
103 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
104
105 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
106
107 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__uint32&nbsp;</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>
108
109 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
110
111 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
112
113 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
114
115 <tr><td class="memItemLeft" nowrap align="right" valign="top">FLAC__bool&nbsp;</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>
116
117 </table>
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">
121 <tr>
122 <td class="mdRow">
123 <table cellpadding="0" cellspacing="0" border="0">
124 <tr>
125 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* FLAC__metadata_object_new </td>
126 <td class="md" valign="top">(&nbsp;</td>
127 <td class="md" nowrap valign="top"><a class="el" href="group__flac__format.html#ga113">FLAC__MetadataType</a>&nbsp;</td>
128 <td class="mdname1" valign="top" nowrap> <em>type</em> </td>
129 <td class="md" valign="top">&nbsp;)&nbsp;</td>
130 <td class="md" nowrap></td>
131 </tr>
132 </table>
133 </td>
134 </tr>
135 </table>
136 <table cellspacing="5" cellpadding="0" border="0">
137 <tr>
138 <td>
139 &nbsp;
140 </td>
141 <td>
142
143 <p>
144 Create a new metadata object instance of the given type.<p>
145 The object will be "empty"; i.e. values and data pointers will be <code>0</code>, with the exception of FLAC__METADATA_TYPE_VORBIS_COMMENT, which will have the vendor string set (but zero comments).<p>
146 Do not pass in a value greater than or equal to <em>FLAC__METADATA_TYPE_UNDEFINED</em> unless you really know what you're doing.<p>
147 <dl compact><dt><b>Parameters:</b></dt><dd>
148 <table border="0" cellspacing="2" cellpadding="0">
149 <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>Type of object to create </td></tr>
150 </table>
151 </dl>
152 <dl compact><dt><b>Return values:</b></dt><dd>
153 <table border="0" cellspacing="2" cellpadding="0">
154 <tr><td valign="top"></td><td valign="top"><em>FLAC__StreamMetadata*</em>&nbsp;</td><td><code>NULL</code> if there was an error allocating memory or the type code is greater than FLAC__MAX_METADATA_TYPE_CODE, else the new instance. </td></tr>
155 </table>
156 </dl>
157 </td>
158 </tr>
159 </table>
160 <a class="anchor" name="ga1" doxytag="metadata.h::FLAC__metadata_object_clone"></a><p>
161 <table class="mdTable" cellpadding="2" cellspacing="0">
162 <tr>
163 <td class="mdRow">
164 <table cellpadding="0" cellspacing="0" border="0">
165 <tr>
166 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a>* FLAC__metadata_object_clone </td>
167 <td class="md" valign="top">(&nbsp;</td>
168 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
169 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
170 <td class="md" valign="top">&nbsp;)&nbsp;</td>
171 <td class="md" nowrap></td>
172 </tr>
173 </table>
174 </td>
175 </tr>
176 </table>
177 <table cellspacing="5" cellpadding="0" border="0">
178 <tr>
179 <td>
180 &nbsp;
181 </td>
182 <td>
183
184 <p>
185 Create a copy of an existing metadata object.<p>
186 The copy is a "deep" copy, i.e. dynamically allocated data within the object is also copied. The caller takes ownership of the new block and is responsible for freeing it with <a class="el" href="group__flac__metadata__object.html#ga2">FLAC__metadata_object_delete()</a>.<p>
187 <dl compact><dt><b>Parameters:</b></dt><dd>
188 <table border="0" cellspacing="2" cellpadding="0">
189 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>Pointer to object to copy. </td></tr>
190 </table>
191 </dl>
192 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
193 </pre></div> </dd></dl>
194 <dl compact><dt><b>Return values:</b></dt><dd>
195 <table border="0" cellspacing="2" cellpadding="0">
196 <tr><td valign="top"></td><td valign="top"><em>FLAC__StreamMetadata*</em>&nbsp;</td><td><code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
197 </table>
198 </dl>
199 </td>
200 </tr>
201 </table>
202 <a class="anchor" name="ga2" doxytag="metadata.h::FLAC__metadata_object_delete"></a><p>
203 <table class="mdTable" cellpadding="2" cellspacing="0">
204 <tr>
205 <td class="mdRow">
206 <table cellpadding="0" cellspacing="0" border="0">
207 <tr>
208 <td class="md" nowrap valign="top">void FLAC__metadata_object_delete </td>
209 <td class="md" valign="top">(&nbsp;</td>
210 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
211 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
212 <td class="md" valign="top">&nbsp;)&nbsp;</td>
213 <td class="md" nowrap></td>
214 </tr>
215 </table>
216 </td>
217 </tr>
218 </table>
219 <table cellspacing="5" cellpadding="0" border="0">
220 <tr>
221 <td>
222 &nbsp;
223 </td>
224 <td>
225
226 <p>
227 Free a metadata object. Deletes the object pointed to by <em>object</em>.<p>
228 The delete is a "deep" delete, i.e. dynamically allocated data within the object is also deleted.<p>
229 <dl compact><dt><b>Parameters:</b></dt><dd>
230 <table border="0" cellspacing="2" cellpadding="0">
231 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to an existing object. </td></tr>
232 </table>
233 </dl>
234 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
235 </pre></div> </dd></dl>
236 </td>
237 </tr>
238 </table>
239 <a class="anchor" name="ga3" doxytag="metadata.h::FLAC__metadata_object_is_equal"></a><p>
240 <table class="mdTable" cellpadding="2" cellspacing="0">
241 <tr>
242 <td class="mdRow">
243 <table cellpadding="0" cellspacing="0" border="0">
244 <tr>
245 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_is_equal </td>
246 <td class="md" valign="top">(&nbsp;</td>
247 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
248 <td class="mdname" nowrap> <em>block1</em>, </td>
249 </tr>
250 <tr>
251 <td class="md" nowrap align="right"></td>
252 <td class="md"></td>
253 <td class="md" nowrap>const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
254 <td class="mdname" nowrap> <em>block2</em></td>
255 </tr>
256 <tr>
257 <td class="md"></td>
258 <td class="md">)&nbsp;</td>
259 <td class="md" colspan="2"></td>
260 </tr>
261 </table>
262 </td>
263 </tr>
264 </table>
265 <table cellspacing="5" cellpadding="0" border="0">
266 <tr>
267 <td>
268 &nbsp;
269 </td>
270 <td>
271
272 <p>
273 Compares two metadata objects.<p>
274 The compare is "deep", i.e. dynamically allocated data within the object is also compared.<p>
275 <dl compact><dt><b>Parameters:</b></dt><dd>
276 <table border="0" cellspacing="2" cellpadding="0">
277 <tr><td valign="top"></td><td valign="top"><em>block1</em>&nbsp;</td><td>A pointer to an existing object. </td></tr>
278 <tr><td valign="top"></td><td valign="top"><em>block2</em>&nbsp;</td><td>A pointer to an existing object. </td></tr>
279 </table>
280 </dl>
281 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> block1 != NULL
282 </pre></div> <div class="fragment"><pre class="fragment"> block2 != NULL
283 </pre></div> </dd></dl>
284 <dl compact><dt><b>Return values:</b></dt><dd>
285 <table border="0" cellspacing="2" cellpadding="0">
286 <tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em>&nbsp;</td><td><code>true</code> if objects are identical, else <code>false</code>. </td></tr>
287 </table>
288 </dl>
289 </td>
290 </tr>
291 </table>
292 <a class="anchor" name="ga4" doxytag="metadata.h::FLAC__metadata_object_application_set_data"></a><p>
293 <table class="mdTable" cellpadding="2" cellspacing="0">
294 <tr>
295 <td class="mdRow">
296 <table cellpadding="0" cellspacing="0" border="0">
297 <tr>
298 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_application_set_data </td>
299 <td class="md" valign="top">(&nbsp;</td>
300 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
301 <td class="mdname" nowrap> <em>object</em>, </td>
302 </tr>
303 <tr>
304 <td class="md" nowrap align="right"></td>
305 <td class="md"></td>
306 <td class="md" nowrap>FLAC__byte *&nbsp;</td>
307 <td class="mdname" nowrap> <em>data</em>, </td>
308 </tr>
309 <tr>
310 <td class="md" nowrap align="right"></td>
311 <td class="md"></td>
312 <td class="md" nowrap>unsigned&nbsp;</td>
313 <td class="mdname" nowrap> <em>length</em>, </td>
314 </tr>
315 <tr>
316 <td class="md" nowrap align="right"></td>
317 <td class="md"></td>
318 <td class="md" nowrap>FLAC__bool&nbsp;</td>
319 <td class="mdname" nowrap> <em>copy</em></td>
320 </tr>
321 <tr>
322 <td class="md"></td>
323 <td class="md">)&nbsp;</td>
324 <td class="md" colspan="2"></td>
325 </tr>
326 </table>
327 </td>
328 </tr>
329 </table>
330 <table cellspacing="5" cellpadding="0" border="0">
331 <tr>
332 <td>
333 &nbsp;
334 </td>
335 <td>
336
337 <p>
338 Sets the application data of an APPLICATION block.<p>
339 If <em>copy</em> is <code>true</code>, a copy of the data is stored; otherwise, the object takes ownership of the pointer. The existing data will be freed if this function is successful, otherwise the original data will remain if <em>copy</em> is <code>true</code> and malloc() fails.<p>
340 <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>
341 <dl compact><dt><b>Parameters:</b></dt><dd>
342 <table border="0" cellspacing="2" cellpadding="0">
343 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to an existing APPLICATION object. </td></tr>
344 <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data to set. </td></tr>
345 <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>The length of <em>data</em> in bytes. </td></tr>
346 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
347 </table>
348 </dl>
349 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
350 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;type == <a class="code" href="group__flac__format.html#gga113a114">FLAC__METADATA_TYPE_APPLICATION</a>
351 </pre></div> <div class="fragment"><pre class="fragment"> (data != NULL &amp;&amp; length &gt; 0) ||
352 (data == NULL &amp;&amp; length == 0 &amp;&amp; copy == <span class="keyword">false</span>)
353 </pre></div> </dd></dl>
354 <dl compact><dt><b>Return values:</b></dt><dd>
355 <table border="0" cellspacing="2" cellpadding="0">
356 <tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
357 </table>
358 </dl>
359 </td>
360 </tr>
361 </table>
362 <a class="anchor" name="ga5" doxytag="metadata.h::FLAC__metadata_object_seektable_resize_points"></a><p>
363 <table class="mdTable" cellpadding="2" cellspacing="0">
364 <tr>
365 <td class="mdRow">
366 <table cellpadding="0" cellspacing="0" border="0">
367 <tr>
368 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_resize_points </td>
369 <td class="md" valign="top">(&nbsp;</td>
370 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
371 <td class="mdname" nowrap> <em>object</em>, </td>
372 </tr>
373 <tr>
374 <td class="md" nowrap align="right"></td>
375 <td class="md"></td>
376 <td class="md" nowrap>unsigned&nbsp;</td>
377 <td class="mdname" nowrap> <em>new_num_points</em></td>
378 </tr>
379 <tr>
380 <td class="md"></td>
381 <td class="md">)&nbsp;</td>
382 <td class="md" colspan="2"></td>
383 </tr>
384 </table>
385 </td>
386 </tr>
387 </table>
388 <table cellspacing="5" cellpadding="0" border="0">
389 <tr>
390 <td>
391 &nbsp;
392 </td>
393 <td>
394
395 <p>
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>&nbsp;</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>&nbsp;</td><td>The desired length of the array; may be <code>0</code>. </td></tr>
402 </table>
403 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
406 </pre></div> <div class="fragment"><pre class="fragment"> (object-&gt;data.seek_table.points == NULL &amp;&amp; object-&gt;data.seek_table.num_points == 0) ||
407 (object-&gt;data.seek_table.points != NULL &amp;&amp; object-&gt;data.seek_table.num_points &gt; 0)
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>&nbsp;</td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
412 </table>
413 </dl>
414 </td>
415 </tr>
416 </table>
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">
419 <tr>
420 <td class="mdRow">
421 <table cellpadding="0" cellspacing="0" border="0">
422 <tr>
423 <td class="md" nowrap valign="top">void FLAC__metadata_object_seektable_set_point </td>
424 <td class="md" valign="top">(&nbsp;</td>
425 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
426 <td class="mdname" nowrap> <em>object</em>, </td>
427 </tr>
428 <tr>
429 <td class="md" nowrap align="right"></td>
430 <td class="md"></td>
431 <td class="md" nowrap>unsigned&nbsp;</td>
432 <td class="mdname" nowrap> <em>point_num</em>, </td>
433 </tr>
434 <tr>
435 <td class="md" nowrap align="right"></td>
436 <td class="md"></td>
437 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a>&nbsp;</td>
438 <td class="mdname" nowrap> <em>point</em></td>
439 </tr>
440 <tr>
441 <td class="md"></td>
442 <td class="md">)&nbsp;</td>
443 <td class="md" colspan="2"></td>
444 </tr>
445 </table>
446 </td>
447 </tr>
448 </table>
449 <table cellspacing="5" cellpadding="0" border="0">
450 <tr>
451 <td>
452 &nbsp;
453 </td>
454 <td>
455
456 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
461 <tr><td valign="top"></td><td valign="top"><em>point_num</em>&nbsp;</td><td>Index into seekpoint array to set. </td></tr>
462 <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>The point to set. </td></tr>
463 </table>
464 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
467 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.seek_table.num_points &gt; point_num
468 </pre></div> </dd></dl>
469 </td>
470 </tr>
471 </table>
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">
474 <tr>
475 <td class="mdRow">
476 <table cellpadding="0" cellspacing="0" border="0">
477 <tr>
478 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_insert_point </td>
479 <td class="md" valign="top">(&nbsp;</td>
480 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
481 <td class="mdname" nowrap> <em>object</em>, </td>
482 </tr>
483 <tr>
484 <td class="md" nowrap align="right"></td>
485 <td class="md"></td>
486 <td class="md" nowrap>unsigned&nbsp;</td>
487 <td class="mdname" nowrap> <em>point_num</em>, </td>
488 </tr>
489 <tr>
490 <td class="md" nowrap align="right"></td>
491 <td class="md"></td>
492 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a>&nbsp;</td>
493 <td class="mdname" nowrap> <em>point</em></td>
494 </tr>
495 <tr>
496 <td class="md"></td>
497 <td class="md">)&nbsp;</td>
498 <td class="md" colspan="2"></td>
499 </tr>
500 </table>
501 </td>
502 </tr>
503 </table>
504 <table cellspacing="5" cellpadding="0" border="0">
505 <tr>
506 <td>
507 &nbsp;
508 </td>
509 <td>
510
511 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
516 <tr><td valign="top"></td><td valign="top"><em>point_num</em>&nbsp;</td><td>Index into seekpoint array to set. </td></tr>
517 <tr><td valign="top"></td><td valign="top"><em>point</em>&nbsp;</td><td>The point to set. </td></tr>
518 </table>
519 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
522 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.seek_table.num_points &gt;= 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>&nbsp;</td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
527 </table>
528 </dl>
529 </td>
530 </tr>
531 </table>
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">
534 <tr>
535 <td class="mdRow">
536 <table cellpadding="0" cellspacing="0" border="0">
537 <tr>
538 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_delete_point </td>
539 <td class="md" valign="top">(&nbsp;</td>
540 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
541 <td class="mdname" nowrap> <em>object</em>, </td>
542 </tr>
543 <tr>
544 <td class="md" nowrap align="right"></td>
545 <td class="md"></td>
546 <td class="md" nowrap>unsigned&nbsp;</td>
547 <td class="mdname" nowrap> <em>point_num</em></td>
548 </tr>
549 <tr>
550 <td class="md"></td>
551 <td class="md">)&nbsp;</td>
552 <td class="md" colspan="2"></td>
553 </tr>
554 </table>
555 </td>
556 </tr>
557 </table>
558 <table cellspacing="5" cellpadding="0" border="0">
559 <tr>
560 <td>
561 &nbsp;
562 </td>
563 <td>
564
565 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
570 <tr><td valign="top"></td><td valign="top"><em>point_num</em>&nbsp;</td><td>Index into seekpoint array to set. </td></tr>
571 </table>
572 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
575 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.seek_table.num_points &gt; 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>&nbsp;</td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
580 </table>
581 </dl>
582 </td>
583 </tr>
584 </table>
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">
587 <tr>
588 <td class="mdRow">
589 <table cellpadding="0" cellspacing="0" border="0">
590 <tr>
591 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_is_legal </td>
592 <td class="md" valign="top">(&nbsp;</td>
593 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
594 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
595 <td class="md" valign="top">&nbsp;)&nbsp;</td>
596 <td class="md" nowrap></td>
597 </tr>
598 </table>
599 </td>
600 </tr>
601 </table>
602 <table cellspacing="5" cellpadding="0" border="0">
603 <tr>
604 <td>
605 &nbsp;
606 </td>
607 <td>
608
609 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
614 </table>
615 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">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>&nbsp;</td><td><code>false</code> if seek table is illegal, else <code>true</code>. </td></tr>
622 </table>
623 </dl>
624 </td>
625 </tr>
626 </table>
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">
629 <tr>
630 <td class="mdRow">
631 <table cellpadding="0" cellspacing="0" border="0">
632 <tr>
633 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_placeholders </td>
634 <td class="md" valign="top">(&nbsp;</td>
635 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
636 <td class="mdname" nowrap> <em>object</em>, </td>
637 </tr>
638 <tr>
639 <td class="md" nowrap align="right"></td>
640 <td class="md"></td>
641 <td class="md" nowrap>unsigned&nbsp;</td>
642 <td class="mdname" nowrap> <em>num</em></td>
643 </tr>
644 <tr>
645 <td class="md"></td>
646 <td class="md">)&nbsp;</td>
647 <td class="md" colspan="2"></td>
648 </tr>
649 </table>
650 </td>
651 </tr>
652 </table>
653 <table cellspacing="5" cellpadding="0" border="0">
654 <tr>
655 <td>
656 &nbsp;
657 </td>
658 <td>
659
660 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
666 <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>The number of placeholder points to append. </td></tr>
667 </table>
668 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">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>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
675 </table>
676 </dl>
677 </td>
678 </tr>
679 </table>
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">
682 <tr>
683 <td class="mdRow">
684 <table cellpadding="0" cellspacing="0" border="0">
685 <tr>
686 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_point </td>
687 <td class="md" valign="top">(&nbsp;</td>
688 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
689 <td class="mdname" nowrap> <em>object</em>, </td>
690 </tr>
691 <tr>
692 <td class="md" nowrap align="right"></td>
693 <td class="md"></td>
694 <td class="md" nowrap>FLAC__uint64&nbsp;</td>
695 <td class="mdname" nowrap> <em>sample_number</em></td>
696 </tr>
697 <tr>
698 <td class="md"></td>
699 <td class="md">)&nbsp;</td>
700 <td class="md" colspan="2"></td>
701 </tr>
702 </table>
703 </td>
704 </tr>
705 </table>
706 <table cellspacing="5" cellpadding="0" border="0">
707 <tr>
708 <td>
709 &nbsp;
710 </td>
711 <td>
712
713 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
719 <tr><td valign="top"></td><td valign="top"><em>sample_number</em>&nbsp;</td><td>The sample number of the seek point template. </td></tr>
720 </table>
721 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">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>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
728 </table>
729 </dl>
730 </td>
731 </tr>
732 </table>
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">
735 <tr>
736 <td class="mdRow">
737 <table cellpadding="0" cellspacing="0" border="0">
738 <tr>
739 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_points </td>
740 <td class="md" valign="top">(&nbsp;</td>
741 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
742 <td class="mdname" nowrap> <em>object</em>, </td>
743 </tr>
744 <tr>
745 <td class="md" nowrap align="right"></td>
746 <td class="md"></td>
747 <td class="md" nowrap>FLAC__uint64&nbsp;</td>
748 <td class="mdname" nowrap> <em>sample_numbers</em>[], </td>
749 </tr>
750 <tr>
751 <td class="md" nowrap align="right"></td>
752 <td class="md"></td>
753 <td class="md" nowrap>unsigned&nbsp;</td>
754 <td class="mdname" nowrap> <em>num</em></td>
755 </tr>
756 <tr>
757 <td class="md"></td>
758 <td class="md">)&nbsp;</td>
759 <td class="md" colspan="2"></td>
760 </tr>
761 </table>
762 </td>
763 </tr>
764 </table>
765 <table cellspacing="5" cellpadding="0" border="0">
766 <tr>
767 <td>
768 &nbsp;
769 </td>
770 <td>
771
772 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
778 <tr><td valign="top"></td><td valign="top"><em>sample_numbers</em>&nbsp;</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>&nbsp;</td><td>The number of seek point templates to append. </td></tr>
780 </table>
781 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">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>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
788 </table>
789 </dl>
790 </td>
791 </tr>
792 </table>
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">
795 <tr>
796 <td class="mdRow">
797 <table cellpadding="0" cellspacing="0" border="0">
798 <tr>
799 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_append_spaced_points </td>
800 <td class="md" valign="top">(&nbsp;</td>
801 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
802 <td class="mdname" nowrap> <em>object</em>, </td>
803 </tr>
804 <tr>
805 <td class="md" nowrap align="right"></td>
806 <td class="md"></td>
807 <td class="md" nowrap>unsigned&nbsp;</td>
808 <td class="mdname" nowrap> <em>num</em>, </td>
809 </tr>
810 <tr>
811 <td class="md" nowrap align="right"></td>
812 <td class="md"></td>
813 <td class="md" nowrap>FLAC__uint64&nbsp;</td>
814 <td class="mdname" nowrap> <em>total_samples</em></td>
815 </tr>
816 <tr>
817 <td class="md"></td>
818 <td class="md">)&nbsp;</td>
819 <td class="md" colspan="2"></td>
820 </tr>
821 </table>
822 </td>
823 </tr>
824 </table>
825 <table cellspacing="5" cellpadding="0" border="0">
826 <tr>
827 <td>
828 &nbsp;
829 </td>
830 <td>
831
832 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
838 <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>The number of placeholder points to append. </td></tr>
839 <tr><td valign="top"></td><td valign="top"><em>total_samples</em>&nbsp;</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>
840 </table>
841 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
844 </pre></div> <div class="fragment"><pre class="fragment"> total_samples &gt; 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>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
849 </table>
850 </dl>
851 </td>
852 </tr>
853 </table>
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">
856 <tr>
857 <td class="mdRow">
858 <table cellpadding="0" cellspacing="0" border="0">
859 <tr>
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">(&nbsp;</td>
862 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
863 <td class="mdname" nowrap> <em>object</em>, </td>
864 </tr>
865 <tr>
866 <td class="md" nowrap align="right"></td>
867 <td class="md"></td>
868 <td class="md" nowrap>unsigned&nbsp;</td>
869 <td class="mdname" nowrap> <em>samples</em>, </td>
870 </tr>
871 <tr>
872 <td class="md" nowrap align="right"></td>
873 <td class="md"></td>
874 <td class="md" nowrap>FLAC__uint64&nbsp;</td>
875 <td class="mdname" nowrap> <em>total_samples</em></td>
876 </tr>
877 <tr>
878 <td class="md"></td>
879 <td class="md">)&nbsp;</td>
880 <td class="md" colspan="2"></td>
881 </tr>
882 </table>
883 </td>
884 </tr>
885 </table>
886 <table cellspacing="5" cellpadding="0" border="0">
887 <tr>
888 <td>
889 &nbsp;
890 </td>
891 <td>
892
893 <p>
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>&nbsp;</td><td>A pointer to an existing SEEKTABLE object. </td></tr>
899 <tr><td valign="top"></td><td valign="top"><em>samples</em>&nbsp;</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>&nbsp;</td><td>The total number of samples to be encoded; the seekpoints will be spaced <em>samples</em> samples apart. </td></tr>
901 </table>
902 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
905 </pre></div> <div class="fragment"><pre class="fragment"> samples &gt; 0
906 </pre></div> <div class="fragment"><pre class="fragment"> total_samples &gt; 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>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
911 </table>
912 </dl>
913 </td>
914 </tr>
915 </table>
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">
918 <tr>
919 <td class="mdRow">
920 <table cellpadding="0" cellspacing="0" border="0">
921 <tr>
922 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_seektable_template_sort </td>
923 <td class="md" valign="top">(&nbsp;</td>
924 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
925 <td class="mdname" nowrap> <em>object</em>, </td>
926 </tr>
927 <tr>
928 <td class="md" nowrap align="right"></td>
929 <td class="md"></td>
930 <td class="md" nowrap>FLAC__bool&nbsp;</td>
931 <td class="mdname" nowrap> <em>compact</em></td>
932 </tr>
933 <tr>
934 <td class="md"></td>
935 <td class="md">)&nbsp;</td>
936 <td class="md" colspan="2"></td>
937 </tr>
938 </table>
939 </td>
940 </tr>
941 </table>
942 <table cellspacing="5" cellpadding="0" border="0">
943 <tr>
944 <td>
945 &nbsp;
946 </td>
947 <td>
948
949 <p>
950 Sort a seek table's seek points according to the format specification, removing duplicates.<p>
951 <dl compact><dt><b>Parameters:</b></dt><dd>
952 <table border="0" cellspacing="2" cellpadding="0">
953 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to a seek table to be sorted. </td></tr>
954 <tr><td valign="top"></td><td valign="top"><em>compact</em>&nbsp;</td><td>If <code>false</code>, behaves like <a class="el" href="group__flac__format.html#ga86">FLAC__format_seektable_sort()</a>. If <code>true</code>, duplicates are deleted and the seek table is shrunk appropriately; the number of placeholder points present in the seek table will be the same after the call as before. </td></tr>
955 </table>
956 </dl>
957 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
958 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;type == <a class="code" href="group__flac__format.html#gga113a115">FLAC__METADATA_TYPE_SEEKTABLE</a>
959 </pre></div> </dd></dl>
960 <dl compact><dt><b>Return values:</b></dt><dd>
961 <table border="0" cellspacing="2" cellpadding="0">
962 <tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
963 </table>
964 </dl>
965 </td>
966 </tr>
967 </table>
968 <a class="anchor" name="ga16" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_set_vendor_string"></a><p>
969 <table class="mdTable" cellpadding="2" cellspacing="0">
970 <tr>
971 <td class="mdRow">
972 <table cellpadding="0" cellspacing="0" border="0">
973 <tr>
974 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_set_vendor_string </td>
975 <td class="md" valign="top">(&nbsp;</td>
976 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
977 <td class="mdname" nowrap> <em>object</em>, </td>
978 </tr>
979 <tr>
980 <td class="md" nowrap align="right"></td>
981 <td class="md"></td>
982 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a>&nbsp;</td>
983 <td class="mdname" nowrap> <em>entry</em>, </td>
984 </tr>
985 <tr>
986 <td class="md" nowrap align="right"></td>
987 <td class="md"></td>
988 <td class="md" nowrap>FLAC__bool&nbsp;</td>
989 <td class="mdname" nowrap> <em>copy</em></td>
990 </tr>
991 <tr>
992 <td class="md"></td>
993 <td class="md">)&nbsp;</td>
994 <td class="md" colspan="2"></td>
995 </tr>
996 </table>
997 </td>
998 </tr>
999 </table>
1000 <table cellspacing="5" cellpadding="0" border="0">
1001 <tr>
1002 <td>
1003 &nbsp;
1004 </td>
1005 <td>
1006
1007 <p>
1008 Sets the vendor string in a VORBIS_COMMENT block.<p>
1009 For convenience, a trailing NUL is added to the entry if it doesn't have one already.<p>
1010 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>
1011 <dl compact><dt><b>Note:</b></dt><dd>If this function returns <code>false</code>, the caller still owns the pointer.</dd></dl>
1012 <dl compact><dt><b>Parameters:</b></dt><dd>
1013 <table border="0" cellspacing="2" cellpadding="0">
1014 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1015 <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>The entry to set the vendor string to. </td></tr>
1016 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
1017 </table>
1018 </dl>
1019 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1020 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1021 </pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 0) ||
1022 (entry.entry == NULL &amp;&amp; entry.length == 0)
1023 </pre></div> </dd></dl>
1024 <dl compact><dt><b>Return values:</b></dt><dd>
1025 <table border="0" cellspacing="2" cellpadding="0">
1026 <tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em>&nbsp;</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>
1027 </table>
1028 </dl>
1029 </td>
1030 </tr>
1031 </table>
1032 <a class="anchor" name="ga17" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_resize_comments"></a><p>
1033 <table class="mdTable" cellpadding="2" cellspacing="0">
1034 <tr>
1035 <td class="mdRow">
1036 <table cellpadding="0" cellspacing="0" border="0">
1037 <tr>
1038 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_resize_comments </td>
1039 <td class="md" valign="top">(&nbsp;</td>
1040 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1041 <td class="mdname" nowrap> <em>object</em>, </td>
1042 </tr>
1043 <tr>
1044 <td class="md" nowrap align="right"></td>
1045 <td class="md"></td>
1046 <td class="md" nowrap>unsigned&nbsp;</td>
1047 <td class="mdname" nowrap> <em>new_num_comments</em></td>
1048 </tr>
1049 <tr>
1050 <td class="md"></td>
1051 <td class="md">)&nbsp;</td>
1052 <td class="md" colspan="2"></td>
1053 </tr>
1054 </table>
1055 </td>
1056 </tr>
1057 </table>
1058 <table cellspacing="5" cellpadding="0" border="0">
1059 <tr>
1060 <td>
1061 &nbsp;
1062 </td>
1063 <td>
1064
1065 <p>
1066 Resize the comment array.<p>
1067 If the size shrinks, elements will truncated; if it grows, new empty fields will be added to the end.<p>
1068 <dl compact><dt><b>Parameters:</b></dt><dd>
1069 <table border="0" cellspacing="2" cellpadding="0">
1070 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1071 <tr><td valign="top"></td><td valign="top"><em>new_num_comments</em>&nbsp;</td><td>The desired length of the array; may be <code>0</code>. </td></tr>
1072 </table>
1073 </dl>
1074 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1075 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1076 </pre></div> <div class="fragment"><pre class="fragment"> (object-&gt;data.vorbis_comment.comments == NULL &amp;&amp; object-&gt;data.vorbis_comment.num_comments == 0) ||
1077 (object-&gt;data.vorbis_comment.comments != NULL &amp;&amp; object-&gt;data.vorbis_comment.num_comments &gt; 0)
1078 </pre></div> </dd></dl>
1079 <dl compact><dt><b>Return values:</b></dt><dd>
1080 <table border="0" cellspacing="2" cellpadding="0">
1081 <tr><td valign="top"></td><td valign="top"><em>FLAC__bool</em>&nbsp;</td><td><code>false</code> if memory allocation fails, else <code>true</code>. </td></tr>
1082 </table>
1083 </dl>
1084 </td>
1085 </tr>
1086 </table>
1087 <a class="anchor" name="ga18" doxytag="metadata.h::FLAC__metadata_object_vorbiscomment_set_comment"></a><p>
1088 <table class="mdTable" cellpadding="2" cellspacing="0">
1089 <tr>
1090 <td class="mdRow">
1091 <table cellpadding="0" cellspacing="0" border="0">
1092 <tr>
1093 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_set_comment </td>
1094 <td class="md" valign="top">(&nbsp;</td>
1095 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1096 <td class="mdname" nowrap> <em>object</em>, </td>
1097 </tr>
1098 <tr>
1099 <td class="md" nowrap align="right"></td>
1100 <td class="md"></td>
1101 <td class="md" nowrap>unsigned&nbsp;</td>
1102 <td class="mdname" nowrap> <em>comment_num</em>, </td>
1103 </tr>
1104 <tr>
1105 <td class="md" nowrap align="right"></td>
1106 <td class="md"></td>
1107 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a>&nbsp;</td>
1108 <td class="mdname" nowrap> <em>entry</em>, </td>
1109 </tr>
1110 <tr>
1111 <td class="md" nowrap align="right"></td>
1112 <td class="md"></td>
1113 <td class="md" nowrap>FLAC__bool&nbsp;</td>
1114 <td class="mdname" nowrap> <em>copy</em></td>
1115 </tr>
1116 <tr>
1117 <td class="md"></td>
1118 <td class="md">)&nbsp;</td>
1119 <td class="md" colspan="2"></td>
1120 </tr>
1121 </table>
1122 </td>
1123 </tr>
1124 </table>
1125 <table cellspacing="5" cellpadding="0" border="0">
1126 <tr>
1127 <td>
1128 &nbsp;
1129 </td>
1130 <td>
1131
1132 <p>
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>&nbsp;</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>&nbsp;</td><td>Index into comment array to set. </td></tr>
1141 <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>The entry to set the comment to. </td></tr>
1142 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
1143 </table>
1144 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1147 </pre></div> <div class="fragment"><pre class="fragment"> comment_num &lt; object-&gt;data.vorbis_comment.num_comments
1148 </pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 0) ||
1149 (entry.entry == NULL &amp;&amp; entry.length == 0)
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>&nbsp;</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>
1154 </table>
1155 </dl>
1156 </td>
1157 </tr>
1158 </table>
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">
1161 <tr>
1162 <td class="mdRow">
1163 <table cellpadding="0" cellspacing="0" border="0">
1164 <tr>
1165 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_insert_comment </td>
1166 <td class="md" valign="top">(&nbsp;</td>
1167 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1168 <td class="mdname" nowrap> <em>object</em>, </td>
1169 </tr>
1170 <tr>
1171 <td class="md" nowrap align="right"></td>
1172 <td class="md"></td>
1173 <td class="md" nowrap>unsigned&nbsp;</td>
1174 <td class="mdname" nowrap> <em>comment_num</em>, </td>
1175 </tr>
1176 <tr>
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>&nbsp;</td>
1180 <td class="mdname" nowrap> <em>entry</em>, </td>
1181 </tr>
1182 <tr>
1183 <td class="md" nowrap align="right"></td>
1184 <td class="md"></td>
1185 <td class="md" nowrap>FLAC__bool&nbsp;</td>
1186 <td class="mdname" nowrap> <em>copy</em></td>
1187 </tr>
1188 <tr>
1189 <td class="md"></td>
1190 <td class="md">)&nbsp;</td>
1191 <td class="md" colspan="2"></td>
1192 </tr>
1193 </table>
1194 </td>
1195 </tr>
1196 </table>
1197 <table cellspacing="5" cellpadding="0" border="0">
1198 <tr>
1199 <td>
1200 &nbsp;
1201 </td>
1202 <td>
1203
1204 <p>
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>&nbsp;</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>&nbsp;</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-&gt;data.vorbis_comment.num_comments</code> . </td></tr>
1213 <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>The comment to insert. </td></tr>
1214 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
1215 </table>
1216 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1219 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.vorbis_comment.num_comments &gt;= comment_num
1220 </pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 0) ||
1221 (entry.entry == NULL &amp;&amp; entry.length == 0 &amp;&amp; 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>&nbsp;</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>
1226 </table>
1227 </dl>
1228 </td>
1229 </tr>
1230 </table>
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">
1233 <tr>
1234 <td class="mdRow">
1235 <table cellpadding="0" cellspacing="0" border="0">
1236 <tr>
1237 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_append_comment </td>
1238 <td class="md" valign="top">(&nbsp;</td>
1239 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1240 <td class="mdname" nowrap> <em>object</em>, </td>
1241 </tr>
1242 <tr>
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>&nbsp;</td>
1246 <td class="mdname" nowrap> <em>entry</em>, </td>
1247 </tr>
1248 <tr>
1249 <td class="md" nowrap align="right"></td>
1250 <td class="md"></td>
1251 <td class="md" nowrap>FLAC__bool&nbsp;</td>
1252 <td class="mdname" nowrap> <em>copy</em></td>
1253 </tr>
1254 <tr>
1255 <td class="md"></td>
1256 <td class="md">)&nbsp;</td>
1257 <td class="md" colspan="2"></td>
1258 </tr>
1259 </table>
1260 </td>
1261 </tr>
1262 </table>
1263 <table cellspacing="5" cellpadding="0" border="0">
1264 <tr>
1265 <td>
1266 &nbsp;
1267 </td>
1268 <td>
1269
1270 <p>
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>&nbsp;</td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1278 <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>The comment to insert. </td></tr>
1279 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
1280 </table>
1281 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1284 </pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 0) ||
1285 (entry.entry == NULL &amp;&amp; entry.length == 0 &amp;&amp; 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>&nbsp;</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>
1290 </table>
1291 </dl>
1292 </td>
1293 </tr>
1294 </table>
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">
1297 <tr>
1298 <td class="mdRow">
1299 <table cellpadding="0" cellspacing="0" border="0">
1300 <tr>
1301 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_replace_comment </td>
1302 <td class="md" valign="top">(&nbsp;</td>
1303 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1304 <td class="mdname" nowrap> <em>object</em>, </td>
1305 </tr>
1306 <tr>
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>&nbsp;</td>
1310 <td class="mdname" nowrap> <em>entry</em>, </td>
1311 </tr>
1312 <tr>
1313 <td class="md" nowrap align="right"></td>
1314 <td class="md"></td>
1315 <td class="md" nowrap>FLAC__bool&nbsp;</td>
1316 <td class="mdname" nowrap> <em>all</em>, </td>
1317 </tr>
1318 <tr>
1319 <td class="md" nowrap align="right"></td>
1320 <td class="md"></td>
1321 <td class="md" nowrap>FLAC__bool&nbsp;</td>
1322 <td class="mdname" nowrap> <em>copy</em></td>
1323 </tr>
1324 <tr>
1325 <td class="md"></td>
1326 <td class="md">)&nbsp;</td>
1327 <td class="md" colspan="2"></td>
1328 </tr>
1329 </table>
1330 </td>
1331 </tr>
1332 </table>
1333 <table cellspacing="5" cellpadding="0" border="0">
1334 <tr>
1335 <td>
1336 &nbsp;
1337 </td>
1338 <td>
1339
1340 <p>
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>&nbsp;</td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1349 <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>The comment to insert. </td></tr>
1350 <tr><td valign="top"></td><td valign="top"><em>all</em>&nbsp;</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>&nbsp;</td><td>See above. </td></tr>
1352 </table>
1353 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1356 </pre></div> <div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 0) ||
1357 (entry.entry == NULL &amp;&amp; entry.length == 0 &amp;&amp; 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>&nbsp;</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>
1362 </table>
1363 </dl>
1364 </td>
1365 </tr>
1366 </table>
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">
1369 <tr>
1370 <td class="mdRow">
1371 <table cellpadding="0" cellspacing="0" border="0">
1372 <tr>
1373 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_delete_comment </td>
1374 <td class="md" valign="top">(&nbsp;</td>
1375 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1376 <td class="mdname" nowrap> <em>object</em>, </td>
1377 </tr>
1378 <tr>
1379 <td class="md" nowrap align="right"></td>
1380 <td class="md"></td>
1381 <td class="md" nowrap>unsigned&nbsp;</td>
1382 <td class="mdname" nowrap> <em>comment_num</em></td>
1383 </tr>
1384 <tr>
1385 <td class="md"></td>
1386 <td class="md">)&nbsp;</td>
1387 <td class="md" colspan="2"></td>
1388 </tr>
1389 </table>
1390 </td>
1391 </tr>
1392 </table>
1393 <table cellspacing="5" cellpadding="0" border="0">
1394 <tr>
1395 <td>
1396 &nbsp;
1397 </td>
1398 <td>
1399
1400 <p>
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>&nbsp;</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>&nbsp;</td><td>The index of the comment to delete. </td></tr>
1406 </table>
1407 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">FLAC__METADATA_TYPE_VORBIS_COMMENT</a>
1410 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.vorbis_comment.num_comments &gt; 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>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
1415 </table>
1416 </dl>
1417 </td>
1418 </tr>
1419 </table>
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">
1422 <tr>
1423 <td class="mdRow">
1424 <table cellpadding="0" cellspacing="0" border="0">
1425 <tr>
1426 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair </td>
1427 <td class="md" valign="top">(&nbsp;</td>
1428 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a> *&nbsp;</td>
1429 <td class="mdname" nowrap> <em>entry</em>, </td>
1430 </tr>
1431 <tr>
1432 <td class="md" nowrap align="right"></td>
1433 <td class="md"></td>
1434 <td class="md" nowrap>const char *&nbsp;</td>
1435 <td class="mdname" nowrap> <em>field_name</em>, </td>
1436 </tr>
1437 <tr>
1438 <td class="md" nowrap align="right"></td>
1439 <td class="md"></td>
1440 <td class="md" nowrap>const char *&nbsp;</td>
1441 <td class="mdname" nowrap> <em>field_value</em></td>
1442 </tr>
1443 <tr>
1444 <td class="md"></td>
1445 <td class="md">)&nbsp;</td>
1446 <td class="md" colspan="2"></td>
1447 </tr>
1448 </table>
1449 </td>
1450 </tr>
1451 </table>
1452 <table cellspacing="5" cellpadding="0" border="0">
1453 <tr>
1454 <td>
1455 &nbsp;
1456 </td>
1457 <td>
1458
1459 <p>
1460 Creates a Vorbis comment entry from NUL-terminated name and value strings.<p>
1461 On return, the filled-in <em>entry-&gt;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>&nbsp;</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>&nbsp;</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>&nbsp;</td><td>The field value in UTF-8, <code>NUL</code> terminated. </td></tr>
1467 </table>
1468 </dl>
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>&nbsp;</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>
1476 </table>
1477 </dl>
1478 </td>
1479 </tr>
1480 </table>
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">
1483 <tr>
1484 <td class="mdRow">
1485 <table cellpadding="0" cellspacing="0" border="0">
1486 <tr>
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">(&nbsp;</td>
1489 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a>&nbsp;</td>
1490 <td class="mdname" nowrap> <em>entry</em>, </td>
1491 </tr>
1492 <tr>
1493 <td class="md" nowrap align="right"></td>
1494 <td class="md"></td>
1495 <td class="md" nowrap>char **&nbsp;</td>
1496 <td class="mdname" nowrap> <em>field_name</em>, </td>
1497 </tr>
1498 <tr>
1499 <td class="md" nowrap align="right"></td>
1500 <td class="md"></td>
1501 <td class="md" nowrap>char **&nbsp;</td>
1502 <td class="mdname" nowrap> <em>field_value</em></td>
1503 </tr>
1504 <tr>
1505 <td class="md"></td>
1506 <td class="md">)&nbsp;</td>
1507 <td class="md" colspan="2"></td>
1508 </tr>
1509 </table>
1510 </td>
1511 </tr>
1512 </table>
1513 <table cellspacing="5" cellpadding="0" border="0">
1514 <tr>
1515 <td>
1516 &nbsp;
1517 </td>
1518 <td>
1519
1520 <p>
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>&nbsp;</td><td>An existing Vorbis comment entry. </td></tr>
1526 <tr><td valign="top"></td><td valign="top"><em>field_name</em>&nbsp;</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>&nbsp;</td><td>The address of where the returned pointer to the field value will be stored. </td></tr>
1528 </table>
1529 </dl>
1530 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 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>&nbsp;</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>
1538 </table>
1539 </dl>
1540 </td>
1541 </tr>
1542 </table>
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">
1545 <tr>
1546 <td class="mdRow">
1547 <table cellpadding="0" cellspacing="0" border="0">
1548 <tr>
1549 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_vorbiscomment_entry_matches </td>
1550 <td class="md" valign="top">(&nbsp;</td>
1551 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__VorbisComment__Entry.html">FLAC__StreamMetadata_VorbisComment_Entry</a>&nbsp;</td>
1552 <td class="mdname" nowrap> <em>entry</em>, </td>
1553 </tr>
1554 <tr>
1555 <td class="md" nowrap align="right"></td>
1556 <td class="md"></td>
1557 <td class="md" nowrap>const char *&nbsp;</td>
1558 <td class="mdname" nowrap> <em>field_name</em>, </td>
1559 </tr>
1560 <tr>
1561 <td class="md" nowrap align="right"></td>
1562 <td class="md"></td>
1563 <td class="md" nowrap>unsigned&nbsp;</td>
1564 <td class="mdname" nowrap> <em>field_name_length</em></td>
1565 </tr>
1566 <tr>
1567 <td class="md"></td>
1568 <td class="md">)&nbsp;</td>
1569 <td class="md" colspan="2"></td>
1570 </tr>
1571 </table>
1572 </td>
1573 </tr>
1574 </table>
1575 <table cellspacing="5" cellpadding="0" border="0">
1576 <tr>
1577 <td>
1578 &nbsp;
1579 </td>
1580 <td>
1581
1582 <p>
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>&nbsp;</td><td>An existing Vorbis comment entry. </td></tr>
1587 <tr><td valign="top"></td><td valign="top"><em>field_name</em>&nbsp;</td><td>The field name to check. </td></tr>
1588 <tr><td valign="top"></td><td valign="top"><em>field_name_length</em>&nbsp;</td><td>The length of <em>field_name</em>, not including the terminating <code>NUL</code>. </td></tr>
1589 </table>
1590 </dl>
1591 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> (entry.entry != NULL &amp;&amp; entry.length &gt; 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>&nbsp;</td><td><code>true</code> if the field names match, else <code>false</code> </td></tr>
1596 </table>
1597 </dl>
1598 </td>
1599 </tr>
1600 </table>
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">
1603 <tr>
1604 <td class="mdRow">
1605 <table cellpadding="0" cellspacing="0" border="0">
1606 <tr>
1607 <td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_find_entry_from </td>
1608 <td class="md" valign="top">(&nbsp;</td>
1609 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1610 <td class="mdname" nowrap> <em>object</em>, </td>
1611 </tr>
1612 <tr>
1613 <td class="md" nowrap align="right"></td>
1614 <td class="md"></td>
1615 <td class="md" nowrap>unsigned&nbsp;</td>
1616 <td class="mdname" nowrap> <em>offset</em>, </td>
1617 </tr>
1618 <tr>
1619 <td class="md" nowrap align="right"></td>
1620 <td class="md"></td>
1621 <td class="md" nowrap>const char *&nbsp;</td>
1622 <td class="mdname" nowrap> <em>field_name</em></td>
1623 </tr>
1624 <tr>
1625 <td class="md"></td>
1626 <td class="md">)&nbsp;</td>
1627 <td class="md" colspan="2"></td>
1628 </tr>
1629 </table>
1630 </td>
1631 </tr>
1632 </table>
1633 <table cellspacing="5" cellpadding="0" border="0">
1634 <tr>
1635 <td>
1636 &nbsp;
1637 </td>
1638 <td>
1639
1640 <p>
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>&nbsp;</td><td>A pointer to an existing VORBIS_COMMENT object. </td></tr>
1646 <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</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>&nbsp;</td><td>The field name of the comment to find. </td></tr>
1648 </table>
1649 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">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>&nbsp;</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>
1657 </table>
1658 </dl>
1659 </td>
1660 </tr>
1661 </table>
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">
1664 <tr>
1665 <td class="mdRow">
1666 <table cellpadding="0" cellspacing="0" border="0">
1667 <tr>
1668 <td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_remove_entry_matching </td>
1669 <td class="md" valign="top">(&nbsp;</td>
1670 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1671 <td class="mdname" nowrap> <em>object</em>, </td>
1672 </tr>
1673 <tr>
1674 <td class="md" nowrap align="right"></td>
1675 <td class="md"></td>
1676 <td class="md" nowrap>const char *&nbsp;</td>
1677 <td class="mdname" nowrap> <em>field_name</em></td>
1678 </tr>
1679 <tr>
1680 <td class="md"></td>
1681 <td class="md">)&nbsp;</td>
1682 <td class="md" colspan="2"></td>
1683 </tr>
1684 </table>
1685 </td>
1686 </tr>
1687 </table>
1688 <table cellspacing="5" cellpadding="0" border="0">
1689 <tr>
1690 <td>
1691 &nbsp;
1692 </td>
1693 <td>
1694
1695 <p>
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>&nbsp;</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>&nbsp;</td><td>The field name of comment to delete. </td></tr>
1701 </table>
1702 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">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>&nbsp;</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>
1709 </table>
1710 </dl>
1711 </td>
1712 </tr>
1713 </table>
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">
1716 <tr>
1717 <td class="mdRow">
1718 <table cellpadding="0" cellspacing="0" border="0">
1719 <tr>
1720 <td class="md" nowrap valign="top">int FLAC__metadata_object_vorbiscomment_remove_entries_matching </td>
1721 <td class="md" valign="top">(&nbsp;</td>
1722 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1723 <td class="mdname" nowrap> <em>object</em>, </td>
1724 </tr>
1725 <tr>
1726 <td class="md" nowrap align="right"></td>
1727 <td class="md"></td>
1728 <td class="md" nowrap>const char *&nbsp;</td>
1729 <td class="mdname" nowrap> <em>field_name</em></td>
1730 </tr>
1731 <tr>
1732 <td class="md"></td>
1733 <td class="md">)&nbsp;</td>
1734 <td class="md" colspan="2"></td>
1735 </tr>
1736 </table>
1737 </td>
1738 </tr>
1739 </table>
1740 <table cellspacing="5" cellpadding="0" border="0">
1741 <tr>
1742 <td>
1743 &nbsp;
1744 </td>
1745 <td>
1746
1747 <p>
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>&nbsp;</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>&nbsp;</td><td>The field name of comments to delete. </td></tr>
1753 </table>
1754 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a116">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>&nbsp;</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>
1761 </table>
1762 </dl>
1763 </td>
1764 </tr>
1765 </table>
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">
1768 <tr>
1769 <td class="mdRow">
1770 <table cellpadding="0" cellspacing="0" border="0">
1771 <tr>
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">(&nbsp;</td>
1774 <td class="md" nowrap valign="top">void&nbsp;</td>
1775 <td class="mdname1" valign="top" nowrap> </td>
1776 <td class="md" valign="top">&nbsp;)&nbsp;</td>
1777 <td class="md" nowrap></td>
1778 </tr>
1779 </table>
1780 </td>
1781 </tr>
1782 </table>
1783 <table cellspacing="5" cellpadding="0" border="0">
1784 <tr>
1785 <td>
1786 &nbsp;
1787 </td>
1788 <td>
1789
1790 <p>
1791 Create a new CUESHEET track instance.<p>
1792 The object will be "empty"; i.e. values and data pointers will be <code>0</code>.<p>
1793 <dl compact><dt><b>Return values:</b></dt><dd>
1794 <table border="0" cellspacing="2" cellpadding="0">
1795 <tr><td valign="top"></td><td valign="top"><em>FLAC__StreamMetadata_CueSheet_Track*</em>&nbsp;</td><td><code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
1796 </table>
1797 </dl>
1798 </td>
1799 </tr>
1800 </table>
1801 <a class="anchor" name="ga30" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_clone"></a><p>
1802 <table class="mdTable" cellpadding="2" cellspacing="0">
1803 <tr>
1804 <td class="mdRow">
1805 <table cellpadding="0" cellspacing="0" border="0">
1806 <tr>
1807 <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_clone </td>
1808 <td class="md" valign="top">(&nbsp;</td>
1809 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *&nbsp;</td>
1810 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
1811 <td class="md" valign="top">&nbsp;)&nbsp;</td>
1812 <td class="md" nowrap></td>
1813 </tr>
1814 </table>
1815 </td>
1816 </tr>
1817 </table>
1818 <table cellspacing="5" cellpadding="0" border="0">
1819 <tr>
1820 <td>
1821 &nbsp;
1822 </td>
1823 <td>
1824
1825 <p>
1826 Create a copy of an existing CUESHEET track object.<p>
1827 The copy is a "deep" copy, i.e. dynamically allocated data within the object is also copied. The caller takes ownership of the new object and is responsible for freeing it with <a class="el" href="group__flac__metadata__object.html#ga31">FLAC__metadata_object_cuesheet_track_delete()</a>.<p>
1828 <dl compact><dt><b>Parameters:</b></dt><dd>
1829 <table border="0" cellspacing="2" cellpadding="0">
1830 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>Pointer to object to copy. </td></tr>
1831 </table>
1832 </dl>
1833 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1834 </pre></div> </dd></dl>
1835 <dl compact><dt><b>Return values:</b></dt><dd>
1836 <table border="0" cellspacing="2" cellpadding="0">
1837 <tr><td valign="top"></td><td valign="top"><em>FLAC__StreamMetadata_CueSheet_Track*</em>&nbsp;</td><td><code>NULL</code> if there was an error allocating memory, else the new instance. </td></tr>
1838 </table>
1839 </dl>
1840 </td>
1841 </tr>
1842 </table>
1843 <a class="anchor" name="ga31" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_delete"></a><p>
1844 <table class="mdTable" cellpadding="2" cellspacing="0">
1845 <tr>
1846 <td class="mdRow">
1847 <table cellpadding="0" cellspacing="0" border="0">
1848 <tr>
1849 <td class="md" nowrap valign="top">void FLAC__metadata_object_cuesheet_track_delete </td>
1850 <td class="md" valign="top">(&nbsp;</td>
1851 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *&nbsp;</td>
1852 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
1853 <td class="md" valign="top">&nbsp;)&nbsp;</td>
1854 <td class="md" nowrap></td>
1855 </tr>
1856 </table>
1857 </td>
1858 </tr>
1859 </table>
1860 <table cellspacing="5" cellpadding="0" border="0">
1861 <tr>
1862 <td>
1863 &nbsp;
1864 </td>
1865 <td>
1866
1867 <p>
1868 Delete a CUESHEET track object<p>
1869 <dl compact><dt><b>Parameters:</b></dt><dd>
1870 <table border="0" cellspacing="2" cellpadding="0">
1871 <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to an existing CUESHEET track object. </td></tr>
1872 </table>
1873 </dl>
1874 <dl compact><dt><b>Assertions: </b></dt><dd><div class="fragment"><pre class="fragment"> object != NULL
1875 </pre></div> </dd></dl>
1876 </td>
1877 </tr>
1878 </table>
1879 <a class="anchor" name="ga32" doxytag="metadata.h::FLAC__metadata_object_cuesheet_track_resize_indices"></a><p>
1880 <table class="mdTable" cellpadding="2" cellspacing="0">
1881 <tr>
1882 <td class="mdRow">
1883 <table cellpadding="0" cellspacing="0" border="0">
1884 <tr>
1885 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_resize_indices </td>
1886 <td class="md" valign="top">(&nbsp;</td>
1887 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1888 <td class="mdname" nowrap> <em>object</em>, </td>
1889 </tr>
1890 <tr>
1891 <td class="md" nowrap align="right"></td>
1892 <td class="md"></td>
1893 <td class="md" nowrap>unsigned&nbsp;</td>
1894 <td class="mdname" nowrap> <em>track_num</em>, </td>
1895 </tr>
1896 <tr>
1897 <td class="md" nowrap align="right"></td>
1898 <td class="md"></td>
1899 <td class="md" nowrap>unsigned&nbsp;</td>
1900 <td class="mdname" nowrap> <em>new_num_indices</em></td>
1901 </tr>
1902 <tr>
1903 <td class="md"></td>
1904 <td class="md">)&nbsp;</td>
1905 <td class="md" colspan="2"></td>
1906 </tr>
1907 </table>
1908 </td>
1909 </tr>
1910 </table>
1911 <table cellspacing="5" cellpadding="0" border="0">
1912 <tr>
1913 <td>
1914 &nbsp;
1915 </td>
1916 <td>
1917
1918 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
1924 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>&nbsp;</td><td>The desired length of the array; may be <code>0</code>. </td></tr>
1926 </table>
1927 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
1930 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt; track_num
1931 </pre></div> <div class="fragment"><pre class="fragment"> (object-&gt;data.cue_sheet.tracks[track_num].indices == NULL &amp;&amp; object-&gt;data.cue_sheet.tracks[track_num].num_indices == 0) ||
1932 (object-&gt;data.cue_sheet.tracks[track_num].indices != NULL &amp;&amp; object-&gt;data.cue_sheet.tracks[track_num].num_indices &gt; 0)
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>&nbsp;</td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
1937 </table>
1938 </dl>
1939 </td>
1940 </tr>
1941 </table>
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">
1944 <tr>
1945 <td class="mdRow">
1946 <table cellpadding="0" cellspacing="0" border="0">
1947 <tr>
1948 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_insert_index </td>
1949 <td class="md" valign="top">(&nbsp;</td>
1950 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
1951 <td class="mdname" nowrap> <em>object</em>, </td>
1952 </tr>
1953 <tr>
1954 <td class="md" nowrap align="right"></td>
1955 <td class="md"></td>
1956 <td class="md" nowrap>unsigned&nbsp;</td>
1957 <td class="mdname" nowrap> <em>track_num</em>, </td>
1958 </tr>
1959 <tr>
1960 <td class="md" nowrap align="right"></td>
1961 <td class="md"></td>
1962 <td class="md" nowrap>unsigned&nbsp;</td>
1963 <td class="mdname" nowrap> <em>index_num</em>, </td>
1964 </tr>
1965 <tr>
1966 <td class="md" nowrap align="right"></td>
1967 <td class="md"></td>
1968 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a>&nbsp;</td>
1969 <td class="mdname" nowrap> <em>index</em></td>
1970 </tr>
1971 <tr>
1972 <td class="md"></td>
1973 <td class="md">)&nbsp;</td>
1974 <td class="md" colspan="2"></td>
1975 </tr>
1976 </table>
1977 </td>
1978 </tr>
1979 </table>
1980 <table cellspacing="5" cellpadding="0" border="0">
1981 <tr>
1982 <td>
1983 &nbsp;
1984 </td>
1985 <td>
1986
1987 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
1992 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>&nbsp;</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-&gt;data.cue_sheet.tracks</code>[track_num].num_indices . </td></tr>
1994 <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index point to insert. </td></tr>
1995 </table>
1996 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
1999 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt; track_num
2000 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.tracks[track_num].num_indices &gt;= 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>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2005 </table>
2006 </dl>
2007 </td>
2008 </tr>
2009 </table>
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">
2012 <tr>
2013 <td class="mdRow">
2014 <table cellpadding="0" cellspacing="0" border="0">
2015 <tr>
2016 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_insert_blank_index </td>
2017 <td class="md" valign="top">(&nbsp;</td>
2018 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2019 <td class="mdname" nowrap> <em>object</em>, </td>
2020 </tr>
2021 <tr>
2022 <td class="md" nowrap align="right"></td>
2023 <td class="md"></td>
2024 <td class="md" nowrap>unsigned&nbsp;</td>
2025 <td class="mdname" nowrap> <em>track_num</em>, </td>
2026 </tr>
2027 <tr>
2028 <td class="md" nowrap align="right"></td>
2029 <td class="md"></td>
2030 <td class="md" nowrap>unsigned&nbsp;</td>
2031 <td class="mdname" nowrap> <em>index_num</em></td>
2032 </tr>
2033 <tr>
2034 <td class="md"></td>
2035 <td class="md">)&nbsp;</td>
2036 <td class="md" colspan="2"></td>
2037 </tr>
2038 </table>
2039 </td>
2040 </tr>
2041 </table>
2042 <table cellspacing="5" cellpadding="0" border="0">
2043 <tr>
2044 <td>
2045 &nbsp;
2046 </td>
2047 <td>
2048
2049 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2055 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>&nbsp;</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-&gt;data.cue_sheet.tracks</code>[track_num].num_indices . </td></tr>
2057 </table>
2058 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2061 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt; track_num
2062 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.tracks[track_num].num_indices &gt;= 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>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2067 </table>
2068 </dl>
2069 </td>
2070 </tr>
2071 </table>
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">
2074 <tr>
2075 <td class="mdRow">
2076 <table cellpadding="0" cellspacing="0" border="0">
2077 <tr>
2078 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_track_delete_index </td>
2079 <td class="md" valign="top">(&nbsp;</td>
2080 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2081 <td class="mdname" nowrap> <em>object</em>, </td>
2082 </tr>
2083 <tr>
2084 <td class="md" nowrap align="right"></td>
2085 <td class="md"></td>
2086 <td class="md" nowrap>unsigned&nbsp;</td>
2087 <td class="mdname" nowrap> <em>track_num</em>, </td>
2088 </tr>
2089 <tr>
2090 <td class="md" nowrap align="right"></td>
2091 <td class="md"></td>
2092 <td class="md" nowrap>unsigned&nbsp;</td>
2093 <td class="mdname" nowrap> <em>index_num</em></td>
2094 </tr>
2095 <tr>
2096 <td class="md"></td>
2097 <td class="md">)&nbsp;</td>
2098 <td class="md" colspan="2"></td>
2099 </tr>
2100 </table>
2101 </td>
2102 </tr>
2103 </table>
2104 <table cellspacing="5" cellpadding="0" border="0">
2105 <tr>
2106 <td>
2107 &nbsp;
2108 </td>
2109 <td>
2110
2111 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2116 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>&nbsp;</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>
2118 </table>
2119 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2122 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt; track_num
2123 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.tracks[track_num].num_indices &gt; 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>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2128 </table>
2129 </dl>
2130 </td>
2131 </tr>
2132 </table>
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">
2135 <tr>
2136 <td class="mdRow">
2137 <table cellpadding="0" cellspacing="0" border="0">
2138 <tr>
2139 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_resize_tracks </td>
2140 <td class="md" valign="top">(&nbsp;</td>
2141 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2142 <td class="mdname" nowrap> <em>object</em>, </td>
2143 </tr>
2144 <tr>
2145 <td class="md" nowrap align="right"></td>
2146 <td class="md"></td>
2147 <td class="md" nowrap>unsigned&nbsp;</td>
2148 <td class="mdname" nowrap> <em>new_num_tracks</em></td>
2149 </tr>
2150 <tr>
2151 <td class="md"></td>
2152 <td class="md">)&nbsp;</td>
2153 <td class="md" colspan="2"></td>
2154 </tr>
2155 </table>
2156 </td>
2157 </tr>
2158 </table>
2159 <table cellspacing="5" cellpadding="0" border="0">
2160 <tr>
2161 <td>
2162 &nbsp;
2163 </td>
2164 <td>
2165
2166 <p>
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>&nbsp;</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>&nbsp;</td><td>The desired length of the array; may be <code>0</code>. </td></tr>
2173 </table>
2174 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2177 </pre></div> <div class="fragment"><pre class="fragment"> (object-&gt;data.cue_sheet.tracks == NULL &amp;&amp; object-&gt;data.cue_sheet.num_tracks == 0) ||
2178 (object-&gt;data.cue_sheet.tracks != NULL &amp;&amp; object-&gt;data.cue_sheet.num_tracks &gt; 0)
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>&nbsp;</td><td><code>false</code> if memory allocation error, else <code>true</code>. </td></tr>
2183 </table>
2184 </dl>
2185 </td>
2186 </tr>
2187 </table>
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">
2190 <tr>
2191 <td class="mdRow">
2192 <table cellpadding="0" cellspacing="0" border="0">
2193 <tr>
2194 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_insert_track </td>
2195 <td class="md" valign="top">(&nbsp;</td>
2196 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2197 <td class="mdname" nowrap> <em>object</em>, </td>
2198 </tr>
2199 <tr>
2200 <td class="md" nowrap align="right"></td>
2201 <td class="md"></td>
2202 <td class="md" nowrap>unsigned&nbsp;</td>
2203 <td class="mdname" nowrap> <em>track_num</em>, </td>
2204 </tr>
2205 <tr>
2206 <td class="md" nowrap align="right"></td>
2207 <td class="md"></td>
2208 <td class="md" nowrap><a class="el" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *&nbsp;</td>
2209 <td class="mdname" nowrap> <em>track</em>, </td>
2210 </tr>
2211 <tr>
2212 <td class="md" nowrap align="right"></td>
2213 <td class="md"></td>
2214 <td class="md" nowrap>FLAC__bool&nbsp;</td>
2215 <td class="mdname" nowrap> <em>copy</em></td>
2216 </tr>
2217 <tr>
2218 <td class="md"></td>
2219 <td class="md">)&nbsp;</td>
2220 <td class="md" colspan="2"></td>
2221 </tr>
2222 </table>
2223 </td>
2224 </tr>
2225 </table>
2226 <table cellspacing="5" cellpadding="0" border="0">
2227 <tr>
2228 <td>
2229 &nbsp;
2230 </td>
2231 <td>
2232
2233 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2239 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>&nbsp;</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>&nbsp;</td><td>See above. </td></tr>
2242 </table>
2243 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2246 </pre></div> <div class="fragment"><pre class="fragment"> track_num &lt; object-&gt;data.cue_sheet.num_tracks
2247 </pre></div> <div class="fragment"><pre class="fragment"> (track-&gt;indices != NULL &amp;&amp; track-&gt;num_indices &gt; 0) ||
2248 (track-&gt;indices == NULL &amp;&amp; track-&gt;num_indices == 0)
2249 \retval FLAC__bool
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.
2251 */
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);
2253
2254 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2255 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt;= 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>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2260 </table>
2261 </dl>
2262 </td>
2263 </tr>
2264 </table>
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">
2267 <tr>
2268 <td class="mdRow">
2269 <table cellpadding="0" cellspacing="0" border="0">
2270 <tr>
2271 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_insert_blank_track </td>
2272 <td class="md" valign="top">(&nbsp;</td>
2273 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2274 <td class="mdname" nowrap> <em>object</em>, </td>
2275 </tr>
2276 <tr>
2277 <td class="md" nowrap align="right"></td>
2278 <td class="md"></td>
2279 <td class="md" nowrap>unsigned&nbsp;</td>
2280 <td class="mdname" nowrap> <em>track_num</em></td>
2281 </tr>
2282 <tr>
2283 <td class="md"></td>
2284 <td class="md">)&nbsp;</td>
2285 <td class="md" colspan="2"></td>
2286 </tr>
2287 </table>
2288 </td>
2289 </tr>
2290 </table>
2291 <table cellspacing="5" cellpadding="0" border="0">
2292 <tr>
2293 <td>
2294 &nbsp;
2295 </td>
2296 <td>
2297
2298 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2304 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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-&gt;data.cue_sheet.num_tracks</code> . </td></tr>
2305 </table>
2306 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2309 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt;= 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>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2314 </table>
2315 </dl>
2316 </td>
2317 </tr>
2318 </table>
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">
2321 <tr>
2322 <td class="mdRow">
2323 <table cellpadding="0" cellspacing="0" border="0">
2324 <tr>
2325 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_delete_track </td>
2326 <td class="md" valign="top">(&nbsp;</td>
2327 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2328 <td class="mdname" nowrap> <em>object</em>, </td>
2329 </tr>
2330 <tr>
2331 <td class="md" nowrap align="right"></td>
2332 <td class="md"></td>
2333 <td class="md" nowrap>unsigned&nbsp;</td>
2334 <td class="mdname" nowrap> <em>track_num</em></td>
2335 </tr>
2336 <tr>
2337 <td class="md"></td>
2338 <td class="md">)&nbsp;</td>
2339 <td class="md" colspan="2"></td>
2340 </tr>
2341 </table>
2342 </td>
2343 </tr>
2344 </table>
2345 <table cellspacing="5" cellpadding="0" border="0">
2346 <tr>
2347 <td>
2348 &nbsp;
2349 </td>
2350 <td>
2351
2352 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2357 <tr><td valign="top"></td><td valign="top"><em>track_num</em>&nbsp;</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>
2358 </table>
2359 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">FLAC__METADATA_TYPE_CUESHEET</a>
2362 </pre></div> <div class="fragment"><pre class="fragment"> object-&gt;data.cue_sheet.num_tracks &gt; 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>&nbsp;</td><td><code>false</code> if realloc() fails, else <code>true</code>. </td></tr>
2367 </table>
2368 </dl>
2369 </td>
2370 </tr>
2371 </table>
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">
2374 <tr>
2375 <td class="mdRow">
2376 <table cellpadding="0" cellspacing="0" border="0">
2377 <tr>
2378 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_cuesheet_is_legal </td>
2379 <td class="md" valign="top">(&nbsp;</td>
2380 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2381 <td class="mdname" nowrap> <em>object</em>, </td>
2382 </tr>
2383 <tr>
2384 <td class="md" nowrap align="right"></td>
2385 <td class="md"></td>
2386 <td class="md" nowrap>FLAC__bool&nbsp;</td>
2387 <td class="mdname" nowrap> <em>check_cd_da_subset</em>, </td>
2388 </tr>
2389 <tr>
2390 <td class="md" nowrap align="right"></td>
2391 <td class="md"></td>
2392 <td class="md" nowrap>const char **&nbsp;</td>
2393 <td class="mdname" nowrap> <em>violation</em></td>
2394 </tr>
2395 <tr>
2396 <td class="md"></td>
2397 <td class="md">)&nbsp;</td>
2398 <td class="md" colspan="2"></td>
2399 </tr>
2400 </table>
2401 </td>
2402 </tr>
2403 </table>
2404 <table cellspacing="5" cellpadding="0" border="0">
2405 <tr>
2406 <td>
2407 &nbsp;
2408 </td>
2409 <td>
2410
2411 <p>
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>&nbsp;</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>&nbsp;</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>&nbsp;</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>
2418 </table>
2419 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">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>&nbsp;</td><td><code>false</code> if cue sheet is illegal, else <code>true</code>. </td></tr>
2426 </table>
2427 </dl>
2428 </td>
2429 </tr>
2430 </table>
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">
2433 <tr>
2434 <td class="mdRow">
2435 <table cellpadding="0" cellspacing="0" border="0">
2436 <tr>
2437 <td class="md" nowrap valign="top">FLAC__uint32 FLAC__metadata_object_cuesheet_calculate_cddb_id </td>
2438 <td class="md" valign="top">(&nbsp;</td>
2439 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2440 <td class="mdname1" valign="top" nowrap> <em>object</em> </td>
2441 <td class="md" valign="top">&nbsp;)&nbsp;</td>
2442 <td class="md" nowrap></td>
2443 </tr>
2444 </table>
2445 </td>
2446 </tr>
2447 </table>
2448 <table cellspacing="5" cellpadding="0" border="0">
2449 <tr>
2450 <td>
2451 &nbsp;
2452 </td>
2453 <td>
2454
2455 <p>
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>&nbsp;</td><td>A pointer to an existing CUESHEET object. </td></tr>
2460 </table>
2461 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a117">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>&nbsp;</td><td>The unsigned integer representation of the CDDB/freedb ID </td></tr>
2468 </table>
2469 </dl>
2470 </td>
2471 </tr>
2472 </table>
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">
2475 <tr>
2476 <td class="mdRow">
2477 <table cellpadding="0" cellspacing="0" border="0">
2478 <tr>
2479 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_mime_type </td>
2480 <td class="md" valign="top">(&nbsp;</td>
2481 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2482 <td class="mdname" nowrap> <em>object</em>, </td>
2483 </tr>
2484 <tr>
2485 <td class="md" nowrap align="right"></td>
2486 <td class="md"></td>
2487 <td class="md" nowrap>char *&nbsp;</td>
2488 <td class="mdname" nowrap> <em>mime_type</em>, </td>
2489 </tr>
2490 <tr>
2491 <td class="md" nowrap align="right"></td>
2492 <td class="md"></td>
2493 <td class="md" nowrap>FLAC__bool&nbsp;</td>
2494 <td class="mdname" nowrap> <em>copy</em></td>
2495 </tr>
2496 <tr>
2497 <td class="md"></td>
2498 <td class="md">)&nbsp;</td>
2499 <td class="md" colspan="2"></td>
2500 </tr>
2501 </table>
2502 </td>
2503 </tr>
2504 </table>
2505 <table cellspacing="5" cellpadding="0" border="0">
2506 <tr>
2507 <td>
2508 &nbsp;
2509 </td>
2510 <td>
2511
2512 <p>
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>&nbsp;</td><td>A pointer to an existing PICTURE object. </td></tr>
2519 <tr><td valign="top"></td><td valign="top"><em>mime_type</em>&nbsp;</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>&nbsp;</td><td>See above. </td></tr>
2521 </table>
2522 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a118">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>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2530 </table>
2531 </dl>
2532 </td>
2533 </tr>
2534 </table>
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">
2537 <tr>
2538 <td class="mdRow">
2539 <table cellpadding="0" cellspacing="0" border="0">
2540 <tr>
2541 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_description </td>
2542 <td class="md" valign="top">(&nbsp;</td>
2543 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2544 <td class="mdname" nowrap> <em>object</em>, </td>
2545 </tr>
2546 <tr>
2547 <td class="md" nowrap align="right"></td>
2548 <td class="md"></td>
2549 <td class="md" nowrap>FLAC__byte *&nbsp;</td>
2550 <td class="mdname" nowrap> <em>description</em>, </td>
2551 </tr>
2552 <tr>
2553 <td class="md" nowrap align="right"></td>
2554 <td class="md"></td>
2555 <td class="md" nowrap>FLAC__bool&nbsp;</td>
2556 <td class="mdname" nowrap> <em>copy</em></td>
2557 </tr>
2558 <tr>
2559 <td class="md"></td>
2560 <td class="md">)&nbsp;</td>
2561 <td class="md" colspan="2"></td>
2562 </tr>
2563 </table>
2564 </td>
2565 </tr>
2566 </table>
2567 <table cellspacing="5" cellpadding="0" border="0">
2568 <tr>
2569 <td>
2570 &nbsp;
2571 </td>
2572 <td>
2573
2574 <p>
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>&nbsp;</td><td>A pointer to an existing PICTURE object. </td></tr>
2581 <tr><td valign="top"></td><td valign="top"><em>description</em>&nbsp;</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>&nbsp;</td><td>See above. </td></tr>
2583 </table>
2584 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a118">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>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2592 </table>
2593 </dl>
2594 </td>
2595 </tr>
2596 </table>
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">
2599 <tr>
2600 <td class="mdRow">
2601 <table cellpadding="0" cellspacing="0" border="0">
2602 <tr>
2603 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_set_data </td>
2604 <td class="md" valign="top">(&nbsp;</td>
2605 <td class="md" nowrap valign="top"><a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2606 <td class="mdname" nowrap> <em>object</em>, </td>
2607 </tr>
2608 <tr>
2609 <td class="md" nowrap align="right"></td>
2610 <td class="md"></td>
2611 <td class="md" nowrap>FLAC__byte *&nbsp;</td>
2612 <td class="mdname" nowrap> <em>data</em>, </td>
2613 </tr>
2614 <tr>
2615 <td class="md" nowrap align="right"></td>
2616 <td class="md"></td>
2617 <td class="md" nowrap>FLAC__uint32&nbsp;</td>
2618 <td class="mdname" nowrap> <em>length</em>, </td>
2619 </tr>
2620 <tr>
2621 <td class="md" nowrap align="right"></td>
2622 <td class="md"></td>
2623 <td class="md" nowrap>FLAC__bool&nbsp;</td>
2624 <td class="mdname" nowrap> <em>copy</em></td>
2625 </tr>
2626 <tr>
2627 <td class="md"></td>
2628 <td class="md">)&nbsp;</td>
2629 <td class="md" colspan="2"></td>
2630 </tr>
2631 </table>
2632 </td>
2633 </tr>
2634 </table>
2635 <table cellspacing="5" cellpadding="0" border="0">
2636 <tr>
2637 <td>
2638 &nbsp;
2639 </td>
2640 <td>
2641
2642 <p>
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>&nbsp;</td><td>A pointer to an existing PICTURE object. </td></tr>
2649 <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data to set. </td></tr>
2650 <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>The length of <em>data</em> in bytes. </td></tr>
2651 <tr><td valign="top"></td><td valign="top"><em>copy</em>&nbsp;</td><td>See above. </td></tr>
2652 </table>
2653 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a118">FLAC__METADATA_TYPE_PICTURE</a>
2656 </pre></div> <div class="fragment"><pre class="fragment"> (data != NULL &amp;&amp; length &gt; 0) ||
2657 (data == NULL &amp;&amp; length == 0 &amp;&amp; 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>&nbsp;</td><td><code>false</code> if <em>copy</em> is <code>true</code> and malloc() fails, else <code>true</code>. </td></tr>
2662 </table>
2663 </dl>
2664 </td>
2665 </tr>
2666 </table>
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">
2669 <tr>
2670 <td class="mdRow">
2671 <table cellpadding="0" cellspacing="0" border="0">
2672 <tr>
2673 <td class="md" nowrap valign="top">FLAC__bool FLAC__metadata_object_picture_is_legal </td>
2674 <td class="md" valign="top">(&nbsp;</td>
2675 <td class="md" nowrap valign="top">const <a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *&nbsp;</td>
2676 <td class="mdname" nowrap> <em>object</em>, </td>
2677 </tr>
2678 <tr>
2679 <td class="md" nowrap align="right"></td>
2680 <td class="md"></td>
2681 <td class="md" nowrap>const char **&nbsp;</td>
2682 <td class="mdname" nowrap> <em>violation</em></td>
2683 </tr>
2684 <tr>
2685 <td class="md"></td>
2686 <td class="md">)&nbsp;</td>
2687 <td class="md" colspan="2"></td>
2688 </tr>
2689 </table>
2690 </td>
2691 </tr>
2692 </table>
2693 <table cellspacing="5" cellpadding="0" border="0">
2694 <tr>
2695 <td>
2696 &nbsp;
2697 </td>
2698 <td>
2699
2700 <p>
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>&nbsp;</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>&nbsp;</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>
2706 </table>
2707 </dl>
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-&gt;type == <a class="code" href="group__flac__format.html#gga113a118">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>&nbsp;</td><td><code>false</code> if PICTURE block is illegal, else <code>true</code>. </td></tr>
2714 </table>
2715 </dl>
2716 </td>
2717 </tr>
2718 </table>
2719
2720 <hr size="1">
2721 <div class="copyright">
2722 <!-- @@@ oh so hacky -->
2723 <table>
2724 <tr>
2725 <td align="left">
2726 Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
2727 </td>
2728 <td width="1%" align="right">
2729 <a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&amp;type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
2730 </td>
2731 </tr>
2732 </table>
2733 </div>
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 -->
2740 </body>
2741 </html>