Skip to content

Latest commit

 

History

History
135 lines (132 loc) · 9.06 KB

group__flacpp__metadata__level2.html

File metadata and controls

135 lines (132 loc) · 9.06 KB
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FLAC: FLAC++/metadata.h: metadata level 2 interface</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">FLAC
&#160;<span id="projectnumber">1.3.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">FLAC++/metadata.h: metadata level 2 interface<div class="ingroups"><a class="el" href="group__flacpp.html">FLAC C++ API</a> &raquo; <a class="el" href="group__flacpp__metadata.html">FLAC++/metadata.h: metadata interfaces</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFLAC_1_1Metadata_1_1Chain.html">FLAC::Metadata::Chain</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html">FLAC::Metadata::Iterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae49fa399a6273ccad7cb0e6f787a3f5c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__flacpp__metadata__level2.html#gae49fa399a6273ccad7cb0e6f787a3f5c">FLAC::Metadata::Prototype::Prototype</a> (const <a class="el" href="classFLAC_1_1Metadata_1_1Prototype.html">Prototype</a> &amp;)</td></tr>
<tr class="separator:gae49fa399a6273ccad7cb0e6f787a3f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d03bfec2cd09578f166fcd463b56d4f"><td class="memItemLeft" align="right" valign="top"><a id="ga3d03bfec2cd09578f166fcd463b56d4f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>FLAC::Metadata::Prototype::Prototype</b> (const ::<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;)</td></tr>
<tr class="separator:ga3d03bfec2cd09578f166fcd463b56d4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b39c0561f84c3529302dc68b1ba8a2e"><td class="memItemLeft" align="right" valign="top"><a id="ga1b39c0561f84c3529302dc68b1ba8a2e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>FLAC::Metadata::Prototype::Prototype</b> (const ::<a class="el" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *)</td></tr>
<tr class="separator:ga1b39c0561f84c3529302dc68b1ba8a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Level 2 metadata iterator. </p>
<p>The flow through the iterator in the C++ layer is similar to the C layer:</p><ul>
<li>Create a <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html">Chain</a> instance</li>
<li>Check <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#a62ff055714c8ce75d907ae58738113a4" title="Returns true iff object was properly constructed. ">Chain::is_valid()</a></li>
<li>Call <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#a509bf6a75a12df65bc77947a4765d9c1" title="See FLAC__metadata_chain_read(), FLAC__metadata_chain_read_ogg(). ">Chain::read()</a> and check the return</li>
<li>Traverse and/or edit with an <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html">Iterator</a> or with <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#aef51a0414284f468a2d73c07b540641d" title="See FLAC__metadata_chain_merge_padding(). ">Chain::merge_padding()</a> or <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#a779eaac12da7e7edac67089053e5907f" title="See FLAC__metadata_chain_sort_padding(). ">Chain::sort_padding()</a></li>
<li>Write changes back to FLAC file with <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#a2341690885e2312013afc561e6fafd81" title="See FLAC__metadata_chain_write(). ">Chain::write()</a></li>
<li>Destroy the <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html">Chain</a> instance</li>
</ul>
<p>The ownership of pointers in the C++ layer is slightly different than in the C layer, i.e.</p><ul>
<li>The objects returned by <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html#a3693233f592b9cb333c437413c6be2a6" title="See FLAC__metadata_iterator_get_block(). ">Iterator::get_block()</a> are NOT owned by the iterator and should be deleted by the caller when finished, BUT, when you modify the block, it will directly edit what's in the chain and you do not need to call <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html#a3123daf89fca2a8981c9f361f466a418" title="See FLAC__metadata_iterator_set_block(). ">Iterator::set_block()</a>. However the changes will not be reflected in the FLAC file until the chain is written with <a class="el" href="classFLAC_1_1Metadata_1_1Chain.html#a2341690885e2312013afc561e6fafd81" title="See FLAC__metadata_chain_write(). ">Chain::write()</a>.</li>
<li>When you pass an object to <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html#a3123daf89fca2a8981c9f361f466a418" title="See FLAC__metadata_iterator_set_block(). ">Iterator::set_block()</a>, <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html#a86de6d0b21ac08b74a2ea8c1a9adce36" title="See FLAC__metadata_iterator_insert_block_before(). ">Iterator::insert_block_before()</a>, or <a class="el" href="classFLAC_1_1Metadata_1_1Iterator.html#a73e7a3f7192f369cb3a19d078da504ab" title="See FLAC__metadata_iterator_insert_block_after(). ">Iterator::insert_block_after()</a>, the iterator takes ownership of the block and it will be deleted by the chain.</li>
</ul>
<p>See the <a class="el" href="group__flac__metadata__level2.html">C layer equivalent </a> for more. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gae49fa399a6273ccad7cb0e6f787a3f5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae49fa399a6273ccad7cb0e6f787a3f5c">&#9670;&nbsp;</a></span>Prototype()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">FLAC::Metadata::Prototype::Prototype </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classFLAC_1_1Metadata_1_1Prototype.html">Prototype</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a copy of the given object. This form always performs a deep copy. </p>
</div>
</div>
</div><!-- contents -->
<hr size="1"/>
<div class="copyright">
<!-- @@@ oh so hacky -->
<table>
<tr>
<td align="left">
Copyright (c) 2000-2009 Josh Coalson
Copyright (c) 2011-2016 Xiph.Org Foundation
</td>
<td width="1%" align="right">
<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>
</td>
</tr>
</table>
</div>
<!-- Copyright (c) 2000-2009 Josh Coalson -->
<!-- Copyright (c) 2011-2016 Xiph.Org Foundation -->
<!-- Permission is granted to copy, distribute and/or modify this document -->
<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
<!-- or any later version published by the Free Software Foundation; -->
<!-- with no invariant sections. -->
<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
</body>
</html>