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: include/FLAC++/metadata.h Source File</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<div class="nav">
9<a class="el" href="dir_000000.html">include</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">FLAC++</a></div>
10<h1>metadata.h</h1><a href="+_2metadata_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/* libFLAC++ - Free Lossless Audio Codec library</span>
1100002 <span class="comment"> * Copyright (C) 2002,2003,2004,2005,2006,2007  Josh Coalson</span>
1200003 <span class="comment"> *</span>
1300004 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span>
1400005 <span class="comment"> * modification, are permitted provided that the following conditions</span>
1500006 <span class="comment"> * are met:</span>
1600007 <span class="comment"> *</span>
1700008 <span class="comment"> * - Redistributions of source code must retain the above copyright</span>
1800009 <span class="comment"> * notice, this list of conditions and the following disclaimer.</span>
1900010 <span class="comment"> *</span>
2000011 <span class="comment"> * - Redistributions in binary form must reproduce the above copyright</span>
2100012 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span>
2200013 <span class="comment"> * documentation and/or other materials provided with the distribution.</span>
2300014 <span class="comment"> *</span>
2400015 <span class="comment"> * - Neither the name of the Xiph.org Foundation nor the names of its</span>
2500016 <span class="comment"> * contributors may be used to endorse or promote products derived from</span>
2600017 <span class="comment"> * this software without specific prior written permission.</span>
2700018 <span class="comment"> *</span>
2800019 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span>
2900020 <span class="comment"> * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span>
3000021 <span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span>
3100022 <span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR</span>
3200023 <span class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</span>
3300024 <span class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</span>
3400025 <span class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</span>
3500026 <span class="comment"> * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</span>
3600027 <span class="comment"> * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</span>
3700028 <span class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
3800029 <span class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
3900030 <span class="comment"> */</span>
4000031 
4100032 <span class="preprocessor">#ifndef FLACPP__METADATA_H</span>
4200033 <span class="preprocessor"></span><span class="preprocessor">#define FLACPP__METADATA_H</span>
4300034 <span class="preprocessor"></span>
4400035 <span class="preprocessor">#include "<a class="code" href="+_2export_8h.html">export.h</a>"</span>
4500036 
4600037 <span class="preprocessor">#include "<a class="code" href="metadata_8h.html">FLAC/metadata.h</a>"</span>
4700038 
4800039 <span class="comment">// ===============================================================</span>
4900040 <span class="comment">//</span>
5000041 <span class="comment">//  Full documentation for the metadata interface can be found</span>
5100042 <span class="comment">//  in the C layer in include/FLAC/metadata.h</span>
5200043 <span class="comment">//</span>
5300044 <span class="comment">// ===============================================================</span>
5400045 
5500074 <span class="keyword">namespace </span>FLAC {
5600075     <span class="keyword">namespace </span>Metadata {
5700076 
5800077         <span class="comment">// ============================================================</span>
5900078         <span class="comment">//</span>
6000079         <span class="comment">//  Metadata objects</span>
6100080         <span class="comment">//</span>
6200081         <span class="comment">// ============================================================</span>
6300082 
64<a name="l00108"></a><a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html">00108</a>         <span class="keyword">class </span>FLACPP_API Prototype {
6500109         <span class="keyword">protected</span>:
6600111 
6700114             Prototype(<span class="keyword">const</span> Prototype &amp;);
6800115             Prototype(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;);
6900116             Prototype(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *);
7000118 
7100129             Prototype(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy);
7200130 
7300132 
7400133             Prototype &amp;operator=(<span class="keyword">const</span> Prototype &amp;);
7500134             Prototype &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;);
7600135             Prototype &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *);
7700137 
7800141             Prototype &amp;assign_object(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy);
7900142 
8000145             <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
8100146 
8200147             ::FLAC__StreamMetadata *object_;
8300148         <span class="keyword">public</span>:
8400151             <span class="keyword">virtual</span> ~Prototype();
8500152 
8600154 
8700156             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Prototype &amp;) <span class="keyword">const</span>;
8800157             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;) <span class="keyword">const</span>;
8900158             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *) <span class="keyword">const</span>;
9000160 
9100162 
9200163             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> Prototype &amp;) <span class="keyword">const</span>;
9300164             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;) <span class="keyword">const</span>;
9400165             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *) <span class="keyword">const</span>;
9500167 
9600168             <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFLAC_1_1Metadata_1_1SimpleIterator.html">SimpleIterator</a>;
9700169             <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFLAC_1_1Metadata_1_1Iterator.html">Iterator</a>;
9800170 
9900175             <span class="keyword">inline</span> <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>;
10000176 
10100183             <span class="keywordtype">bool</span> get_is_last() <span class="keyword">const</span>;
10200184 
10300190 <a class="code" href="group__flac__format.html#ga113">			::FLAC__MetadataType</a> get_type() <span class="keyword">const</span>;
10400191 
10500201             <span class="keywordtype">unsigned</span> get_length() <span class="keyword">const</span>;
10600202 
10700209             <span class="keywordtype">void</span> set_is_last(<span class="keywordtype">bool</span>);
10800210 
10900218             <span class="keyword">inline</span> operator const ::FLAC__StreamMetadata *() <span class="keyword">const</span>;
11000219         <span class="keyword">private</span>:
11100221             Prototype();
11200222 
11300223             <span class="comment">// These are used only by Iterator</span>
11400224             <span class="keywordtype">bool</span> is_reference_;
11500225             <span class="keyword">inline</span> <span class="keywordtype">void</span> set_reference(<span class="keywordtype">bool</span> x) { is_reference_ = x; }
11600226         };
11700227 
11800228 <span class="preprocessor">#ifdef _MSC_VER</span>
11900229 <span class="preprocessor"></span><span class="comment">// warning C4800: 'int' : forcing to bool 'true' or 'false' (performance warning)</span>
12000230 <span class="preprocessor">#pragma warning ( disable : 4800 )</span>
12100231 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
12200232 <span class="preprocessor"></span>
123<a name="l00233"></a><a class="code" href="group__flacpp__metadata__object.html#ga1">00233</a>         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(<span class="keyword">const</span> Prototype &amp;object)<span class="keyword"> const</span>
12400234 <span class="keyword">        </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)<a class="code" href="group__flac__metadata__object.html#ga3">::FLAC__metadata_object_is_equal</a>(object_, object.<a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentp0">object_</a>); }
12500235 
12600236         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const</span>
12700237 <span class="keyword">        </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)<a class="code" href="group__flac__metadata__object.html#ga3">::FLAC__metadata_object_is_equal</a>(object_, &amp;object); }
12800238 
12900239         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const</span>
13000240 <span class="keyword">        </span>{ <span class="keywordflow">return</span> (<span class="keywordtype">bool</span>)<a class="code" href="group__flac__metadata__object.html#ga3">::FLAC__metadata_object_is_equal</a>(object_, object); }
13100241 
13200242 <span class="preprocessor">#ifdef _MSC_VER</span>
13300243 <span class="preprocessor"></span><span class="comment">// @@@ how to re-enable?  the following doesn't work</span>
13400244 <span class="comment">// #pragma warning ( enable : 4800 )</span>
13500245 <span class="preprocessor">#endif</span>
13600246 <span class="preprocessor"></span>
137<a name="l00247"></a><a class="code" href="group__flacpp__metadata__object.html#ga4">00247</a>         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(<span class="keyword">const</span> Prototype &amp;object)<span class="keyword"> const</span>
13800248 <span class="keyword">        </span>{ <span class="keywordflow">return</span> !<a class="code" href="group__flacpp__metadata__object.html#ga1">operator==</a>(object); }
13900249 
14000250         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const</span>
14100251 <span class="keyword">        </span>{ <span class="keywordflow">return</span> !<a class="code" href="group__flacpp__metadata__object.html#ga1">operator==</a>(object); }
14200252 
14300253         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const</span>
14400254 <span class="keyword">        </span>{ <span class="keywordflow">return</span> !<a class="code" href="group__flacpp__metadata__object.html#ga1">operator==</a>(object); }
14500255 
146<a name="l00256"></a><a class="code" href="group__flacpp__metadata__object.html#ga7">00256</a>         <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__object.html#ga7">Prototype::is_valid</a>()<span class="keyword"> const</span>
14700257 <span class="keyword">        </span>{ <span class="keywordflow">return</span> 0 != object_; }
14800258 
149<a name="l00259"></a><a class="code" href="group__flacpp__metadata__object.html#ga8">00259</a>         <span class="keyword">inline</span> Prototype::operator const ::FLAC__StreamMetadata *()<span class="keyword"> const</span>
15000260 <span class="keyword">        </span>{ <span class="keywordflow">return</span> object_; }
15100261 
15200263         FLACPP_API Prototype *<a class="code" href="group__flacpp__metadata__object.html#ga0">clone</a>(<span class="keyword">const</span> Prototype *);
15300264 
15400265 
155<a name="l00270"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html">00270</a>         <span class="keyword">class </span>FLACPP_API StreamInfo : <span class="keyword">public</span> Prototype {
15600271         <span class="keyword">public</span>:
15700272             StreamInfo();
15800273 
15900275 
160<a name="l00278"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa1">00278</a>             <span class="keyword">inline</span> StreamInfo(<span class="keyword">const</span> StreamInfo &amp;object): Prototype(object) { }
16100279             <span class="keyword">inline</span> StreamInfo(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
16200280             <span class="keyword">inline</span> StreamInfo(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
16300282 
164<a name="l00286"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa4">00286</a>             <span class="keyword">inline</span> StreamInfo(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
16500287 
16600288             ~StreamInfo();
16700289 
16800291 
169<a name="l00292"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa6">00292</a>             <span class="keyword">inline</span> StreamInfo &amp;operator=(<span class="keyword">const</span> StreamInfo &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
17000293             <span class="keyword">inline</span> StreamInfo &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
17100294             <span class="keyword">inline</span> StreamInfo &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
17200296 
173<a name="l00300"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa9">00300</a>             <span class="keyword">inline</span> StreamInfo &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
17400301 
17500303 
176<a name="l00304"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa10">00304</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> StreamInfo &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
17700305             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
17800306             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
17900308 
18000310 
181<a name="l00311"></a><a class="code" href="classFLAC_1_1Metadata_1_1StreamInfo.html#FLAC_1_1Metadata_1_1StreamInfoa13">00311</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> StreamInfo &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
18200312             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
18300313             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
18400315 
18500317 
18600318             <span class="keywordtype">unsigned</span> get_min_blocksize() <span class="keyword">const</span>;
18700319             <span class="keywordtype">unsigned</span> get_max_blocksize() <span class="keyword">const</span>;
18800320             <span class="keywordtype">unsigned</span> get_min_framesize() <span class="keyword">const</span>;
18900321             <span class="keywordtype">unsigned</span> get_max_framesize() <span class="keyword">const</span>;
19000322             <span class="keywordtype">unsigned</span> get_sample_rate() <span class="keyword">const</span>;
19100323             <span class="keywordtype">unsigned</span> get_channels() <span class="keyword">const</span>;
19200324             <span class="keywordtype">unsigned</span> get_bits_per_sample() <span class="keyword">const</span>;
19300325             FLAC__uint64 get_total_samples() <span class="keyword">const</span>;
19400326             <span class="keyword">const</span> FLAC__byte *get_md5sum() <span class="keyword">const</span>;
19500327 
19600328             <span class="keywordtype">void</span> set_min_blocksize(<span class="keywordtype">unsigned</span> value);
19700329             <span class="keywordtype">void</span> set_max_blocksize(<span class="keywordtype">unsigned</span> value);
19800330             <span class="keywordtype">void</span> set_min_framesize(<span class="keywordtype">unsigned</span> value);
19900331             <span class="keywordtype">void</span> set_max_framesize(<span class="keywordtype">unsigned</span> value);
20000332             <span class="keywordtype">void</span> set_sample_rate(<span class="keywordtype">unsigned</span> value);
20100333             <span class="keywordtype">void</span> set_channels(<span class="keywordtype">unsigned</span> value);
20200334             <span class="keywordtype">void</span> set_bits_per_sample(<span class="keywordtype">unsigned</span> value);
20300335             <span class="keywordtype">void</span> set_total_samples(FLAC__uint64 value);
20400336             <span class="keywordtype">void</span> set_md5sum(<span class="keyword">const</span> FLAC__byte value[16]);
20500338         };
20600339 
207<a name="l00344"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html">00344</a>         <span class="keyword">class </span>FLACPP_API Padding : <span class="keyword">public</span> Prototype {
20800345         <span class="keyword">public</span>:
20900346             Padding();
21000347 
21100349 
212<a name="l00352"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga1">00352</a>             <span class="keyword">inline</span> Padding(<span class="keyword">const</span> Padding &amp;object): Prototype(object) { }
21300353             <span class="keyword">inline</span> Padding(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
21400354             <span class="keyword">inline</span> Padding(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
21500356 
216<a name="l00360"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga4">00360</a>             <span class="keyword">inline</span> Padding(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
21700361 
21800362             ~Padding();
21900363 
22000365 
221<a name="l00366"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga6">00366</a>             <span class="keyword">inline</span> Padding &amp;operator=(<span class="keyword">const</span> Padding &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
22200367             <span class="keyword">inline</span> Padding &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
22300368             <span class="keyword">inline</span> Padding &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
22400370 
225<a name="l00374"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga9">00374</a>             <span class="keyword">inline</span> Padding &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
22600375 
22700377 
228<a name="l00378"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga10">00378</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Padding &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
22900379             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
23000380             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
23100382 
23200384 
233<a name="l00385"></a><a class="code" href="classFLAC_1_1Metadata_1_1Padding.html#FLAC_1_1Metadata_1_1Paddinga13">00385</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> Padding &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
23400386             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
23500387             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
23600389 
23700390             <span class="keywordtype">void</span> set_length(<span class="keywordtype">unsigned</span> length);
23800391         };
23900392 
240<a name="l00397"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html">00397</a>         <span class="keyword">class </span>FLACPP_API Application : <span class="keyword">public</span> Prototype {
24100398         <span class="keyword">public</span>:
24200399             Application();
24300400             <span class="comment">//</span>
24400402 <span class="comment"></span>
245<a name="l00405"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa1">00405</a>             <span class="keyword">inline</span> Application(<span class="keyword">const</span> Application &amp;object): Prototype(object) { }
24600406             <span class="keyword">inline</span> Application(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
24700407             <span class="keyword">inline</span> Application(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
24800409 
249<a name="l00413"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa4">00413</a>             <span class="keyword">inline</span> Application(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
25000414 
25100415             ~Application();
25200416 
25300418 
254<a name="l00419"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa6">00419</a>             <span class="keyword">inline</span> Application &amp;operator=(<span class="keyword">const</span> Application &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
25500420             <span class="keyword">inline</span> Application &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
25600421             <span class="keyword">inline</span> Application &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
25700423 
258<a name="l00427"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa9">00427</a>             <span class="keyword">inline</span> Application &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
25900428 
26000430 
261<a name="l00431"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa10">00431</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Application &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
26200432             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
26300433             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
26400435 
26500437 
266<a name="l00438"></a><a class="code" href="classFLAC_1_1Metadata_1_1Application.html#FLAC_1_1Metadata_1_1Applicationa13">00438</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> Application &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
26700439             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
26800440             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
26900442 
27000443             <span class="keyword">const</span> FLAC__byte *get_id() <span class="keyword">const</span>;
27100444             <span class="keyword">const</span> FLAC__byte *get_data() <span class="keyword">const</span>;
27200445 
27300446             <span class="keywordtype">void</span> set_id(<span class="keyword">const</span> FLAC__byte value[4]);
27400448             <span class="keywordtype">bool</span> set_data(<span class="keyword">const</span> FLAC__byte *data, <span class="keywordtype">unsigned</span> length);
27500449             <span class="keywordtype">bool</span> set_data(FLAC__byte *data, <span class="keywordtype">unsigned</span> length, <span class="keywordtype">bool</span> copy);
27600450         };
27700451 
278<a name="l00456"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html">00456</a>         <span class="keyword">class </span>FLACPP_API SeekTable : <span class="keyword">public</span> Prototype {
27900457         <span class="keyword">public</span>:
28000458             SeekTable();
28100459 
28200461 
283<a name="l00464"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea1">00464</a>             <span class="keyword">inline</span> SeekTable(<span class="keyword">const</span> SeekTable &amp;object): Prototype(object) { }
28400465             <span class="keyword">inline</span> SeekTable(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
28500466             <span class="keyword">inline</span> SeekTable(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
28600468 
287<a name="l00472"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea4">00472</a>             <span class="keyword">inline</span> SeekTable(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
28800473 
28900474             ~SeekTable();
29000475 
29100477 
292<a name="l00478"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea6">00478</a>             <span class="keyword">inline</span> SeekTable &amp;operator=(<span class="keyword">const</span> SeekTable &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
29300479             <span class="keyword">inline</span> SeekTable &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
29400480             <span class="keyword">inline</span> SeekTable &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
29500482 
296<a name="l00486"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea9">00486</a>             <span class="keyword">inline</span> SeekTable &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
29700487 
29800489 
299<a name="l00490"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea10">00490</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> SeekTable &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
30000491             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
30100492             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
30200494 
30300496 
304<a name="l00497"></a><a class="code" href="classFLAC_1_1Metadata_1_1SeekTable.html#FLAC_1_1Metadata_1_1SeekTablea13">00497</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> SeekTable &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
30500498             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
30600499             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
30700501 
30800502             <span class="keywordtype">unsigned</span> get_num_points() <span class="keyword">const</span>;
30900503             ::FLAC__StreamMetadata_SeekPoint get_point(<span class="keywordtype">unsigned</span> index) <span class="keyword">const</span>;
31000504 
31100506             <span class="keywordtype">void</span> set_point(<span class="keywordtype">unsigned</span> index, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> &amp;point);
31200507 
31300509             <span class="keywordtype">bool</span> insert_point(<span class="keywordtype">unsigned</span> index, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__SeekPoint.html">FLAC__StreamMetadata_SeekPoint</a> &amp;point);
31400510 
31500512             <span class="keywordtype">bool</span> delete_point(<span class="keywordtype">unsigned</span> index);
31600513 
31700515             <span class="keywordtype">bool</span> is_legal() <span class="keyword">const</span>;
31800516         };
31900517 
320<a name="l00522"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html">00522</a>         <span class="keyword">class </span>FLACPP_API VorbisComment : <span class="keyword">public</span> Prototype {
32100523         <span class="keyword">public</span>:
322<a name="l00553"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment_1_1Entry.html">00553</a>             <span class="keyword">class </span>FLACPP_API Entry {
32300554             <span class="keyword">public</span>:
32400555                 Entry();
32500556 
32600557                 Entry(<span class="keyword">const</span> <span class="keywordtype">char</span> *field, <span class="keywordtype">unsigned</span> field_length);
32700558                 Entry(<span class="keyword">const</span> <span class="keywordtype">char</span> *field); <span class="comment">// assumes \a field is NUL-terminated</span>
32800559 
32900560                 Entry(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *field_value, <span class="keywordtype">unsigned</span> field_value_length);
33000561                 Entry(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *field_value); <span class="comment">// assumes \a field_value is NUL-terminated</span>
33100562 
33200563                 Entry(<span class="keyword">const</span> Entry &amp;entry);
33300564 
33400565                 Entry &amp;operator=(<span class="keyword">const</span> Entry &amp;entry);
33500566 
33600567                 <span class="keyword">virtual</span> ~Entry();
33700568 
33800569                 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>; 
33900570 
34000571                 <span class="keywordtype">unsigned</span> get_field_length() <span class="keyword">const</span>;
34100572                 <span class="keywordtype">unsigned</span> get_field_name_length() <span class="keyword">const</span>;
34200573                 <span class="keywordtype">unsigned</span> get_field_value_length() <span class="keyword">const</span>;
34300574 
34400575                 ::FLAC__StreamMetadata_VorbisComment_Entry get_entry() <span class="keyword">const</span>;
34500576                 <span class="keyword">const</span> <span class="keywordtype">char</span> *get_field() <span class="keyword">const</span>;
34600577                 <span class="keyword">const</span> <span class="keywordtype">char</span> *get_field_name() <span class="keyword">const</span>;
34700578                 <span class="keyword">const</span> <span class="keywordtype">char</span> *get_field_value() <span class="keyword">const</span>;
34800579 
34900580                 <span class="keywordtype">bool</span> set_field(<span class="keyword">const</span> <span class="keywordtype">char</span> *field, <span class="keywordtype">unsigned</span> field_length);
35000581                 <span class="keywordtype">bool</span> set_field(<span class="keyword">const</span> <span class="keywordtype">char</span> *field); <span class="comment">// assumes \a field is NUL-terminated</span>
35100582                 <span class="keywordtype">bool</span> set_field_name(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_name);
35200583                 <span class="keywordtype">bool</span> set_field_value(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_value, <span class="keywordtype">unsigned</span> field_value_length);
35300584                 <span class="keywordtype">bool</span> set_field_value(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_value); <span class="comment">// assumes \a field_value is NUL-terminated</span>
35400585             <span class="keyword">protected</span>:
35500586                 <span class="keywordtype">bool</span> is_valid_;
35600587                 ::FLAC__StreamMetadata_VorbisComment_Entry entry_;
35700588                 <span class="keywordtype">char</span> *field_name_;
35800589                 <span class="keywordtype">unsigned</span> field_name_length_;
35900590                 <span class="keywordtype">char</span> *field_value_;
36000591                 <span class="keywordtype">unsigned</span> field_value_length_;
36100592             <span class="keyword">private</span>:
36200593                 <span class="keywordtype">void</span> zero();
36300594                 <span class="keywordtype">void</span> clear();
36400595                 <span class="keywordtype">void</span> clear_entry();
36500596                 <span class="keywordtype">void</span> clear_field_name();
36600597                 <span class="keywordtype">void</span> clear_field_value();
36700598                 <span class="keywordtype">void</span> construct(<span class="keyword">const</span> <span class="keywordtype">char</span> *field, <span class="keywordtype">unsigned</span> field_length);
36800599                 <span class="keywordtype">void</span> construct(<span class="keyword">const</span> <span class="keywordtype">char</span> *field); <span class="comment">// assumes \a field is NUL-terminated</span>
36900600                 <span class="keywordtype">void</span> construct(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *field_value, <span class="keywordtype">unsigned</span> field_value_length);
37000601                 <span class="keywordtype">void</span> construct(<span class="keyword">const</span> <span class="keywordtype">char</span> *field_name, <span class="keyword">const</span> <span class="keywordtype">char</span> *field_value); <span class="comment">// assumes \a field_value is NUL-terminated</span>
37100602                 <span class="keywordtype">void</span> compose_field();
37200603                 <span class="keywordtype">void</span> parse_field();
37300604             };
37400605 
37500606             VorbisComment();
37600607 
37700609 
378<a name="l00612"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta1">00612</a>             <span class="keyword">inline</span> VorbisComment(<span class="keyword">const</span> VorbisComment &amp;object): Prototype(object) { }
37900613             <span class="keyword">inline</span> VorbisComment(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
38000614             <span class="keyword">inline</span> VorbisComment(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
38100616 
382<a name="l00620"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta4">00620</a>             <span class="keyword">inline</span> VorbisComment(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
38300621 
38400622             ~VorbisComment();
38500623 
38600625 
387<a name="l00626"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta6">00626</a>             <span class="keyword">inline</span> VorbisComment &amp;operator=(<span class="keyword">const</span> VorbisComment &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
38800627             <span class="keyword">inline</span> VorbisComment &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
38900628             <span class="keyword">inline</span> VorbisComment &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
39000630 
391<a name="l00634"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta9">00634</a>             <span class="keyword">inline</span> VorbisComment &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
39200635 
39300637 
394<a name="l00638"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta10">00638</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> VorbisComment &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
39500639             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
39600640             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
39700642 
39800644 
399<a name="l00645"></a><a class="code" href="classFLAC_1_1Metadata_1_1VorbisComment.html#FLAC_1_1Metadata_1_1VorbisCommenta13">00645</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> VorbisComment &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
40000646             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
40100647             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
40200649 
40300650             <span class="keywordtype">unsigned</span> get_num_comments() <span class="keyword">const</span>;
40400651             <span class="keyword">const</span> FLAC__byte *get_vendor_string() <span class="keyword">const</span>; <span class="comment">// NUL-terminated UTF-8 string</span>
40500652             Entry get_comment(<span class="keywordtype">unsigned</span> index) <span class="keyword">const</span>;
40600653 
40700655             <span class="keywordtype">bool</span> set_vendor_string(<span class="keyword">const</span> FLAC__byte *string); <span class="comment">// NUL-terminated UTF-8 string</span>
40800656 
40900658             <span class="keywordtype">bool</span> set_comment(<span class="keywordtype">unsigned</span> index, <span class="keyword">const</span> Entry &amp;entry);
41000659 
41100661             <span class="keywordtype">bool</span> insert_comment(<span class="keywordtype">unsigned</span> index, <span class="keyword">const</span> Entry &amp;entry);
41200662 
41300664             <span class="keywordtype">bool</span> append_comment(<span class="keyword">const</span> Entry &amp;entry);
41400665 
41500667             <span class="keywordtype">bool</span> delete_comment(<span class="keywordtype">unsigned</span> index);
41600668         };
41700669 
418<a name="l00674"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html">00674</a>         <span class="keyword">class </span>FLACPP_API CueSheet : <span class="keyword">public</span> Prototype {
41900675         <span class="keyword">public</span>:
420<a name="l00682"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet_1_1Track.html">00682</a>             <span class="keyword">class </span>FLACPP_API Track {
42100683             <span class="keyword">protected</span>:
42200684                 ::FLAC__StreamMetadata_CueSheet_Track *object_;
42300685             <span class="keyword">public</span>:
42400686                 Track();
42500687                 Track(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__CueSheet__Track.html">FLAC__StreamMetadata_CueSheet_Track</a> *track);
42600688                 Track(<span class="keyword">const</span> Track &amp;track);
42700689                 Track &amp;operator=(<span class="keyword">const</span> Track &amp;track);
42800690 
42900691                 <span class="keyword">virtual</span> ~Track();
43000692 
43100693                 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>; 
43200694 
43300695 
43400696                 <span class="keyword">inline</span> FLAC__uint64 get_offset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;offset; }
43500697                 <span class="keyword">inline</span> FLAC__byte get_number()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;number; }
43600698                 <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *get_isrc()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;isrc; }
43700699                 <span class="keyword">inline</span> <span class="keywordtype">unsigned</span> get_type()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;type; }
43800700                 <span class="keyword">inline</span> <span class="keywordtype">bool</span> get_pre_emphasis()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;pre_emphasis; }
43900701 
44000702                 <span class="keyword">inline</span> FLAC__byte get_num_indices()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_-&gt;num_indices; }
44100703                 ::FLAC__StreamMetadata_CueSheet_Index get_index(<span class="keywordtype">unsigned</span> i) <span class="keyword">const</span>;
44200704 
44300705                 <span class="keyword">inline</span> const ::FLAC__StreamMetadata_CueSheet_Track *get_track()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> object_; }
44400706 
44500707                 <span class="keyword">inline</span> <span class="keywordtype">void</span> set_offset(FLAC__uint64 value) { object_-&gt;offset = value; }
44600708                 <span class="keyword">inline</span> <span class="keywordtype">void</span> set_number(FLAC__byte value) { object_-&gt;number = value; }
44700709                 <span class="keywordtype">void</span> set_isrc(<span class="keyword">const</span> <span class="keywordtype">char</span> value[12]);
44800710                 <span class="keywordtype">void</span> set_type(<span class="keywordtype">unsigned</span> value);
44900711                 <span class="keyword">inline</span> <span class="keywordtype">void</span> set_pre_emphasis(<span class="keywordtype">bool</span> value) { object_-&gt;pre_emphasis = value? 1 : 0; }
45000712 
45100713                 <span class="keywordtype">void</span> set_index(<span class="keywordtype">unsigned</span> i, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> &amp;index);
45200714                 <span class="comment">//@@@ It's awkward but to insert/delete index points</span>
45300715                 <span class="comment">//@@@ you must use the routines in the CueSheet class.</span>
45400716             };
45500717 
45600718             CueSheet();
45700719 
45800721 
459<a name="l00724"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta1">00724</a>             <span class="keyword">inline</span> CueSheet(<span class="keyword">const</span> CueSheet &amp;object): Prototype(object) { }
46000725             <span class="keyword">inline</span> CueSheet(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
46100726             <span class="keyword">inline</span> CueSheet(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
46200728 
463<a name="l00732"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta4">00732</a>             <span class="keyword">inline</span> CueSheet(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
46400733 
46500734             ~CueSheet();
46600735 
46700737 
468<a name="l00738"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta6">00738</a>             <span class="keyword">inline</span> CueSheet &amp;operator=(<span class="keyword">const</span> CueSheet &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
46900739             <span class="keyword">inline</span> CueSheet &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
47000740             <span class="keyword">inline</span> CueSheet &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
47100742 
472<a name="l00746"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta9">00746</a>             <span class="keyword">inline</span> CueSheet &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
47300747 
47400749 
475<a name="l00750"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta10">00750</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> CueSheet &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
47600751             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
47700752             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
47800754 
47900756 
480<a name="l00757"></a><a class="code" href="classFLAC_1_1Metadata_1_1CueSheet.html#FLAC_1_1Metadata_1_1CueSheeta13">00757</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> CueSheet &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
48100758             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
48200759             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
48300761 
48400762             <span class="keyword">const</span> <span class="keywordtype">char</span> *get_media_catalog_number() <span class="keyword">const</span>;
48500763             FLAC__uint64 get_lead_in() <span class="keyword">const</span>;
48600764             <span class="keywordtype">bool</span> get_is_cd() <span class="keyword">const</span>;
48700765 
48800766             <span class="keywordtype">unsigned</span> get_num_tracks() <span class="keyword">const</span>;
48900767             Track get_track(<span class="keywordtype">unsigned</span> i) <span class="keyword">const</span>;
49000768 
49100769             <span class="keywordtype">void</span> set_media_catalog_number(<span class="keyword">const</span> <span class="keywordtype">char</span> value[128]);
49200770             <span class="keywordtype">void</span> set_lead_in(FLAC__uint64 value);
49300771             <span class="keywordtype">void</span> set_is_cd(<span class="keywordtype">bool</span> value);
49400772 
49500773             <span class="keywordtype">void</span> set_index(<span class="keywordtype">unsigned</span> track_num, <span class="keywordtype">unsigned</span> index_num, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> &amp;index);
49600774 
49700776             <span class="keywordtype">bool</span> insert_index(<span class="keywordtype">unsigned</span> track_num, <span class="keywordtype">unsigned</span> index_num, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata__CueSheet__Index.html">FLAC__StreamMetadata_CueSheet_Index</a> &amp;index);
49800777 
49900779             <span class="keywordtype">bool</span> delete_index(<span class="keywordtype">unsigned</span> track_num, <span class="keywordtype">unsigned</span> index_num);
50000780 
50100782             <span class="keywordtype">bool</span> set_track(<span class="keywordtype">unsigned</span> i, <span class="keyword">const</span> Track &amp;track);
50200783 
50300785             <span class="keywordtype">bool</span> insert_track(<span class="keywordtype">unsigned</span> i, <span class="keyword">const</span> Track &amp;track);
50400786 
50500788             <span class="keywordtype">bool</span> delete_track(<span class="keywordtype">unsigned</span> i);
50600789 
50700791             <span class="keywordtype">bool</span> is_legal(<span class="keywordtype">bool</span> check_cd_da_subset = <span class="keyword">false</span>, <span class="keyword">const</span> <span class="keywordtype">char</span> **violation = 0) <span class="keyword">const</span>;
50800792 
50900794             FLAC__uint32 calculate_cddb_id() <span class="keyword">const</span>;
51000795         };
51100796 
512<a name="l00801"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html">00801</a>         <span class="keyword">class </span>FLACPP_API Picture : <span class="keyword">public</span> Prototype {
51300802         <span class="keyword">public</span>:
51400803             Picture();
51500804 
51600806 
517<a name="l00809"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea1">00809</a>             <span class="keyword">inline</span> Picture(<span class="keyword">const</span> Picture &amp;object): Prototype(object) { }
51800810             <span class="keyword">inline</span> Picture(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
51900811             <span class="keyword">inline</span> Picture(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
52000813 
521<a name="l00817"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea4">00817</a>             <span class="keyword">inline</span> Picture(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
52200818 
52300819             ~Picture();
52400820 
52500822 
526<a name="l00823"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea6">00823</a>             <span class="keyword">inline</span> Picture &amp;operator=(<span class="keyword">const</span> Picture &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
52700824             <span class="keyword">inline</span> Picture &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
52800825             <span class="keyword">inline</span> Picture &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
52900827 
530<a name="l00831"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea9">00831</a>             <span class="keyword">inline</span> Picture &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
53100832 
53200834 
533<a name="l00835"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea10">00835</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Picture &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
53400836             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
53500837             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
53600839 
53700841 
538<a name="l00842"></a><a class="code" href="classFLAC_1_1Metadata_1_1Picture.html#FLAC_1_1Metadata_1_1Picturea13">00842</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> Picture &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
53900843             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
54000844             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
54100846 <a class="code" href="group__flac__format.html#ga114"></a>
54200847 <a class="code" href="group__flac__format.html#ga114">			::FLAC__StreamMetadata_Picture_Type</a> get_type() <span class="keyword">const</span>;
54300848             <span class="keyword">const</span> <span class="keywordtype">char</span> *get_mime_type() <span class="keyword">const</span>; <span class="comment">// NUL-terminated printable ASCII string</span>
54400849             <span class="keyword">const</span> FLAC__byte *get_description() <span class="keyword">const</span>; <span class="comment">// NUL-terminated UTF-8 string</span>
54500850             FLAC__uint32 get_width() <span class="keyword">const</span>;
54600851             FLAC__uint32 get_height() <span class="keyword">const</span>;
54700852             FLAC__uint32 get_depth() <span class="keyword">const</span>;
54800853             FLAC__uint32 get_colors() <span class="keyword">const</span>; 
54900854             FLAC__uint32 get_data_length() <span class="keyword">const</span>;
55000855             <span class="keyword">const</span> FLAC__byte *get_data() <span class="keyword">const</span>;
55100856 
55200857             <span class="keywordtype">void</span> set_type(::<a class="code" href="group__flac__format.html#ga114">FLAC__StreamMetadata_Picture_Type</a> type);
55300858 
55400860             <span class="keywordtype">bool</span> set_mime_type(<span class="keyword">const</span> <span class="keywordtype">char</span> *string); <span class="comment">// NUL-terminated printable ASCII string</span>
55500861 
55600863             <span class="keywordtype">bool</span> set_description(<span class="keyword">const</span> FLAC__byte *string); <span class="comment">// NUL-terminated UTF-8 string</span>
55700864 
55800865             <span class="keywordtype">void</span> set_width(FLAC__uint32 value) <span class="keyword">const</span>;
55900866             <span class="keywordtype">void</span> set_height(FLAC__uint32 value) <span class="keyword">const</span>;
56000867             <span class="keywordtype">void</span> set_depth(FLAC__uint32 value) <span class="keyword">const</span>;
56100868             <span class="keywordtype">void</span> set_colors(FLAC__uint32 value) <span class="keyword">const</span>; 
56200869 
56300871             <span class="keywordtype">bool</span> set_data(<span class="keyword">const</span> FLAC__byte *data, FLAC__uint32 data_length);
56400872         };
56500873 
566<a name="l00880"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html">00880</a>         <span class="keyword">class </span>FLACPP_API Unknown : <span class="keyword">public</span> Prototype {
56700881         <span class="keyword">public</span>:
56800882             Unknown();
56900883             <span class="comment">//</span>
57000885 <span class="comment"></span>
571<a name="l00888"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna1">00888</a>             <span class="keyword">inline</span> Unknown(<span class="keyword">const</span> Unknown &amp;object): Prototype(object) { }
57200889             <span class="keyword">inline</span> Unknown(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object): Prototype(object) { }
57300890             <span class="keyword">inline</span> Unknown(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object): Prototype(object) { }
57400892 
575<a name="l00896"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna4">00896</a>             <span class="keyword">inline</span> Unknown(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy): Prototype(object, copy) { }
57600897 
57700898             ~Unknown();
57800899 
57900901 
580<a name="l00902"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna6">00902</a>             <span class="keyword">inline</span> Unknown &amp;operator=(<span class="keyword">const</span> Unknown &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
58100903             <span class="keyword">inline</span> Unknown &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
58200904             <span class="keyword">inline</span> Unknown &amp;operator=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1Prototypeb4">Prototype::operator=</a>(object); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
58300906 
584<a name="l00910"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna9">00910</a>             <span class="keyword">inline</span> Unknown &amp;assign(::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object, <span class="keywordtype">bool</span> copy) { <a class="code" href="classFLAC_1_1Metadata_1_1Prototype.html#FLAC_1_1Metadata_1_1VorbisCommentb0">Prototype::assign_object</a>(object, copy); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
58500911 
58600913 
587<a name="l00914"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna10">00914</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Unknown &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
58800915             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
58900916             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga1">Prototype::operator==</a>(object); }
59000918 
59100920 
592<a name="l00921"></a><a class="code" href="classFLAC_1_1Metadata_1_1Unknown.html#FLAC_1_1Metadata_1_1Unknowna13">00921</a>             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> Unknown &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
59300922             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> &amp;object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
59400923             <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *object)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__flacpp__metadata__object.html#ga4">Prototype::operator!=</a>(object); }
59500925 
59600926             <span class="keyword">const</span> FLAC__byte *get_data() <span class="keyword">const</span>;
59700927 
59800929             <span class="keywordtype">bool</span> set_data(<span class="keyword">const</span> FLAC__byte *data, <span class="keywordtype">unsigned</span> length);
59900930             <span class="keywordtype">bool</span> set_data(FLAC__byte *data, <span class="keywordtype">unsigned</span> length, <span class="keywordtype">bool</span> copy);
60000931         };
60100932 
60200933         <span class="comment">/* \} */</span>
60300934 
60400935 
60500948         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga0">get_streaminfo</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, StreamInfo &amp;streaminfo); 
60600949 
60700950         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga1">get_tags</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, VorbisComment *&amp;tags); 
60800951         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga1">get_tags</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, VorbisComment &amp;tags); 
60900952 
61000953         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga3">get_cuesheet</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, CueSheet *&amp;cuesheet); 
61100954         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga3">get_cuesheet</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, CueSheet &amp;cuesheet); 
61200955 
61300956         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga5">get_picture</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, Picture *&amp;picture, ::<a class="code" href="group__flac__format.html#ga114">FLAC__StreamMetadata_Picture_Type</a> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *mime_type, <span class="keyword">const</span> FLAC__byte *description, <span class="keywordtype">unsigned</span> max_width, <span class="keywordtype">unsigned</span> max_height, <span class="keywordtype">unsigned</span> max_depth, <span class="keywordtype">unsigned</span> max_colors); 
61400957         FLACPP_API <span class="keywordtype">bool</span> <a class="code" href="group__flacpp__metadata__level0.html#ga5">get_picture</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, Picture &amp;picture, ::<a class="code" href="group__flac__format.html#ga114">FLAC__StreamMetadata_Picture_Type</a> type, <span class="keyword">const</span> <span class="keywordtype">char</span> *mime_type, <span class="keyword">const</span> FLAC__byte *description, <span class="keywordtype">unsigned</span> max_width, <span class="keywordtype">unsigned</span> max_height, <span class="keywordtype">unsigned</span> max_depth, <span class="keywordtype">unsigned</span> max_colors); 
61500958 
61600959         <span class="comment">/* \} */</span>
61700960 
61800961 
619<a name="l00996"></a><a class="code" href="classFLAC_1_1Metadata_1_1SimpleIterator.html">00996</a>         <span class="keyword">class </span>FLACPP_API SimpleIterator {
62000997         <span class="keyword">public</span>:
621<a name="l01000"></a><a class="code" href="classFLAC_1_1Metadata_1_1SimpleIterator_1_1Status.html">01000</a>             <span class="keyword">class </span>FLACPP_API Status {
62201001             <span class="keyword">public</span>:
62301002                 <span class="keyword">inline</span> Status(::<a class="code" href="group__flac__metadata__level1.html#ga18">FLAC__Metadata_SimpleIteratorStatus</a> status): status_(status) { }
62401003                 <span class="keyword">inline</span> <a class="code" href="group__flac__metadata__level1.html#ga18">operator ::FLAC__Metadata_SimpleIteratorStatus</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> status_; }
62501004                 <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *as_cstring()<span class="keyword"> const </span>{ <a class="code" href="group__flac__metadata__level1.html#ga1">return ::FLAC__Metadata_SimpleIteratorStatusString</a>[status_]; }
62601005             <span class="keyword">protected</span>:<a class="code" href="group__flac__metadata__level1.html#ga18"></a>
62701006 <a class="code" href="group__flac__metadata__level1.html#ga18">				::FLAC__Metadata_SimpleIteratorStatus</a> status_;
62801007             };
62901008 
63001009             SimpleIterator();
63101010             <span class="keyword">virtual</span> ~SimpleIterator();
63201011 
63301012             <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>; 
63401013 
63501014             <span class="keywordtype">bool</span> init(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">bool</span> read_only, <span class="keywordtype">bool</span> preserve_file_stats); 
63601015 
63701016             Status status();                                                    
63801017             <span class="keywordtype">bool</span> is_writable() <span class="keyword">const</span>;                                           
63901018 
64001019             <span class="keywordtype">bool</span> next();                                                        
64101020             <span class="keywordtype">bool</span> prev();                                                        
64201021             <span class="keywordtype">bool</span> is_last() <span class="keyword">const</span>;                                               
64301022 
64401023             off_t get_block_offset() <span class="keyword">const</span>;                                     
64501024 <a class="code" href="group__flac__format.html#ga113">			::FLAC__MetadataType</a> get_block_type() <span class="keyword">const</span>;                        
64601025             <span class="keywordtype">unsigned</span> get_block_length() <span class="keyword">const</span>;                                  
64701026             <span class="keywordtype">bool</span> get_application_id(FLAC__byte *<span class="keywordtype">id</span>);                            
64801027             Prototype *get_block();                                             
64901028             <span class="keywordtype">bool</span> set_block(Prototype *block, <span class="keywordtype">bool</span> use_padding = <span class="keyword">true</span>);          
65001029             <span class="keywordtype">bool</span> insert_block_after(Prototype *block, <span class="keywordtype">bool</span> use_padding = <span class="keyword">true</span>); 
65101030             <span class="keywordtype">bool</span> delete_block(<span class="keywordtype">bool</span> use_padding = <span class="keyword">true</span>);                         
65201031 
65301032         <span class="keyword">protected</span>:<a class="code" href="group__flac__metadata__level1.html#ga0"></a>
65401033 <a class="code" href="group__flac__metadata__level1.html#ga0">			::FLAC__Metadata_SimpleIterator</a> *iterator_;
65501034             <span class="keywordtype">void</span> clear();
65601035         };
65701036 
65801037         <span class="comment">/* \} */</span>
65901038 
66001039 
661<a name="l01082"></a><a class="code" href="classFLAC_1_1Metadata_1_1Chain.html">01082</a>         <span class="keyword">class </span>FLACPP_API Chain {
66201083         <span class="keyword">public</span>:
663<a name="l01086"></a><a class="code" href="classFLAC_1_1Metadata_1_1Chain_1_1Status.html">01086</a>             <span class="keyword">class </span>FLACPP_API Status {
66401087             <span class="keyword">public</span>:
66501088                 <span class="keyword">inline</span> Status(::<a class="code" href="group__flac__metadata__level2.html#ga27">FLAC__Metadata_ChainStatus</a> status): status_(status) { }
66601089                 <span class="keyword">inline</span> <a class="code" href="group__flac__metadata__level2.html#ga27">operator ::FLAC__Metadata_ChainStatus</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> status_; }
66701090                 <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *as_cstring()<span class="keyword"> const </span>{ <a class="code" href="group__flac__metadata__level2.html#ga2">return ::FLAC__Metadata_ChainStatusString</a>[status_]; }
66801091             <span class="keyword">protected</span>:<a class="code" href="group__flac__metadata__level2.html#ga27"></a>
66901092 <a class="code" href="group__flac__metadata__level2.html#ga27">				::FLAC__Metadata_ChainStatus</a> status_;
67001093             };
67101094 
67201095             Chain();
67301096             <span class="keyword">virtual</span> ~Chain();
67401097 
67501098             <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classFLAC_1_1Metadata_1_1Iterator.html">Iterator</a>;
67601099 
67701100             <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>; 
67801101 
67901102             Status status();                                                
68001103 
68101104             <span class="keywordtype">bool</span> read(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">bool</span> is_ogg = <span class="keyword">false</span>);                                
68201105             <span class="keywordtype">bool</span> read(<a class="code" href="group__flac__callbacks.html#ga0">FLAC__IOHandle</a> handle, <a class="code" href="structFLAC____IOCallbacks.html">FLAC__IOCallbacks</a> callbacks, <span class="keywordtype">bool</span> is_ogg = <span class="keyword">false</span>);  
68301106 
68401107             <span class="keywordtype">bool</span> check_if_tempfile_needed(<span class="keywordtype">bool</span> use_padding);                
68501108 
68601109             <span class="keywordtype">bool</span> write(<span class="keywordtype">bool</span> use_padding = <span class="keyword">true</span>, <span class="keywordtype">bool</span> preserve_file_stats = <span class="keyword">false</span>); 
68701110             <span class="keywordtype">bool</span> write(<span class="keywordtype">bool</span> use_padding, ::<a class="code" href="group__flac__callbacks.html#ga0">FLAC__IOHandle</a> handle, ::<a class="code" href="structFLAC____IOCallbacks.html">FLAC__IOCallbacks</a> callbacks); 
68801111             <span class="keywordtype">bool</span> write(<span class="keywordtype">bool</span> use_padding, ::<a class="code" href="group__flac__callbacks.html#ga0">FLAC__IOHandle</a> handle, ::<a class="code" href="structFLAC____IOCallbacks.html">FLAC__IOCallbacks</a> callbacks, ::<a class="code" href="group__flac__callbacks.html#ga0">FLAC__IOHandle</a> temp_handle, ::<a class="code" href="structFLAC____IOCallbacks.html">FLAC__IOCallbacks</a> temp_callbacks); 
68901112 
69001113             <span class="keywordtype">void</span> merge_padding();                                           
69101114             <span class="keywordtype">void</span> sort_padding();                                            
69201115 
69301116         <span class="keyword">protected</span>:<a class="code" href="group__flac__metadata__level2.html#ga0"></a>
69401117 <a class="code" href="group__flac__metadata__level2.html#ga0">			::FLAC__Metadata_Chain</a> *chain_;
69501118             <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
69601119         };
69701120 
698<a name="l01126"></a><a class="code" href="classFLAC_1_1Metadata_1_1Iterator.html">01126</a>         <span class="keyword">class </span>FLACPP_API Iterator {
69901127         <span class="keyword">public</span>:
70001128             Iterator();
70101129             <span class="keyword">virtual</span> ~Iterator();
70201130 
70301131             <span class="keywordtype">bool</span> is_valid() <span class="keyword">const</span>; 
70401132 
70501133 
70601134             <span class="keywordtype">void</span> init(Chain &amp;chain);                       
70701135 
70801136             <span class="keywordtype">bool</span> next();                                   
70901137             <span class="keywordtype">bool</span> prev();                                   
71001138 <a class="code" href="group__flac__format.html#ga113"></a>
71101139 <a class="code" href="group__flac__format.html#ga113">			::FLAC__MetadataType</a> get_block_type() <span class="keyword">const</span>;   
71201140             Prototype *get_block();                        
71301141             <span class="keywordtype">bool</span> set_block(Prototype *block);              
71401142             <span class="keywordtype">bool</span> delete_block(<span class="keywordtype">bool</span> replace_with_padding);  
71501143             <span class="keywordtype">bool</span> insert_block_before(Prototype *block);    
71601144             <span class="keywordtype">bool</span> insert_block_after(Prototype *block);     
71701145 
71801146         <span class="keyword">protected</span>:<a class="code" href="group__flac__metadata__level2.html#ga1"></a>
71901147 <a class="code" href="group__flac__metadata__level2.html#ga1">			::FLAC__Metadata_Iterator</a> *iterator_;
72001148             <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear();
72101149         };
72201150 
72301151         <span class="comment">/* \} */</span>
72401152 
72501153     }
72601154 }
72701155 
72801156 <span class="preprocessor">#endif</span>
729</pre></div>
730<hr size="1">
731<div class="copyright">
732	<!-- @@@ oh so hacky -->
733	<table>
734		<tr>
735			<td align="left">
736				Copyright (c) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
737			</td>
738			<td width="1%" align="right">
739				<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=13478&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
740			</td>
741		</tr>
742	</table>
743</div>
744<!-- Copyright (c)  2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson -->
745<!-- Permission is granted to copy, distribute and/or modify this document -->
746<!-- under the terms of the GNU Free Documentation License, Version 1.1 -->
747<!-- or any later version published by the Free Software Foundation; -->
748<!-- with no invariant sections. -->
749<!-- A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html -->
750</body>
751</html>
752