Sophie

Sophie

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

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_impl.h 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_impl.h</h1><a href="frame__impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">// -*- C++ -*-</font>
00002 <font class="comment">// $Id: frame_impl.h,v 1.2 2000/11/07 09:18:36 eldamitri Exp $</font>
00003 
00004 <font class="comment">// id3lib: a C++ library for creating and manipulating id3v1/v2 tags</font>
00005 <font class="comment">// Copyright 1999, 2000  Scott Thomas Haug</font>
00006 
00007 <font class="comment">// This library is free software; you can redistribute it and/or modify it</font>
00008 <font class="comment">// under the terms of the GNU Library General Public License as published by</font>
00009 <font class="comment">// the Free Software Foundation; either version 2 of the License, or (at your</font>
00010 <font class="comment">// option) any later version.</font>
00011 <font class="comment">//</font>
00012 <font class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</font>
00013 <font class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</font>
00014 <font class="comment">// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public</font>
00015 <font class="comment">// License for more details.</font>
00016 <font class="comment">//</font>
00017 <font class="comment">// You should have received a copy of the GNU Library General Public License</font>
00018 <font class="comment">// along with this library; if not, write to the Free Software Foundation,</font>
00019 <font class="comment">// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</font>
00020 
00021 <font class="comment">// The id3lib authors encourage improvements and optimisations to be sent to</font>
00022 <font class="comment">// the id3lib coordinator.  Please see the README file for details on where to</font>
00023 <font class="comment">// send such submissions.  See the AUTHORS file for a list of people who have</font>
00024 <font class="comment">// contributed to id3lib.  See the ChangeLog file for a list of changes to</font>
00025 <font class="comment">// id3lib.  These files are distributed with id3lib at</font>
00026 <font class="comment">// http://download.sourceforge.net/id3lib/</font>
00027 
00028 <font class="preprocessor">#ifndef _ID3LIB_FRAME_IMPL_H_</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#define _ID3LIB_FRAME_IMPL_H_</font>
00030 <font class="preprocessor"></font>
00031 <font class="preprocessor">#include &lt;vector&gt;</font>
00032 <font class="preprocessor">#include &lt;bitset&gt;</font>
00033 <font class="preprocessor">#include "<a class="code" href="frame_8h.html">frame.h</a>"</font>
00034 <font class="preprocessor">#include "<a class="code" href="header__frame_8h.html">header_frame.h</a>"</font>
00035 
<a name="l00036"></a><a class="code" href="class_i_d3___frame_impl.html">00036</a> <font class="keyword">class </font><a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>
00037 {
00038   <font class="keyword">typedef</font> std::bitset&lt;ID3FN_LASTFIELDID&gt; Bitset;
00039   <font class="keyword">typedef</font> std::vector&lt;ID3_Field *&gt; Fields;
00040 <font class="keyword">public</font>:
<a name="l00041"></a><a class="code" href="class_i_d3___frame_impl.html#s0">00041</a>   <font class="keyword">typedef</font> Fields::iterator <a class="code" href="class_i_d3___frame_impl.html#s0">iterator</a>;
<a name="l00042"></a><a class="code" href="class_i_d3___frame_impl.html#s1">00042</a>   <font class="keyword">typedef</font> Fields::const_iterator <a class="code" href="class_i_d3___frame_impl.html#s1">const_iterator</a>;
00043 <font class="keyword">public</font>:
00044   <a class="code" href="class_i_d3___frame_impl.html#a0">ID3_FrameImpl</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id = <a class="code" href="globals_8h.html#a219a95">ID3FID_NOFRAME</a>);
00045   <a class="code" href="class_i_d3___frame_impl.html#a0">ID3_FrameImpl</a>(<font class="keyword">const</font> <a class="code" href="class_i_d3___frame_header.html">ID3_FrameHeader</a>&amp;);
00046   <a class="code" href="class_i_d3___frame_impl.html#a0">ID3_FrameImpl</a>(<font class="keyword">const</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a>&amp;);
00047 
00049   <font class="keyword">virtual</font> <a class="code" href="class_i_d3___frame_impl.html#a3">~ID3_FrameImpl</a>();
00050   
00051   <font class="keywordtype">void</font>        <a class="code" href="class_i_d3___frame_impl.html#a4">Clear</a>();
00052 
00053   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a5">SetID</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id);
<a name="l00054"></a><a class="code" href="class_i_d3___frame_impl.html#a6">00054</a>   <a class="code" href="globals_8h.html#a219">ID3_FrameID</a> <a class="code" href="class_i_d3___frame_impl.html#a6">GetID</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _hdr.<a class="code" href="class_i_d3___frame_header.html#a6">GetFrameID</a>(); }
00055   
00056   <a class="code" href="class_i_d3___field.html">ID3_Field</a>*  <a class="code" href="class_i_d3___frame_impl.html#a7">GetField</a>(<a class="code" href="globals_8h.html#a218">ID3_FieldID</a> name) <font class="keyword">const</font>;
00057 
00058   size_t      <a class="code" href="class_i_d3___frame_impl.html#a8">NumFields</a>() <font class="keyword">const</font>;
00059   
00060   <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame_impl.html#a9">GetDescription</a>() <font class="keyword">const</font>;
00061   <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame_impl.html#a9">GetDescription</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a>);
00062 
<a name="l00063"></a><a class="code" href="class_i_d3___frame_impl.html#a10">00063</a>   <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="class_i_d3___frame_impl.html#a10">GetTextID</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _hdr.<a class="code" href="class_i_d3___frame_header.html#a7">GetTextID</a>(); }
00064 
00065   <a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>&amp;  <a class="code" href="class_i_d3___frame_impl.html#a11">operator=</a>(<font class="keyword">const</font> <a class="code" href="class_i_d3___frame.html">ID3_Frame</a> &amp;);
00066   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a12">HasChanged</a>() <font class="keyword">const</font>;
00067   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a13">Parse</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp;);
00068   <font class="keywordtype">void</font>        <a class="code" href="class_i_d3___frame_impl.html#a14">Render</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp;) <font class="keyword">const</font>;
00069   size_t      <a class="code" href="class_i_d3___frame_impl.html#a15">Size</a>();
<a name="l00070"></a><a class="code" href="class_i_d3___frame_impl.html#a16">00070</a>   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a16">Contains</a>(<a class="code" href="globals_8h.html#a218">ID3_FieldID</a> fld)<font class="keyword"> const</font>
00071 <font class="keyword">  </font>{ <font class="keywordflow">return</font> _bitset.test(fld); }
00072   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a17">SetSpec</a>(<a class="code" href="globals_8h.html#a216">ID3_V2Spec</a>);
00073   <a class="code" href="globals_8h.html#a216">ID3_V2Spec</a>  <a class="code" href="class_i_d3___frame_impl.html#a18">GetSpec</a>() <font class="keyword">const</font>;
00074 
<a name="l00080"></a><a class="code" href="class_i_d3___frame_impl.html#a19">00080</a>   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a19">SetCompression</a>(<font class="keywordtype">bool</font> b)  { <font class="keywordflow">return</font> _hdr.<a class="code" href="class_i_d3___frame_header.html#a11">SetCompression</a>(b); }
<a name="l00089"></a><a class="code" href="class_i_d3___frame_impl.html#a20">00089</a>   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#a20">GetCompression</a>()<font class="keyword"> const  </font>{ <font class="keywordflow">return</font> _hdr.<a class="code" href="class_i_d3___frame_header.html#a14">GetCompression</a>(); }
<a name="l00090"></a><a class="code" href="class_i_d3___frame_impl.html#a21">00090</a>   size_t      <a class="code" href="class_i_d3___frame_impl.html#a21">GetDataSize</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _hdr.<a class="code" href="class_i_d3___header.html#a5">GetDataSize</a>(); }
00091 
<a name="l00092"></a><a class="code" href="class_i_d3___frame_impl.html#a22">00092</a>   <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame_impl.html#a22">SetEncryptionID</a>(<a class="code" href="globals_8h.html#a33">uchar</a> id)
00093   {
00094     <font class="keywordtype">bool</font> changed = id != _encryption_id;
00095     _encryption_id = id;
00096     _changed = _changed || changed;
00097     _hdr.<a class="code" href="class_i_d3___frame_header.html#a12">SetEncryption</a>(<font class="keyword">true</font>);
00098     <font class="keywordflow">return</font> changed;
00099   }
<a name="l00100"></a><a class="code" href="class_i_d3___frame_impl.html#a23">00100</a>   <a class="code" href="globals_8h.html#a33">uchar</a> <a class="code" href="class_i_d3___frame_impl.html#a23">GetEncryptionID</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _encryption_id; }
<a name="l00101"></a><a class="code" href="class_i_d3___frame_impl.html#a24">00101</a>   <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___frame_impl.html#a24">SetGroupingID</a>(<a class="code" href="globals_8h.html#a33">uchar</a> id)
00102   {
00103     <font class="keywordtype">bool</font> changed = id != _grouping_id;
00104     _grouping_id = id;
00105     _changed = _changed || changed;
00106     _hdr.<a class="code" href="class_i_d3___frame_header.html#a13">SetGrouping</a>(<font class="keyword">true</font>);
00107     <font class="keywordflow">return</font> changed;
00108   }
<a name="l00109"></a><a class="code" href="class_i_d3___frame_impl.html#a25">00109</a>   <a class="code" href="globals_8h.html#a33">uchar</a> <a class="code" href="class_i_d3___frame_impl.html#a25">GetGroupingID</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _grouping_id; }
00110 
<a name="l00111"></a><a class="code" href="class_i_d3___frame_impl.html#a26">00111</a>   <a class="code" href="class_i_d3___frame_impl.html#s0">iterator</a>         <a class="code" href="class_i_d3___frame_impl.html#a26">begin</a>()       { <font class="keywordflow">return</font> _fields.begin(); }
<a name="l00112"></a><a class="code" href="class_i_d3___frame_impl.html#a27">00112</a>   <a class="code" href="class_i_d3___frame_impl.html#s0">iterator</a>         <a class="code" href="class_i_d3___frame_impl.html#a27">end</a>()         { <font class="keywordflow">return</font> _fields.end(); }
<a name="l00113"></a><a class="code" href="class_i_d3___frame_impl.html#a28">00113</a>   <a class="code" href="class_i_d3___frame_impl.html#s1">const_iterator</a>   <a class="code" href="class_i_d3___frame_impl.html#a26">begin</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _fields.begin(); }
<a name="l00114"></a><a class="code" href="class_i_d3___frame_impl.html#a29">00114</a>   <a class="code" href="class_i_d3___frame_impl.html#s1">const_iterator</a>   <a class="code" href="class_i_d3___frame_impl.html#a27">end</a>()   <font class="keyword">const</font> { <font class="keywordflow">return</font> _fields.end(); }
00115   
00116 <font class="keyword">protected</font>:
00117   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#b0">_SetID</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a>);
00118   <font class="keywordtype">bool</font>        <a class="code" href="class_i_d3___frame_impl.html#b1">_ClearFields</a>();
00119   <font class="keywordtype">void</font>        <a class="code" href="class_i_d3___frame_impl.html#b2">_InitFields</a>();
00120   <font class="keywordtype">void</font>        <a class="code" href="class_i_d3___frame_impl.html#b3">_InitFieldBits</a>();
00121   <font class="keywordtype">void</font>        <a class="code" href="class_i_d3___frame_impl.html#b4">_UpdateFieldDeps</a>();
00122 
00123 <font class="keyword">private</font>:
00124   <font class="keyword">mutable</font> <font class="keywordtype">bool</font>        _changed;    <font class="comment">// frame changed since last parse/render?</font>
00125   Bitset      _bitset;             <font class="comment">// which fields are present?</font>
00126   Fields      _fields;
00127   <a class="code" href="class_i_d3___frame_header.html">ID3_FrameHeader</a> _hdr;            <font class="comment">// </font>
00128   <a class="code" href="globals_8h.html#a33">uchar</a>       _encryption_id;      <font class="comment">// encryption id</font>
00129   <a class="code" href="globals_8h.html#a33">uchar</a>       _grouping_id;        <font class="comment">// grouping id</font>
00130 }
00131 ;
00132 
00133 <font class="preprocessor">#endif </font><font class="comment">/* _ID3LIB_FRAME_IMPL_H_ */</font>
</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>