84
84
00135 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> get_md5_checking() <span class="keyword">const</span>;
85
85
00136 <span class="keyword">virtual</span> FLAC__uint64 get_total_samples() <span class="keyword">const</span>;
86
86
00137 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> get_channels() <span class="keyword">const</span>;
87
00138 <a class="code" href="group__flac__format.html#ga107">virtual ::FLAC__ChannelAssignment</a> get_channel_assignment() <span class="keyword">const</span>;
87
00138 <a class="code" href="group__flac__format.html#ga111">virtual ::FLAC__ChannelAssignment</a> get_channel_assignment() <span class="keyword">const</span>;
88
88
00139 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> get_bits_per_sample() <span class="keyword">const</span>;
89
89
00140 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> get_sample_rate() <span class="keyword">const</span>;
90
90
00141 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> get_blocksize() <span class="keyword">const</span>;
92
00143 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init();
93
00144 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg();
95
00146 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> finish();
97
00148 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> flush();
98
00149 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reset();
100
00151 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_single();
101
00152 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_until_end_of_metadata();
102
00153 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_until_end_of_stream();
103
00154 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> skip_single_frame();
105
00156 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> seek_absolute(FLAC__uint64 sample);
106
00157 <span class="keyword">protected</span>:
107
00159 <a class="code" href="group__flac__stream__decoder.html#ga52">virtual ::FLAC__StreamDecoderReadStatus</a> read_callback(FLAC__byte buffer[], size_t *bytes) = 0;
109
00162 <a class="code" href="group__flac__stream__decoder.html#ga53">virtual ::FLAC__StreamDecoderSeekStatus</a> seek_callback(FLAC__uint64 absolute_byte_offset);
111
00165 <a class="code" href="group__flac__stream__decoder.html#ga54">virtual ::FLAC__StreamDecoderTellStatus</a> tell_callback(FLAC__uint64 *absolute_byte_offset);
113
00168 <a class="code" href="group__flac__stream__decoder.html#ga55">virtual ::FLAC__StreamDecoderLengthStatus</a> length_callback(FLAC__uint64 *stream_length);
115
00171 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> eof_callback();
117
00174 <a class="code" href="group__flac__stream__decoder.html#ga56">virtual ::FLAC__StreamDecoderWriteStatus</a> write_callback(<span class="keyword">const</span> ::<a class="code" href="structFLAC____Frame.html">FLAC__Frame</a> *frame, <span class="keyword">const</span> FLAC__int32 * <span class="keyword">const</span> buffer[]) = 0;
119
00177 <span class="keyword">virtual</span> <span class="keywordtype">void</span> metadata_callback(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata);
121
00180 <span class="keyword">virtual</span> <span class="keywordtype">void</span> error_callback(::<a class="code" href="group__flac__stream__decoder.html#ga57">FLAC__StreamDecoderErrorStatus</a> status) = 0;
123
00182 <span class="preprocessor">#if (defined _MSC_VER) || (defined __BORLANDC__) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)</span>
124
00183 <span class="preprocessor"></span> <span class="comment">// lame hack: some MSVC/GCC versions can't see a protected decoder_ from nested State::resolved_as_cstring()</span>
125
00184 <span class="keyword">friend</span> State;
126
00185 <span class="preprocessor">#endif</span>
127
00186 <span class="preprocessor"></span> ::FLAC__StreamDecoder *decoder_;
129
00188 <a class="code" href="group__flac__stream__decoder.html#ga52">static ::FLAC__StreamDecoderReadStatus</a> read_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__byte buffer[], size_t *bytes, <span class="keywordtype">void</span> *client_data);
130
00189 <a class="code" href="group__flac__stream__decoder.html#ga53">static ::FLAC__StreamDecoderSeekStatus</a> seek_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 absolute_byte_offset, <span class="keywordtype">void</span> *client_data);
131
00190 <a class="code" href="group__flac__stream__decoder.html#ga54">static ::FLAC__StreamDecoderTellStatus</a> tell_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 *absolute_byte_offset, <span class="keywordtype">void</span> *client_data);
132
00191 <a class="code" href="group__flac__stream__decoder.html#ga55">static ::FLAC__StreamDecoderLengthStatus</a> length_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 *stream_length, <span class="keywordtype">void</span> *client_data);
133
00192 <span class="keyword">static</span> FLAC__bool eof_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keywordtype">void</span> *client_data);
134
00193 <a class="code" href="group__flac__stream__decoder.html#ga56">static ::FLAC__StreamDecoderWriteStatus</a> write_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keyword">const</span> ::<a class="code" href="structFLAC____Frame.html">FLAC__Frame</a> *frame, <span class="keyword">const</span> FLAC__int32 * <span class="keyword">const</span> buffer[], <span class="keywordtype">void</span> *client_data);
135
00194 <span class="keyword">static</span> <span class="keywordtype">void</span> metadata_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, <span class="keywordtype">void</span> *client_data);
136
00195 <span class="keyword">static</span> <span class="keywordtype">void</span> error_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, ::<a class="code" href="group__flac__stream__decoder.html#ga57">FLAC__StreamDecoderErrorStatus</a> status, <span class="keywordtype">void</span> *client_data);
137
00196 <span class="keyword">private</span>:
138
00197 <span class="comment">// Private and undefined so you can't use them:</span>
139
00198 Stream(<span class="keyword">const</span> Stream &);
140
00199 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> Stream &);
143
<a name="l00221"></a><a class="code" href="classFLAC_1_1Decoder_1_1File.html">00221</a> <span class="keyword">class </span>FLACPP_API File: <span class="keyword">public</span> Stream {
144
00222 <span class="keyword">public</span>:
146
00224 <span class="keyword">virtual</span> ~File();
148
00226 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(FILE *file);
149
00227 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
150
00228 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(<span class="keyword">const</span> std::string &filename);
151
00229 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(FILE *file);
152
00230 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
153
00231 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(<span class="keyword">const</span> std::string &filename);
154
00232 <span class="keyword">protected</span>:
155
00233 <span class="comment">// this is a dummy implementation to satisfy the pure virtual in Stream that is actually supplied internally by the C layer</span>
156
00234 <a class="code" href="group__flac__stream__decoder.html#ga52">virtual ::FLAC__StreamDecoderReadStatus</a> read_callback(FLAC__byte buffer[], size_t *bytes);
157
00235 <span class="keyword">private</span>:
158
00236 <span class="comment">// Private and undefined so you can't use them:</span>
159
00237 File(<span class="keyword">const</span> File &);
160
00238 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> File &);
166
00244 <span class="preprocessor">#endif</span>
91
00142 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> get_decode_position(FLAC__uint64 *position) <span class="keyword">const</span>;
93
00144 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init();
94
00145 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg();
96
00147 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> finish();
98
00149 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> flush();
99
00150 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> reset();
101
00152 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_single();
102
00153 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_until_end_of_metadata();
103
00154 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> process_until_end_of_stream();
104
00155 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> skip_single_frame();
106
00157 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> seek_absolute(FLAC__uint64 sample);
107
00158 <span class="keyword">protected</span>:
108
00160 <a class="code" href="group__flac__stream__decoder.html#ga52">virtual ::FLAC__StreamDecoderReadStatus</a> read_callback(FLAC__byte buffer[], size_t *bytes) = 0;
110
00163 <a class="code" href="group__flac__stream__decoder.html#ga53">virtual ::FLAC__StreamDecoderSeekStatus</a> seek_callback(FLAC__uint64 absolute_byte_offset);
112
00166 <a class="code" href="group__flac__stream__decoder.html#ga54">virtual ::FLAC__StreamDecoderTellStatus</a> tell_callback(FLAC__uint64 *absolute_byte_offset);
114
00169 <a class="code" href="group__flac__stream__decoder.html#ga55">virtual ::FLAC__StreamDecoderLengthStatus</a> length_callback(FLAC__uint64 *stream_length);
116
00172 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> eof_callback();
118
00175 <a class="code" href="group__flac__stream__decoder.html#ga56">virtual ::FLAC__StreamDecoderWriteStatus</a> write_callback(<span class="keyword">const</span> ::<a class="code" href="structFLAC____Frame.html">FLAC__Frame</a> *frame, <span class="keyword">const</span> FLAC__int32 * <span class="keyword">const</span> buffer[]) = 0;
120
00178 <span class="keyword">virtual</span> <span class="keywordtype">void</span> metadata_callback(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata);
122
00181 <span class="keyword">virtual</span> <span class="keywordtype">void</span> error_callback(::<a class="code" href="group__flac__stream__decoder.html#ga57">FLAC__StreamDecoderErrorStatus</a> status) = 0;
124
00183 <span class="preprocessor">#if (defined _MSC_VER) || (defined __BORLANDC__) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)</span>
125
00184 <span class="preprocessor"></span> <span class="comment">// lame hack: some MSVC/GCC versions can't see a protected decoder_ from nested State::resolved_as_cstring()</span>
126
00185 <span class="keyword">friend</span> State;
127
00186 <span class="preprocessor">#endif</span>
128
00187 <span class="preprocessor"></span> ::FLAC__StreamDecoder *decoder_;
130
00189 <a class="code" href="group__flac__stream__decoder.html#ga52">static ::FLAC__StreamDecoderReadStatus</a> read_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__byte buffer[], size_t *bytes, <span class="keywordtype">void</span> *client_data);
131
00190 <a class="code" href="group__flac__stream__decoder.html#ga53">static ::FLAC__StreamDecoderSeekStatus</a> seek_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 absolute_byte_offset, <span class="keywordtype">void</span> *client_data);
132
00191 <a class="code" href="group__flac__stream__decoder.html#ga54">static ::FLAC__StreamDecoderTellStatus</a> tell_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 *absolute_byte_offset, <span class="keywordtype">void</span> *client_data);
133
00192 <a class="code" href="group__flac__stream__decoder.html#ga55">static ::FLAC__StreamDecoderLengthStatus</a> length_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, FLAC__uint64 *stream_length, <span class="keywordtype">void</span> *client_data);
134
00193 <span class="keyword">static</span> FLAC__bool eof_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keywordtype">void</span> *client_data);
135
00194 <a class="code" href="group__flac__stream__decoder.html#ga56">static ::FLAC__StreamDecoderWriteStatus</a> write_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keyword">const</span> ::<a class="code" href="structFLAC____Frame.html">FLAC__Frame</a> *frame, <span class="keyword">const</span> FLAC__int32 * <span class="keyword">const</span> buffer[], <span class="keywordtype">void</span> *client_data);
136
00195 <span class="keyword">static</span> <span class="keywordtype">void</span> metadata_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, <span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamMetadata.html">FLAC__StreamMetadata</a> *metadata, <span class="keywordtype">void</span> *client_data);
137
00196 <span class="keyword">static</span> <span class="keywordtype">void</span> error_callback_(<span class="keyword">const</span> ::<a class="code" href="structFLAC____StreamDecoder.html">FLAC__StreamDecoder</a> *decoder, ::<a class="code" href="group__flac__stream__decoder.html#ga57">FLAC__StreamDecoderErrorStatus</a> status, <span class="keywordtype">void</span> *client_data);
138
00197 <span class="keyword">private</span>:
139
00198 <span class="comment">// Private and undefined so you can't use them:</span>
140
00199 Stream(<span class="keyword">const</span> Stream &);
141
00200 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> Stream &);
144
<a name="l00222"></a><a class="code" href="classFLAC_1_1Decoder_1_1File.html">00222</a> <span class="keyword">class </span>FLACPP_API File: <span class="keyword">public</span> Stream {
145
00223 <span class="keyword">public</span>:
147
00225 <span class="keyword">virtual</span> ~File();
149
00227 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(FILE *file);
150
00228 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
151
00229 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init(<span class="keyword">const</span> std::string &filename);
152
00230 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(FILE *file);
153
00231 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
154
00232 <a class="code" href="group__flac__stream__decoder.html#ga51">virtual ::FLAC__StreamDecoderInitStatus</a> init_ogg(<span class="keyword">const</span> std::string &filename);
155
00233 <span class="keyword">protected</span>:
156
00234 <span class="comment">// this is a dummy implementation to satisfy the pure virtual in Stream that is actually supplied internally by the C layer</span>
157
00235 <a class="code" href="group__flac__stream__decoder.html#ga52">virtual ::FLAC__StreamDecoderReadStatus</a> read_callback(FLAC__byte buffer[], size_t *bytes);
158
00236 <span class="keyword">private</span>:
159
00237 <span class="comment">// Private and undefined so you can't use them:</span>
160
00238 File(<span class="keyword">const</span> File &);
161
00239 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> File &);
167
00245 <span class="preprocessor">#endif</span>
169
170
<div class="copyright">