Sophie

Sophie

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

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/field_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/field_impl.h</h1><a href="field__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: field_impl.h,v 1.2 2001/08/07 11:58:23 shadrack 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_FIELD_IMPL_H_</font>
00029 <font class="preprocessor"></font><font class="preprocessor">#define _ID3LIB_FIELD_IMPL_H_</font>
00030 <font class="preprocessor"></font>
00031 <font class="preprocessor">#include &lt;stdlib.h&gt;</font>
00032 <font class="preprocessor">#include "<a class="code" href="field_8h.html">field.h</a>"</font>
00033 <font class="preprocessor">#include "strings.h"</font>
00034 
00035 <font class="keyword">struct </font><a class="code" href="struct_i_d3___field_def.html">ID3_FieldDef</a>;
00036 <font class="keyword">struct </font><a class="code" href="struct_i_d3___frame_def.html">ID3_FrameDef</a>;
00037 <font class="keyword">class </font><a class="code" href="class_i_d3___frame.html">ID3_Frame</a>;
00038 <font class="keyword">class </font><a class="code" href="class_i_d3___reader.html">ID3_Reader</a>;
00039 
<a name="l00040"></a><a class="code" href="class_i_d3___field_impl.html">00040</a> <font class="keyword">class </font><a class="code" href="class_i_d3___field_impl.html">ID3_FieldImpl</a> : <font class="keyword">public</font> <a class="code" href="class_i_d3___field.html">ID3_Field</a>
00041 {
<a name="l00042"></a><a class="code" href="class_i_d3___field_impl.html#l0">00042</a>   <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="class_i_d3___frame_impl.html">ID3_FrameImpl</a>;
00043 <font class="keyword">public</font>:
00044   <a class="code" href="class_i_d3___field_impl.html#a0">~ID3_FieldImpl</a>();
00045   
00046   <font class="keywordtype">void</font> <a class="code" href="class_i_d3___field_impl.html#a1">Clear</a>();
00047 
00048   size_t <a class="code" href="class_i_d3___field_impl.html#a2">Size</a>() <font class="keyword">const</font>;
00049   size_t <a class="code" href="class_i_d3___field_impl.html#a3">BinSize</a>() <font class="keyword">const</font>;
00050   size_t <a class="code" href="class_i_d3___field_impl.html#a4">GetNumTextItems</a>() <font class="keyword">const</font>;
00051 
00052   <font class="comment">// integer field functions</font>
<a name="l00053"></a><a class="code" href="class_i_d3___field_impl.html#a5">00053</a>   <a class="code" href="class_i_d3___field.html">ID3_Field</a>&amp;    <a class="code" href="class_i_d3___field_impl.html#a5">operator= </a>(<a class="code" href="sized__types_8h.html#a4">uint32</a> val) { this-&gt;<a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(val); <font class="keywordflow">return</font> *<font class="keyword">this</font>; }
00054   <font class="keywordtype">void</font>          <a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(<a class="code" href="sized__types_8h.html#a4">uint32</a>);
00055   <a class="code" href="sized__types_8h.html#a4">uint32</a>        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>() <font class="keyword">const</font>;
00056 
00057   <font class="keywordtype">void</font>          <a class="code" href="class_i_d3___field_impl.html#a8">SetInteger</a>(<a class="code" href="sized__types_8h.html#a4">uint32</a>);
00058   <a class="code" href="sized__types_8h.html#a4">uint32</a>        <a class="code" href="class_i_d3___field_impl.html#a9">GetInteger</a>() <font class="keyword">const</font>;
00059 
00060   <font class="comment">// ASCII string field functions</font>
<a name="l00061"></a><a class="code" href="class_i_d3___field_impl.html#a10">00061</a>   <a class="code" href="class_i_d3___field.html">ID3_Field</a>&amp;    <a class="code" href="class_i_d3___field_impl.html#a5">operator= </a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* s) { this-&gt;<a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(s); <font class="keywordflow">return</font> *<font class="keyword">this</font>; }
00062   size_t        <a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* data);
00063   size_t        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>(<font class="keywordtype">char</font>*, size_t) <font class="keyword">const</font>;
00064   size_t        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>(<font class="keywordtype">char</font>*, size_t, <a class="code" href="globals_8h.html#a7">index_t</a>) <font class="keyword">const</font>;
00065   <font class="keyword">const</font> <font class="keywordtype">char</font>*   <a class="code" href="class_i_d3___field_impl.html#a14">GetRawText</a>() <font class="keyword">const</font>;
00066   <font class="keyword">const</font> <font class="keywordtype">char</font>*   <a class="code" href="class_i_d3___field_impl.html#a15">GetRawTextItem</a>(<a class="code" href="globals_8h.html#a7">index_t</a>) <font class="keyword">const</font>;
00067   size_t        <a class="code" href="class_i_d3___field_impl.html#a16">Add</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* data);
00068 
00069   dami::String  <a class="code" href="class_i_d3___field_impl.html#a17">GetText</a>() <font class="keyword">const</font>;
00070   dami::String  <a class="code" href="class_i_d3___field_impl.html#a18">GetTextItem</a>(<a class="code" href="globals_8h.html#a7">index_t</a>) <font class="keyword">const</font>;
00071   size_t        <a class="code" href="class_i_d3___field_impl.html#a19">SetText</a>(dami::String);
00072   size_t        <a class="code" href="class_i_d3___field_impl.html#a20">AddText</a>(dami::String);
00073 
00074   <font class="comment">// Unicode string field functions</font>
<a name="l00075"></a><a class="code" href="class_i_d3___field_impl.html#a21">00075</a>   <a class="code" href="class_i_d3___field.html">ID3_Field</a>&amp;    <a class="code" href="class_i_d3___field_impl.html#a5">operator= </a>(<font class="keyword">const</font> <a class="code" href="globals_8h.html#a39">unicode_t</a>* s) { this-&gt;<a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(s); <font class="keywordflow">return</font> *<font class="keyword">this</font>; }
00076   size_t        <a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(<font class="keyword">const</font> <a class="code" href="globals_8h.html#a39">unicode_t</a>*);
00077   size_t        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>(<a class="code" href="globals_8h.html#a39">unicode_t</a> *buffer, size_t) <font class="keyword">const</font>;
00078   size_t        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>(<a class="code" href="globals_8h.html#a39">unicode_t</a> *buffer, size_t, <a class="code" href="globals_8h.html#a7">index_t</a>) <font class="keyword">const</font>;
00079   size_t        <a class="code" href="class_i_d3___field_impl.html#a16">Add</a>(<font class="keyword">const</font> <a class="code" href="globals_8h.html#a39">unicode_t</a>*);
00080   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a39">unicode_t</a>* <a class="code" href="class_i_d3___field_impl.html#a26">GetRawUnicodeText</a>() <font class="keyword">const</font>;
00081   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a39">unicode_t</a>* <a class="code" href="class_i_d3___field_impl.html#a27">GetRawUnicodeTextItem</a>(<a class="code" href="globals_8h.html#a7">index_t</a>) <font class="keyword">const</font>;
00082 
00083   <font class="comment">// binary field functions</font>
00084   size_t        <a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(<font class="keyword">const</font> <a class="code" href="globals_8h.html#a33">uchar</a>* buf, size_t size);
<a name="l00085"></a><a class="code" href="class_i_d3___field_impl.html#a29">00085</a>   size_t        <a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>* buf, size_t size)
00086   {
00087     <font class="keywordflow">return</font> this-&gt;<a class="code" href="class_i_d3___field_impl.html#a6">Set</a>(reinterpret_cast&lt;const uchar *&gt;(buf), size);
00088   }
00089   size_t        <a class="code" href="class_i_d3___field_impl.html#a7">Get</a>(<a class="code" href="globals_8h.html#a33">uchar</a>*, size_t) <font class="keyword">const</font>;
00090   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a33">uchar</a>*  <a class="code" href="class_i_d3___field_impl.html#a31">GetRawBinary</a>() <font class="keyword">const</font>;
00091   <font class="keywordtype">void</font>          <a class="code" href="class_i_d3___field_impl.html#a32">FromFile</a>(<font class="keyword">const</font> <font class="keywordtype">char</font>*);
00092   <font class="keywordtype">void</font>          <a class="code" href="class_i_d3___field_impl.html#a33">ToFile</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *sInfo) <font class="keyword">const</font>;
00093   
00094   size_t        <a class="code" href="class_i_d3___field_impl.html#a34">SetBinary</a>(dami::BString);
00095   dami::BString <a class="code" href="class_i_d3___field_impl.html#a35">GetBinary</a>() <font class="keyword">const</font>;
00096 
00097   <font class="comment">// miscelaneous functions</font>
00098   <a class="code" href="class_i_d3___field.html">ID3_Field</a>&amp;    <a class="code" href="class_i_d3___field_impl.html#a5">operator=</a>( <font class="keyword">const</font> <a class="code" href="class_i_d3___field.html">ID3_Field</a> &amp; );
<a name="l00099"></a><a class="code" href="class_i_d3___field_impl.html#a37">00099</a>   <font class="keywordtype">bool</font>          <a class="code" href="class_i_d3___field_impl.html#a37">InScope</a>(<a class="code" href="globals_8h.html#a216">ID3_V2Spec</a> spec)<font class="keyword"> const</font>
00100 <font class="keyword">  </font>{ <font class="keywordflow">return</font> _spec_begin &lt;= spec &amp;&amp; spec &lt;= _spec_end; }
00101 
<a name="l00102"></a><a class="code" href="class_i_d3___field_impl.html#a38">00102</a>   <a class="code" href="globals_8h.html#a218">ID3_FieldID</a>   <a class="code" href="class_i_d3___field_impl.html#a38">GetID</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _id; }
<a name="l00103"></a><a class="code" href="class_i_d3___field_impl.html#a39">00103</a>   <a class="code" href="globals_8h.html#a222">ID3_FieldType</a> <a class="code" href="class_i_d3___field_impl.html#a39">GetType</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _type; }
00104   <font class="keywordtype">bool</font>          <a class="code" href="class_i_d3___field_impl.html#a40">SetEncoding</a>(<a class="code" href="globals_8h.html#a214">ID3_TextEnc</a> enc);
<a name="l00105"></a><a class="code" href="class_i_d3___field_impl.html#a41">00105</a>   <a class="code" href="globals_8h.html#a214">ID3_TextEnc</a>   <a class="code" href="class_i_d3___field_impl.html#a41">GetEncoding</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> _enc; }
<a name="l00106"></a><a class="code" href="class_i_d3___field_impl.html#a42">00106</a>   <font class="keywordtype">bool</font>          <a class="code" href="class_i_d3___field_impl.html#a42">IsEncodable</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (_flags &amp; <a class="code" href="globals_8h.html#a221a184">ID3FF_ENCODABLE</a>) &gt; 0; }
00107   
00108 
00109   <font class="keywordtype">void</font>          <a class="code" href="class_i_d3___field_impl.html#a43">Render</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp;) <font class="keyword">const</font>;
00110   <font class="keywordtype">bool</font>          <a class="code" href="class_i_d3___field_impl.html#a44">Parse</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp;);
00111   <font class="keywordtype">bool</font>          <a class="code" href="class_i_d3___field_impl.html#a45">HasChanged</a>() <font class="keyword">const</font>;
00112 
00113 <font class="keyword">private</font>:
00114   size_t        SetText_i(dami::String);
00115   size_t        AddText_i(dami::String);
00116 
00117 <font class="keyword">private</font>:
00118   <font class="comment">// To prevent public instantiation, the constructor is made private</font>
00119   <a class="code" href="class_i_d3___field_impl.html">ID3_FieldImpl</a>();
00120   <a class="code" href="class_i_d3___field_impl.html">ID3_FieldImpl</a>(<font class="keyword">const</font> <a class="code" href="struct_i_d3___field_def.html">ID3_FieldDef</a>&amp;);
00121 
00122   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a218">ID3_FieldID</a>   _id;          <font class="comment">// the ID of this field</font>
00123   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a222">ID3_FieldType</a> _type;        <font class="comment">// what type is this field or should be</font>
00124   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a216">ID3_V2Spec</a>    _spec_begin;  <font class="comment">// spec end</font>
00125   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a216">ID3_V2Spec</a>    _spec_end;    <font class="comment">// spec begin</font>
00126   <font class="keyword">const</font> <a class="code" href="globals_8h.html#a40">flags_t</a>       _flags;       <font class="comment">// special field flags</font>
00127   <font class="keyword">mutable</font> <font class="keywordtype">bool</font>        _changed;     <font class="comment">// field changed since last parse/render?</font>
00128 
00129   dami::BString       _binary;      <font class="comment">// for binary strings</font>
00130   dami::String        _text;        <font class="comment">// for ascii strings</font>
00131   <a class="code" href="sized__types_8h.html#a4">uint32</a>              _integer;     <font class="comment">// for numbers</font>
00132 
00133   <font class="keyword">const</font> size_t        _fixed_size;  <font class="comment">// for fixed length fields (0 if not)</font>
00134   size_t              _num_items;   <font class="comment">// the number of items in the text string</font>
00135   <a class="code" href="globals_8h.html#a214">ID3_TextEnc</a>         _enc;         <font class="comment">// encoding for text fields</font>
00136 <font class="keyword">protected</font>:
00137   <font class="keywordtype">void</font> <a class="code" href="class_i_d3___field_impl.html#b0">RenderInteger</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp;) <font class="keyword">const</font>;
00138   <font class="keywordtype">void</font> <a class="code" href="class_i_d3___field_impl.html#b1">RenderText</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp;) <font class="keyword">const</font>;
00139   <font class="keywordtype">void</font> <a class="code" href="class_i_d3___field_impl.html#b2">RenderBinary</a>(<a class="code" href="class_i_d3___writer.html">ID3_Writer</a>&amp;) <font class="keyword">const</font>;
00140   
00141   <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___field_impl.html#b3">ParseInteger</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp;);
00142   <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___field_impl.html#b4">ParseText</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp;);
00143   <font class="keywordtype">bool</font> <a class="code" href="class_i_d3___field_impl.html#b5">ParseBinary</a>(<a class="code" href="class_i_d3___reader.html">ID3_Reader</a>&amp;);
00144   
00145 };
00146 
00147 
00148 <font class="comment">// Ack! Not for public use</font>
00149 <a class="code" href="struct_i_d3___frame_def.html">ID3_FrameDef</a> *<a class="code" href="field__impl_8h.html#a19">ID3_FindFrameDef</a>(<a class="code" href="globals_8h.html#a219">ID3_FrameID</a> id);
00150 <a class="code" href="globals_8h.html#a219">ID3_FrameID</a>   <a class="code" href="field__impl_8h.html#a20">ID3_FindFrameID</a>(<font class="keyword">const</font> <font class="keywordtype">char</font> *id);
00151 
00152 <font class="preprocessor">#endif </font><font class="comment">/* _ID3LIB_FIELD_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>