Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > contrib > by-pkgid > 2c9d30f3cf217a6cae41860ebc0d6704 > files > 108

libid3lib3.8_0-devel-3.8.0-0.pre2.1.1mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>src/frame.cpp Source File</title>
<link href="id3lib.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.12 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>src/frame.cpp</h1><a href="frame_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// $Id: frame.cpp,v 1.32 2000/10/24 07:00:08 eldamitri Exp $</font>
00002 
00003 <font class="comment">// id3lib: a C++ library for creating and manipulating id3v1/v2 tags</font>
00004 <font class="comment">// Copyright 1999, 2000  Scott Thomas Haug</font>
00005 
00006 <font class="comment">// This library is free software; you can redistribute it and/or modify it</font>
00007 <font class="comment">// under the terms of the GNU Library General Public License as published by</font>
00008 <font class="comment">// the Free Software Foundation; either version 2 of the License, or (at your</font>
00009 <font class="comment">// option) any later version.</font>
00010 <font class="comment">//</font>
00011 <font class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</font>
00012 <font class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</font>
00013 <font class="comment">// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public</font>
00014 <font class="comment">// License for more details.</font>
00015 <font class="comment">//</font>
00016 <font class="comment">// You should have received a copy of the GNU Library General Public License</font>
00017 <font class="comment">// along with this library; if not, write to the Free Software Foundation,</font>
00018 <font class="comment">// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font>
00019 
00020 <font class="comment">// The id3lib authors encourage improvements and optimisations to be sent to</font>
00021 <font class="comment">// the id3lib coordinator.  Please see the README file for details on where to</font>
00022 <font class="comment">// send such submissions.  See the AUTHORS file for a list of people who have</font>
00023 <font class="comment">// contributed to id3lib.  See the ChangeLog file for a list of changes to</font>
00024 <font class="comment">// id3lib.  These files are distributed with id3lib at</font>
00025 <font class="comment">// http://download.sourceforge.net/id3lib/</font>
00026 
00027 <font class="preprocessor">#if defined HAVE_CONFIG_H</font>
00028 <font class="preprocessor"></font><font class="preprocessor">#include &lt;config.h&gt;</font>
00029 <font class="preprocessor">#endif</font>
00030 <font class="preprocessor"></font>
00031 <font class="preprocessor">#include "<a class="code" href="frame_8h.html">frame.h</a>"</font>
00032 <font class="preprocessor">#include "<a class="code" href="readers_8h.html">readers.h</a>"</font>
00033 <font class="preprocessor">#include "<a class="code" href="frame__impl_8h.html">frame_impl.h</a>"</font>
00034 
<a name="l00061"></a><a class="code" href="class_i_d3___frame.html#a0">00061</a> <a class="code" href="class_i_d3___frame.html#a0">ID3_Frame::ID3_Frame</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id)
00062   : _impl(new <a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>(id))
00063 {
00064 }
00065 
<a name="l00066"></a><a class="code" href="class_i_d3___frame.html#a1">00066</a> <a class="code" href="class_i_d3___frame.html#a0">ID3_Frame::ID3_Frame</a>(<font class="keyword">const</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a>&amp; frame)
00067   : _impl(new <a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>(frame))
00068 {
00069 }
00070 
<a name="l00071"></a><a class="code" href="class_i_d3___frame.html#a2">00071</a> <a class="code" href="class_i_d3___frame.html#a2">ID3_Frame::~ID3_Frame</a>()
00072 {
00073   <font class="keyword">delete</font> _impl;
00074 }
00075 
<a name="l00081"></a><a class="code" href="class_i_d3___frame.html#a3">00081</a> <font class="keywordtype">void</font> <a class="code" href="class_i_d3___frame.html#a3">ID3_Frame::Clear</a>()
00082 {
00083   _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a4">Clear</a>();
00084 }
00085 
<a name="l00093"></a><a class="code" href="class_i_d3___frame.html#a5">00093</a> <a class="code" href="globals_8h.html#a219">ID3_FrameID</a> <a class="code" href="class_i_d3___frame.html#a5">ID3_Frame::GetID</a>()<font class="keyword"> const</font>
00094 <font class="keyword"></font>{
00095   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a6">GetID</a>();
00096 }
00097 
<a name="l00115"></a><a class="code" href="class_i_d3___frame.html#a4">00115</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a4">ID3_Frame::SetID</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id)
00116 {
00117   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a5">SetID</a>(id);
00118 }
00119 
<a name="l00120"></a><a class="code" href="class_i_d3___frame.html#a16">00120</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a16">ID3_Frame::SetSpec</a>(<a class="code" href="globals_8h.html#a216">ID3_V2Spec</a> spec)
00121 {
00122   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a17">SetSpec</a>(spec);
00123 }
00124 
<a name="l00125"></a><a class="code" href="class_i_d3___frame.html#a17">00125</a> <a class="code" href="globals_8h.html#a216">ID3_V2Spec</a> <a class="code" href="class_i_d3___frame.html#a17">ID3_Frame::GetSpec</a>()<font class="keyword"> const</font>
00126 <font class="keyword"></font>{
00127   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a18">GetSpec</a>();
00128 }
00129 
<a name="l00141"></a><a class="code" href="class_i_d3___frame.html#a27">00141</a> <a class="code" href="class_i_d3___field.html">ID3_Field</a>&amp; <a class="code" href="class_i_d3___frame.html#a27">ID3_Frame::Field</a>(<a class="code" href="globals_8h.html#a218">ID3_FieldID</a> fieldName)<font class="keyword"> const</font>
00142 <font class="keyword"></font>{
00143   <font class="keywordflow">return</font> *this-&gt;<a class="code" href="class_i_d3___frame.html#a6">GetField</a>(fieldName);
00144 }
00145 
<a name="l00146"></a><a class="code" href="class_i_d3___frame.html#a6">00146</a> <a class="code" href="class_i_d3___field.html">ID3_Field</a>* <a class="code" href="class_i_d3___frame.html#a6">ID3_Frame::GetField</a>(<a class="code" href="globals_8h.html#a218">ID3_FieldID</a> fieldName)<font class="keyword"> const</font>
00147 <font class="keyword"></font>{
00148   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a7">GetField</a>(fieldName);
00149 }
00150 
<a name="l00151"></a><a class="code" href="class_i_d3___frame.html#a7">00151</a> size_t <a class="code" href="class_i_d3___frame.html#a7">ID3_Frame::NumFields</a>()<font class="keyword"> const</font>
00152 <font class="keyword"></font>{
00153   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a8">NumFields</a>();
00154 }
00155 
00156 <font class="comment">/*</font>
00157 <font class="comment">ID3_Field* ID3_Frame::GetFieldNum(index_t index) const</font>
00158 <font class="comment">{</font>
00159 <font class="comment">  return _impl-&gt;GetFieldNum(index);</font>
00160 <font class="comment">}</font>
00161 <font class="comment">*/</font>
00162 
<a name="l00163"></a><a class="code" href="class_i_d3___frame.html#a14">00163</a> size_t <a class="code" href="class_i_d3___frame.html#a14">ID3_Frame::Size</a>()
00164 {
00165   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a15">Size</a>();
00166 }
00167 
00168 
<a name="l00169"></a><a class="code" href="class_i_d3___frame.html#a11">00169</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a11">ID3_Frame::HasChanged</a>()<font class="keyword"> const</font>
00170 <font class="keyword"></font>{
00171   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a12">HasChanged</a>();
00172 }
00173 
<a name="l00174"></a><a class="code" href="class_i_d3___frame.html#a10">00174</a> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a>&amp; <a class="code" href="class_i_d3___frame.html#a10">ID3_Frame::operator=</a>( <font class="keyword">const</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a> &amp;rFrame )
00175 {
00176   <font class="keywordflow">if</font> (<font class="keyword">this</font> != &amp;rFrame)
00177   {
00178     *_impl = rFrame;
00179   }
00180   <font class="keywordflow">return</font> *<font class="keyword">this</font>;
00181 }
00182 
<a name="l00183"></a><a class="code" href="class_i_d3___frame.html#d0">00183</a> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame.html#a8">ID3_Frame::GetDescription</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id)
00184 {
00185   <font class="keywordflow">return</font> <a class="code" href="class_i_d3___frame_impl.html#a9">ID3_FrameImpl::GetDescription</a>(id);
00186 }
00187 
<a name="l00188"></a><a class="code" href="class_i_d3___frame.html#a8">00188</a> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame.html#a8">ID3_Frame::GetDescription</a>()<font class="keyword"> const</font>
00189 <font class="keyword"></font>{
00190   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a9">GetDescription</a>();
00191 }
00192 
<a name="l00193"></a><a class="code" href="class_i_d3___frame.html#a9">00193</a> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame.html#a9">ID3_Frame::GetTextID</a>()<font class="keyword"> const</font>
00194 <font class="keyword"></font>{
00195   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a10">GetTextID</a>();
00196 }
00197 
<a name="l00198"></a><a class="code" href="class_i_d3___frame.html#a12">00198</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a12">ID3_Frame::Parse</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp; reader) 
00199 {
00200   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a13">Parse</a>(reader);
00201 }
00202 
<a name="l00203"></a><a class="code" href="class_i_d3___frame.html#a13">00203</a> <font class="keywordtype">void</font> <a class="code" href="class_i_d3___frame.html#a13">ID3_Frame::Render</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp; writer)<font class="keyword"> const</font>
00204 <font class="keyword"></font>{
00205   _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a14">Render</a>(writer);
00206 }
00207 
<a name="l00208"></a><a class="code" href="class_i_d3___frame.html#a15">00208</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a15">ID3_Frame::Contains</a>(<a class="code" href="globals_8h.html#a218">ID3_FieldID</a> id)<font class="keyword"> const</font>
00209 <font class="keyword"></font>{
00210   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a16">Contains</a>(id);
00211 }
00212 
<a name="l00218"></a><a class="code" href="class_i_d3___frame.html#a18">00218</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a18">ID3_Frame::SetCompression</a>(<font class="keywordtype">bool</font> b)
00219 {
00220   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a19">SetCompression</a>(b);
00221 }
00222 
<a name="l00231"></a><a class="code" href="class_i_d3___frame.html#a19">00231</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a19">ID3_Frame::GetCompression</a>()<font class="keyword"> const</font>
00232 <font class="keyword"></font>{
00233   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a20">GetCompression</a>();
00234 }
00235 
<a name="l00236"></a><a class="code" href="class_i_d3___frame.html#a20">00236</a> size_t <a class="code" href="class_i_d3___frame.html#a20">ID3_Frame::GetDataSize</a>()<font class="keyword"> const</font>
00237 <font class="keyword"></font>{
00238   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a21">GetDataSize</a>();
00239 }
00240 
<a name="l00241"></a><a class="code" href="class_i_d3___frame.html#a21">00241</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a21">ID3_Frame::SetEncryptionID</a>(<a class="code" href="globals_8h.html#a33">uchar</a> id)
00242 {
00243   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a22">SetEncryptionID</a>(id);
00244 }
00245 
<a name="l00246"></a><a class="code" href="class_i_d3___frame.html#a22">00246</a> <a class="code" href="globals_8h.html#a33">uchar</a> <a class="code" href="class_i_d3___frame.html#a22">ID3_Frame::GetEncryptionID</a>()<font class="keyword"> const</font>
00247 <font class="keyword"></font>{
00248   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a23">GetEncryptionID</a>();
00249 }
00250 
<a name="l00251"></a><a class="code" href="class_i_d3___frame.html#a23">00251</a> <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame.html#a23">ID3_Frame::SetGroupingID</a>(<a class="code" href="globals_8h.html#a33">uchar</a> id)
00252 {
00253   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a24">SetGroupingID</a>(id);
00254 }
00255 
<a name="l00256"></a><a class="code" href="class_i_d3___frame.html#a24">00256</a> <a class="code" href="globals_8h.html#a33">uchar</a> <a class="code" href="class_i_d3___frame.html#a24">ID3_Frame::GetGroupingID</a>()<font class="keyword"> const</font>
00257 <font class="keyword"></font>{
00258   <font class="keywordflow">return</font> _impl-&gt;<a class="code" href="class_i_d3___frame_impl.html#a25">GetGroupingID</a>();
00259 }
00260 
00261 <font class="keyword">namespace</font>
00262 <font class="keyword"></font>{
00263   <font class="keyword">class </font>IteratorImpl : <font class="keyword">public</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a>::Iterator
00264   {
00265     <a class="code" href="class_i_d3___frame_impl.html#s0">ID3_FrameImpl::iterator</a> _cur;
00266     <a class="code" href="class_i_d3___frame_impl.html#s0">ID3_FrameImpl::iterator</a> _end;
00267   <font class="keyword">public</font>:
00268     IteratorImpl(<a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>&amp; frame)
00269       : _cur(frame.begin()), _end(frame.end())
00270     {
00271     }
00272 
00273     <a class="code" href="class_i_d3___field.html">ID3_Field</a>* GetNext() 
00274     { 
00275       <a class="code" href="class_i_d3___field.html">ID3_Field</a>* next = <a class="code" href="globals_8h.html#a24">NULL</a>;
00276       <font class="keywordflow">while</font> (next == NULL &amp;&amp; _cur != _end)
00277       {
00278         next = *_cur;
00279         ++_cur;
00280       }
00281       <font class="keywordflow">return</font> next;
00282     }
00283   };
00284 
00285   
00286   <font class="keyword">class </font>ConstIteratorImpl : <font class="keyword">public</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a>::ConstIterator
00287   {
00288     <a class="code" href="class_i_d3___frame_impl.html#s1">ID3_FrameImpl::const_iterator</a> _cur;
00289     <a class="code" href="class_i_d3___frame_impl.html#s1">ID3_FrameImpl::const_iterator</a> _end;
00290   <font class="keyword">public</font>:
00291     ConstIteratorImpl(<a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>&amp; frame)
00292       : _cur(frame.begin()), _end(frame.end())
00293     {
00294     }
00295     <font class="keyword">const</font> <a class="code" href="class_i_d3___field.html">ID3_Field</a>* GetNext() 
00296     { 
00297       <a class="code" href="class_i_d3___field.html">ID3_Field</a>* next = <a class="code" href="globals_8h.html#a24">NULL</a>;
00298       <font class="keywordflow">while</font> (next == NULL &amp;&amp; _cur != _end)
00299       {
00300         next = *_cur;
00301         ++_cur;
00302       }
00303       <font class="keywordflow">return</font> next;
00304     }
00305   };
00306 }
00307 
00308 <a class="code" href="class_i_d3___frame_1_1_iterator.html">ID3_Frame::Iterator</a>* 
<a name="l00309"></a><a class="code" href="class_i_d3___frame.html#a25">00309</a> <a class="code" href="class_i_d3___frame.html#a25">ID3_Frame::CreateIterator</a>()
00310 {
00311   <font class="keywordflow">return</font> <font class="keyword">new</font> IteratorImpl(*_impl);
00312 }
00313 
00314 <a class="code" href="class_i_d3___frame_1_1_const_iterator.html">ID3_Frame::ConstIterator</a>* 
<a name="l00315"></a><a class="code" href="class_i_d3___frame.html#a26">00315</a> <a class="code" href="class_i_d3___frame.html#a25">ID3_Frame::CreateIterator</a>()<font class="keyword"> const</font>
00316 <font class="keyword"></font>{
00317   <font class="keywordflow">return</font> <font class="keyword">new</font> ConstIteratorImpl(*_impl);
00318 }
</pre></div><hr><address><small>Generated on Thu Jan 3 07:35:55 2002 for id3lib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.12 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>