1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>include/FLAC/stream_decoder.h Source File</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
<!-- Generated by Doxygen 1.2.14 -->
8
<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center>
9
<hr><h1>include/FLAC/stream_decoder.h</h1><a href="FLAC_2stream__decoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/* libFLAC - Free Lossless Audio Codec library</font>
10
00002 <font class="comment"> * Copyright (C) 2000,2001,2002,2003,2004,2005 Josh Coalson</font>
11
00003 <font class="comment"> *</font>
12
00004 <font class="comment"> * Redistribution and use in source and binary forms, with or without</font>
13
00005 <font class="comment"> * modification, are permitted provided that the following conditions</font>
14
00006 <font class="comment"> * are met:</font>
15
00007 <font class="comment"> *</font>
16
00008 <font class="comment"> * - Redistributions of source code must retain the above copyright</font>
17
00009 <font class="comment"> * notice, this list of conditions and the following disclaimer.</font>
18
00010 <font class="comment"> *</font>
19
00011 <font class="comment"> * - Redistributions in binary form must reproduce the above copyright</font>
20
00012 <font class="comment"> * notice, this list of conditions and the following disclaimer in the</font>
21
00013 <font class="comment"> * documentation and/or other materials provided with the distribution.</font>
22
00014 <font class="comment"> *</font>
23
00015 <font class="comment"> * - Neither the name of the Xiph.org Foundation nor the names of its</font>
24
00016 <font class="comment"> * contributors may be used to endorse or promote products derived from</font>
25
00017 <font class="comment"> * this software without specific prior written permission.</font>
26
00018 <font class="comment"> *</font>
27
00019 <font class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</font>
28
00020 <font class="comment"> * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</font>
29
00021 <font class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</font>
30
00022 <font class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR</font>
31
00023 <font class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</font>
32
00024 <font class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</font>
33
00025 <font class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</font>
34
00026 <font class="comment"> * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</font>
35
00027 <font class="comment"> * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</font>
36
00028 <font class="comment"> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</font>
37
00029 <font class="comment"> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</font>
38
00030 <font class="comment"> */</font>
40
00032 <font class="preprocessor">#ifndef FLAC__STREAM_DECODER_H</font>
41
00033 <font class="preprocessor"></font><font class="preprocessor">#define FLAC__STREAM_DECODER_H</font>
42
00034 <font class="preprocessor"></font>
43
00035 <font class="preprocessor">#include "export.h"</font>
44
00036 <font class="preprocessor">#include "<a class="code" href="format_8h.html">format.h</a>"</font>
46
00038 <font class="preprocessor">#ifdef __cplusplus</font>
47
00039 <font class="preprocessor"></font><font class="keyword">extern</font> <font class="stringliteral">"C"</font> {
48
00040 <font class="preprocessor">#endif</font>
49
00041 <font class="preprocessor"></font>
51
<a name="l00196"></a><a class="code" href="group__flac__stream__decoder.html#a36">00196</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
53
00198 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a8">FLAC__STREAM_DECODER_SEARCH_FOR_METADATA</a> = 0,
54
00201 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a9">FLAC__STREAM_DECODER_READ_METADATA</a>,
55
00204 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a10">FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC</a>,
56
00207 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a11">FLAC__STREAM_DECODER_READ_FRAME</a>,
57
00210 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a12">FLAC__STREAM_DECODER_END_OF_STREAM</a>,
58
00213 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a13">FLAC__STREAM_DECODER_ABORTED</a>,
59
00216 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a14">FLAC__STREAM_DECODER_UNPARSEABLE_STREAM</a>,
60
00219 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a15">FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR</a>,
61
00222 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a16">FLAC__STREAM_DECODER_ALREADY_INITIALIZED</a>,
62
00228 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a17">FLAC__STREAM_DECODER_INVALID_CALLBACK</a>,
63
00231 <a class="code" href="FLAC_2stream__decoder_8h.html#a36a18">FLAC__STREAM_DECODER_UNINITIALIZED</a>
64
00234 } <a class="code" href="FLAC_2stream__decoder_8h.html#a36">FLAC__StreamDecoderState</a>;
66
<a name="l00241"></a><a class="code" href="group__flac__stream__decoder.html#a0">00241</a> <font class="keyword">extern</font> FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a0">FLAC__StreamDecoderStateString</a>[];
69
<a name="l00246"></a><a class="code" href="group__flac__stream__decoder.html#a37">00246</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
71
00248 <a class="code" href="FLAC_2stream__decoder_8h.html#a37a19">FLAC__STREAM_DECODER_READ_STATUS_CONTINUE</a>,
72
00251 <a class="code" href="FLAC_2stream__decoder_8h.html#a37a20">FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM</a>,
73
00254 <a class="code" href="FLAC_2stream__decoder_8h.html#a37a21">FLAC__STREAM_DECODER_READ_STATUS_ABORT</a>
74
00257 } <a class="code" href="FLAC_2stream__decoder_8h.html#a37">FLAC__StreamDecoderReadStatus</a>;
76
<a name="l00264"></a><a class="code" href="group__flac__stream__decoder.html#a1">00264</a> <font class="keyword">extern</font> FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a1">FLAC__StreamDecoderReadStatusString</a>[];
79
<a name="l00269"></a><a class="code" href="group__flac__stream__decoder.html#a38">00269</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
81
00271 <a class="code" href="FLAC_2stream__decoder_8h.html#a38a22">FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE</a>,
82
00274 <a class="code" href="FLAC_2stream__decoder_8h.html#a38a23">FLAC__STREAM_DECODER_WRITE_STATUS_ABORT</a>
83
00277 } <a class="code" href="FLAC_2stream__decoder_8h.html#a38">FLAC__StreamDecoderWriteStatus</a>;
85
<a name="l00284"></a><a class="code" href="group__flac__stream__decoder.html#a2">00284</a> <font class="keyword">extern</font> FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a2">FLAC__StreamDecoderWriteStatusString</a>[];
88
<a name="l00289"></a><a class="code" href="group__flac__stream__decoder.html#a39">00289</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
90
00291 <a class="code" href="FLAC_2stream__decoder_8h.html#a39a24">FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC</a>,
91
00294 <a class="code" href="FLAC_2stream__decoder_8h.html#a39a25">FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER</a>,
92
00297 <a class="code" href="FLAC_2stream__decoder_8h.html#a39a26">FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH</a>
93
00300 } <a class="code" href="FLAC_2stream__decoder_8h.html#a39">FLAC__StreamDecoderErrorStatus</a>;
95
<a name="l00307"></a><a class="code" href="group__flac__stream__decoder.html#a3">00307</a> <font class="keyword">extern</font> FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a3">FLAC__StreamDecoderErrorStatusString</a>[];
98
00310 <font class="comment">/***********************************************************************</font>
99
00311 <font class="comment"> *</font>
100
00312 <font class="comment"> * class FLAC__StreamDecoder</font>
101
00313 <font class="comment"> *</font>
102
00314 <font class="comment"> ***********************************************************************/</font>
104
00316 <font class="keyword">struct </font>FLAC__StreamDecoderProtected;
105
00317 <font class="keyword">struct </font>FLAC__StreamDecoderPrivate;
106
<a name="l00322"></a><a class="code" href="structFLAC____StreamDecoder.html">00322</a> <font class="keyword">typedef</font> <font class="keyword">struct </font>{
107
00323 <font class="keyword">struct </font>FLAC__StreamDecoderProtected *protected_; <font class="comment">/* avoid the C++ keyword 'protected' */</font>
108
00324 <font class="keyword">struct </font>FLAC__StreamDecoderPrivate *private_; <font class="comment">/* avoid the C++ keyword 'private' */</font>
109
00325 } <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a>;
111
<a name="l00344"></a><a class="code" href="group__flac__stream__decoder.html#a4">00344</a> <font class="keyword">typedef</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a37">FLAC__StreamDecoderReadStatus</a> (*<a class="code" href="FLAC_2stream__decoder_8h.html#a4">FLAC__StreamDecoderReadCallback</a>)(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__byte buffer[], <font class="keywordtype">unsigned</font> *bytes, <font class="keywordtype">void</font> *client_data);
113
<a name="l00363"></a><a class="code" href="group__flac__stream__decoder.html#a5">00363</a> <font class="keyword">typedef</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a38">FLAC__StreamDecoderWriteStatus</a> (*<a class="code" href="FLAC_2stream__decoder_8h.html#a5">FLAC__StreamDecoderWriteCallback</a>)(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> <a class="code" href="structFLAC____Frame.html">FLAC__Frame</a> *frame, <font class="keyword">const</font> FLAC__int32 * <font class="keyword">const</font> buffer[], <font class="keywordtype">void</font> *client_data);
115
<a name="l00373"></a><a class="code" href="group__flac__stream__decoder.html#a6">00373</a> <font class="keyword">typedef</font> void (*<a class="code" href="FLAC_2stream__decoder_8h.html#a6">FLAC__StreamDecoderMetadataCallback</a>)(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> <a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, <font class="keywordtype">void</font> *client_data);
117
<a name="l00383"></a><a class="code" href="group__flac__stream__decoder.html#a7">00383</a> <font class="keyword">typedef</font> void (*<a class="code" href="FLAC_2stream__decoder_8h.html#a7">FLAC__StreamDecoderErrorCallback</a>)(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a39">FLAC__StreamDecoderErrorStatus</a> status, <font class="keywordtype">void</font> *client_data);
120
00386 <font class="comment">/***********************************************************************</font>
121
00387 <font class="comment"> *</font>
122
00388 <font class="comment"> * Class constructor/destructor</font>
123
00389 <font class="comment"> *</font>
124
00390 <font class="comment"> ***********************************************************************/</font>
126
00399 FLAC_API <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *<a class="code" href="FLAC_2stream__decoder_8h.html#a8">FLAC__stream_decoder_new</a>();
128
00407 FLAC_API <font class="keywordtype">void</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a9">FLAC__stream_decoder_delete</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
131
00410 <font class="comment">/***********************************************************************</font>
132
00411 <font class="comment"> *</font>
133
00412 <font class="comment"> * Public class method prototypes</font>
134
00413 <font class="comment"> *</font>
135
00414 <font class="comment"> ***********************************************************************/</font>
137
00436 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a10">FLAC__stream_decoder_set_read_callback</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a4">FLAC__StreamDecoderReadCallback</a> value);
139
00456 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a11">FLAC__stream_decoder_set_write_callback</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a5">FLAC__StreamDecoderWriteCallback</a> value);
141
00484 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a12">FLAC__stream_decoder_set_metadata_callback</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a6">FLAC__StreamDecoderMetadataCallback</a> value);
143
00502 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a13">FLAC__stream_decoder_set_error_callback</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a7">FLAC__StreamDecoderErrorCallback</a> value);
145
00516 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a14">FLAC__stream_decoder_set_client_data</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <font class="keywordtype">void</font> *value);
147
00530 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a15">FLAC__stream_decoder_set_metadata_respond</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="format_8h.html#a97">FLAC__MetadataType</a> type);
149
00545 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a16">FLAC__stream_decoder_set_metadata_respond_application</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> FLAC__byte id[4]);
151
00557 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a17">FLAC__stream_decoder_set_metadata_respond_all</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
153
00571 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a18">FLAC__stream_decoder_set_metadata_ignore</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <a class="code" href="format_8h.html#a97">FLAC__MetadataType</a> type);
155
00586 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a19">FLAC__stream_decoder_set_metadata_ignore_application</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> FLAC__byte id[4]);
157
00598 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a20">FLAC__stream_decoder_set_metadata_ignore_all</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
159
00608 FLAC_API <a class="code" href="FLAC_2stream__decoder_8h.html#a36">FLAC__StreamDecoderState</a> <a class="code" href="FLAC_2stream__decoder_8h.html#a21">FLAC__stream_decoder_get_state</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
161
00618 FLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="FLAC_2stream__decoder_8h.html#a22">FLAC__stream_decoder_get_resolved_state_string</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
163
00630 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a23">FLAC__stream_decoder_get_channels</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
165
00642 FLAC_API <a class="code" href="format_8h.html#a95">FLAC__ChannelAssignment</a> <a class="code" href="FLAC_2stream__decoder_8h.html#a24">FLAC__stream_decoder_get_channel_assignment</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
167
00654 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a25">FLAC__stream_decoder_get_bits_per_sample</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
169
00666 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a26">FLAC__stream_decoder_get_sample_rate</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
171
00678 FLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a27">FLAC__stream_decoder_get_blocksize</a>(<font class="keyword">const</font> <a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
173
00695 FLAC_API <a class="code" href="FLAC_2stream__decoder_8h.html#a36">FLAC__StreamDecoderState</a> <a class="code" href="FLAC_2stream__decoder_8h.html#a28">FLAC__stream_decoder_init</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
175
00711 FLAC_API <font class="keywordtype">void</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a29">FLAC__stream_decoder_finish</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
177
00724 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a30">FLAC__stream_decoder_flush</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
179
00740 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a31">FLAC__stream_decoder_reset</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
181
00776 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a32">FLAC__stream_decoder_process_single</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
183
00799 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a33">FLAC__stream_decoder_process_until_end_of_metadata</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
185
00822 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a34">FLAC__stream_decoder_process_until_end_of_stream</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
187
00865 FLAC_API FLAC__bool <a class="code" href="FLAC_2stream__decoder_8h.html#a35">FLAC__stream_decoder_skip_single_frame</a>(<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder);
189
00867 <font class="comment">/* \} */</font>
191
00869 <font class="preprocessor">#ifdef __cplusplus</font>
192
00870 <font class="preprocessor"></font>}
193
00871 <font class="preprocessor">#endif</font>
194
00872 <font class="preprocessor"></font>
195
00873 <font class="preprocessor">#endif</font>
196
</pre></div><hr><address><small>Generated on Fri Feb 4 18:39:11 2005 for FLAC by
197
<a href="http://www.doxygen.org/index.html">
198
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
199
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
200
© 1997-2002</small></address>