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/OggFLAC/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/OggFLAC/stream_decoder.h</h1><a href="OggFLAC_2stream__decoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/* libOggFLAC - Free Lossless Audio Codec + Ogg library</font>
10
00002 <font class="comment"> * Copyright (C) 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 OggFLAC__STREAM_DECODER_H</font>
41
00033 <font class="preprocessor"></font><font class="preprocessor">#define OggFLAC__STREAM_DECODER_H</font>
42
00034 <font class="preprocessor"></font>
43
00035 <font class="preprocessor">#include "export.h"</font>
45
00037 <font class="preprocessor">#include "<a class="code" href="OggFLAC_2stream__decoder_8h.html">FLAC/stream_decoder.h</a>"</font>
47
00039 <font class="preprocessor">#ifdef __cplusplus</font>
48
00040 <font class="preprocessor"></font><font class="keyword">extern</font> <font class="stringliteral">"C"</font> {
49
00041 <font class="preprocessor">#endif</font>
50
00042 <font class="preprocessor"></font>
52
<a name="l00087"></a><a class="code" href="group__oggflac__stream__decoder.html#a34">00087</a> <font class="keyword">typedef</font> <font class="keyword">enum</font> {
54
00089 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a5">OggFLAC__STREAM_DECODER_OK</a> = 0,
55
00092 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a6">OggFLAC__STREAM_DECODER_END_OF_STREAM</a>,
56
00095 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a7">OggFLAC__STREAM_DECODER_OGG_ERROR</a>,
57
00098 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a8">OggFLAC__STREAM_DECODER_READ_ERROR</a>,
58
00101 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a9">OggFLAC__STREAM_DECODER_FLAC_STREAM_DECODER_ERROR</a>,
59
00106 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a10">OggFLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR</a>,
60
00109 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a11">OggFLAC__STREAM_DECODER_ALREADY_INITIALIZED</a>,
61
00115 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a12">OggFLAC__STREAM_DECODER_INVALID_CALLBACK</a>,
62
00118 <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34a13">OggFLAC__STREAM_DECODER_UNINITIALIZED</a>
63
00121 } <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34">OggFLAC__StreamDecoderState</a>;
65
<a name="l00128"></a><a class="code" href="group__oggflac__stream__decoder.html#a0">00128</a> <font class="keyword">extern</font> OggFLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> * <font class="keyword">const</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a0">OggFLAC__StreamDecoderStateString</a>[];
68
00131 <font class="comment">/***********************************************************************</font>
69
00132 <font class="comment"> *</font>
70
00133 <font class="comment"> * class OggFLAC__StreamDecoder</font>
71
00134 <font class="comment"> *</font>
72
00135 <font class="comment"> ***********************************************************************/</font>
74
00137 <font class="keyword">struct </font>OggFLAC__StreamDecoderProtected;
75
00138 <font class="keyword">struct </font>OggFLAC__StreamDecoderPrivate;
76
<a name="l00143"></a><a class="code" href="structOggFLAC____StreamDecoder.html">00143</a> <font class="keyword">typedef</font> <font class="keyword">struct </font>{
77
00144 <font class="keyword">struct </font>OggFLAC__StreamDecoderProtected *protected_; <font class="comment">/* avoid the C++ keyword 'protected' */</font>
78
00145 <font class="keyword">struct </font>OggFLAC__StreamDecoderPrivate *private_; <font class="comment">/* avoid the C++ keyword 'private' */</font>
79
00146 } <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a>;
81
<a name="l00165"></a><a class="code" href="group__oggflac__stream__decoder.html#a1">00165</a> <font class="keyword">typedef</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a37">FLAC__StreamDecoderReadStatus</a> (*<a class="code" href="OggFLAC_2stream__decoder_8h.html#a1">OggFLAC__StreamDecoderReadCallback</a>)(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, FLAC__byte buffer[], <font class="keywordtype">unsigned</font> *bytes, <font class="keywordtype">void</font> *client_data);
83
<a name="l00185"></a><a class="code" href="group__oggflac__stream__decoder.html#a2">00185</a> <font class="keyword">typedef</font> <a class="code" href="FLAC_2stream__decoder_8h.html#a38">FLAC__StreamDecoderWriteStatus</a> (*<a class="code" href="OggFLAC_2stream__decoder_8h.html#a2">OggFLAC__StreamDecoderWriteCallback</a>)(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__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);
85
<a name="l00196"></a><a class="code" href="group__oggflac__stream__decoder.html#a3">00196</a> <font class="keyword">typedef</font> void (*<a class="code" href="OggFLAC_2stream__decoder_8h.html#a3">OggFLAC__StreamDecoderMetadataCallback</a>)(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__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);
87
<a name="l00207"></a><a class="code" href="group__oggflac__stream__decoder.html#a4">00207</a> <font class="keyword">typedef</font> void (*<a class="code" href="OggFLAC_2stream__decoder_8h.html#a4">OggFLAC__StreamDecoderErrorCallback</a>)(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="FLAC_2stream__decoder_8h.html#a39">FLAC__StreamDecoderErrorStatus</a> status, <font class="keywordtype">void</font> *client_data);
90
00210 <font class="comment">/***********************************************************************</font>
91
00211 <font class="comment"> *</font>
92
00212 <font class="comment"> * Class constructor/destructor</font>
93
00213 <font class="comment"> *</font>
94
00214 <font class="comment"> ***********************************************************************/</font>
96
00223 OggFLAC_API <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *<a class="code" href="OggFLAC_2stream__decoder_8h.html#a5">OggFLAC__stream_decoder_new</a>();
98
00231 OggFLAC_API <font class="keywordtype">void</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a6">OggFLAC__stream_decoder_delete</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
101
00234 <font class="comment">/***********************************************************************</font>
102
00235 <font class="comment"> *</font>
103
00236 <font class="comment"> * Public class method prototypes</font>
104
00237 <font class="comment"> *</font>
105
00238 <font class="comment"> ***********************************************************************/</font>
107
00255 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a7">OggFLAC__stream_decoder_set_read_callback</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="OggFLAC_2stream__decoder_8h.html#a1">OggFLAC__StreamDecoderReadCallback</a> value);
109
00272 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a8">OggFLAC__stream_decoder_set_write_callback</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="OggFLAC_2stream__decoder_8h.html#a2">OggFLAC__StreamDecoderWriteCallback</a> value);
111
00289 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a9">OggFLAC__stream_decoder_set_metadata_callback</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="OggFLAC_2stream__decoder_8h.html#a3">OggFLAC__StreamDecoderMetadataCallback</a> value);
113
00306 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a10">OggFLAC__stream_decoder_set_error_callback</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="OggFLAC_2stream__decoder_8h.html#a4">OggFLAC__StreamDecoderErrorCallback</a> value);
115
00320 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a11">OggFLAC__stream_decoder_set_client_data</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <font class="keywordtype">void</font> *value);
117
00335 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a12">OggFLAC__stream_decoder_set_serial_number</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <font class="keywordtype">long</font> serial_number);
119
00350 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a13">OggFLAC__stream_decoder_set_metadata_respond</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="format_8h.html#a97">FLAC__MetadataType</a> type);
121
00366 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a14">OggFLAC__stream_decoder_set_metadata_respond_application</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> FLAC__byte id[4]);
123
00379 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a15">OggFLAC__stream_decoder_set_metadata_respond_all</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
125
00394 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a16">OggFLAC__stream_decoder_set_metadata_ignore</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <a class="code" href="format_8h.html#a97">FLAC__MetadataType</a> type);
127
00410 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a17">OggFLAC__stream_decoder_set_metadata_ignore_application</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder, <font class="keyword">const</font> FLAC__byte id[4]);
129
00423 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a18">OggFLAC__stream_decoder_set_metadata_ignore_all</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
131
00433 OggFLAC_API <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34">OggFLAC__StreamDecoderState</a> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a19">OggFLAC__stream_decoder_get_state</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
133
00445 OggFLAC_API <a class="code" href="FLAC_2stream__decoder_8h.html#a36">FLAC__StreamDecoderState</a> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a20">OggFLAC__stream_decoder_get_FLAC_stream_decoder_state</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
135
00458 OggFLAC_API <font class="keyword">const</font> <font class="keywordtype">char</font> *<a class="code" href="OggFLAC_2stream__decoder_8h.html#a21">OggFLAC__stream_decoder_get_resolved_state_string</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
137
00468 OggFLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a22">OggFLAC__stream_decoder_get_channels</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
139
00478 OggFLAC_API <a class="code" href="format_8h.html#a95">FLAC__ChannelAssignment</a> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a23">OggFLAC__stream_decoder_get_channel_assignment</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
141
00488 OggFLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a24">OggFLAC__stream_decoder_get_bits_per_sample</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
143
00498 OggFLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a25">OggFLAC__stream_decoder_get_sample_rate</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
145
00508 OggFLAC_API <font class="keywordtype">unsigned</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a26">OggFLAC__stream_decoder_get_blocksize</a>(<font class="keyword">const</font> <a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
147
00525 OggFLAC_API <a class="code" href="OggFLAC_2stream__decoder_8h.html#a34">OggFLAC__StreamDecoderState</a> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a27">OggFLAC__stream_decoder_init</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
149
00541 OggFLAC_API <font class="keywordtype">void</font> <a class="code" href="OggFLAC_2stream__decoder_8h.html#a28">OggFLAC__stream_decoder_finish</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
151
00552 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a29">OggFLAC__stream_decoder_flush</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
153
00563 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a30">OggFLAC__stream_decoder_reset</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
155
00580 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a31">OggFLAC__stream_decoder_process_single</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
157
00597 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a32">OggFLAC__stream_decoder_process_until_end_of_metadata</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
159
00614 OggFLAC_API FLAC__bool <a class="code" href="OggFLAC_2stream__decoder_8h.html#a33">OggFLAC__stream_decoder_process_until_end_of_stream</a>(<a class="code" href="structOggFLAC____StreamDecoder.html">OggFLAC__StreamDecoder</a> *decoder);
161
00616 <font class="comment">/* \} */</font>
163
00618 <font class="preprocessor">#ifdef __cplusplus</font>
164
00619 <font class="preprocessor"></font>}
165
00620 <font class="preprocessor">#endif</font>
166
00621 <font class="preprocessor"></font>
167
00622 <font class="preprocessor">#endif</font>
168
</pre></div><hr><address><small>Generated on Fri Feb 4 18:39:11 2005 for FLAC by
169
<a href="http://www.doxygen.org/index.html">
170
<img src="doxygen.gif" alt="doxygen" align="middle" border=0
171
width=110 height=53></a>1.2.14 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
172
© 1997-2002</small></address>