32 #ifndef FLACPP__DECODER_H
33 #define FLACPP__DECODER_H
120 virtual bool is_valid()
const;
121 inline operator bool()
const {
return is_valid(); }
124 virtual bool set_ogg_serial_number(
long value);
125 virtual bool set_md5_checking(
bool value);
127 virtual bool set_metadata_respond_application(
const FLAC__byte
id[4]);
128 virtual bool set_metadata_respond_all();
130 virtual bool set_metadata_ignore_application(
const FLAC__byte
id[4]);
131 virtual bool set_metadata_ignore_all();
134 State get_state()
const;
135 virtual bool get_md5_checking()
const;
136 virtual FLAC__uint64 get_total_samples()
const;
137 virtual unsigned get_channels()
const;
139 virtual unsigned get_bits_per_sample()
const;
140 virtual unsigned get_sample_rate()
const;
141 virtual unsigned get_blocksize()
const;
142 virtual bool get_decode_position(FLAC__uint64 *position)
const;
147 virtual bool finish();
149 virtual bool flush();
150 virtual bool reset();
152 virtual bool process_single();
153 virtual bool process_until_end_of_metadata();
154 virtual bool process_until_end_of_stream();
155 virtual bool skip_single_frame();
157 virtual bool seek_absolute(FLAC__uint64 sample);
172 virtual bool eof_callback();
178 virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata);
183 #if (defined _MSC_VER) || (defined __BORLANDC__) || (defined __GNUG__ && (__GNUG__ < 2 || (__GNUG__ == 2 && __GNUC_MINOR__ < 96))) || (defined __SUNPRO_CC)
193 static FLAC__bool eof_callback_(const ::FLAC__StreamDecoder *decoder,
void *client_data);
195 static void metadata_callback_(const ::FLAC__StreamDecoder *decoder, const ::FLAC__StreamMetadata *metadata,
void *client_data);
200 void operator=(
const Stream &);
239 void operator=(
const File &);