00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00027 #ifndef MPD_DECODER_API_H
00028 #define MPD_DECODER_API_H
00029
00030 #include "check.h"
00031 #include "decoder_command.h"
00032 #include "decoder_plugin.h"
00033 #include "input_stream.h"
00034 #include "replay_gain_info.h"
00035 #include "tag.h"
00036 #include "audio_format.h"
00037 #include "conf.h"
00038
00039 #include <stdbool.h>
00040
00051 void
00052 decoder_initialized(struct decoder *decoder,
00053 const struct audio_format *audio_format,
00054 bool seekable, float total_time);
00055
00063 enum decoder_command
00064 decoder_get_command(struct decoder *decoder);
00065
00073 void
00074 decoder_command_finished(struct decoder *decoder);
00075
00082 double
00083 decoder_seek_where(struct decoder *decoder);
00084
00091 void
00092 decoder_seek_error(struct decoder *decoder);
00093
00104 size_t
00105 decoder_read(struct decoder *decoder, struct input_stream *is,
00106 void *buffer, size_t length);
00107
00114 void
00115 decoder_timestamp(struct decoder *decoder, double t);
00116
00129 enum decoder_command
00130 decoder_data(struct decoder *decoder, struct input_stream *is,
00131 const void *data, size_t length,
00132 uint16_t kbit_rate);
00133
00145 enum decoder_command
00146 decoder_tag(struct decoder *decoder, struct input_stream *is,
00147 const struct tag *tag);
00148
00157 float
00158 decoder_replay_gain(struct decoder *decoder,
00159 const struct replay_gain_info *replay_gain_info);
00160
00169 void
00170 decoder_mixramp(struct decoder *decoder, float replay_gain_db,
00171 char *mixramp_start, char *mixramp_end);
00172
00173 #endif