diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | doc/user.xml | 30 | ||||
-rw-r--r-- | src/decoder/mikmod_plugin.c | 15 |
3 files changed, 42 insertions, 4 deletions
@@ -20,6 +20,7 @@ ver 0.16 (20??/??/??) - ffmpeg: convert metadata to generic format - sndfile: new decoder plugin based on libsndfile - flac: load external cue sheet when no internal one + - mikmod: sample rate is configurable - mpg123: new decoder plugin based on libmpg123 - sidplay: support sub-tunes - sidplay: implemented songlength database diff --git a/doc/user.xml b/doc/user.xml index 500a74b67..09868eb33 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -590,7 +590,35 @@ cd mpd-version</programlisting> <section> <title>Decoder plugins</title> - <para></para> + <section> + <title><varname>mikmod</varname></title> + + <para> + Module player based on MikMod. + </para> + + <informaltable> + <tgroup cols="2"> + <thead> + <row> + <entry>Setting</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry> + <varname>sample_rate</varname> + </entry> + <entry> + Sets the sample rate generated by + <filename>libmikmod</filename>. Default is 44100. + </entry> + </row> + </tbody> + </tgroup> + </informaltable> + </section> </section> <section> diff --git a/src/decoder/mikmod_plugin.c b/src/decoder/mikmod_plugin.c index 720196333..74eb48ee9 100644 --- a/src/decoder/mikmod_plugin.c +++ b/src/decoder/mikmod_plugin.c @@ -100,11 +100,20 @@ static MDRIVER drv_mpd = { VC_VoiceRealVolume }; +static unsigned mikmod_sample_rate; + static bool -mikmod_decoder_init(G_GNUC_UNUSED const struct config_param *param) +mikmod_decoder_init(const struct config_param *param) { + unsigned sample_rate; static char params[] = ""; + mikmod_sample_rate = config_get_block_unsigned(param, "sample_rate", + 44100); + if (!audio_valid_sample_rate(mikmod_sample_rate)) + g_error("Invalid sample rate in line %d: %u", + param->line, sample_rate); + md_device = 0; md_reverb = 0; @@ -112,7 +121,7 @@ mikmod_decoder_init(G_GNUC_UNUSED const struct config_param *param) MikMod_RegisterAllLoaders(); md_pansep = 64; - md_mixfreq = 44100; + md_mixfreq = mikmod_sample_rate; md_mode = (DMODE_SOFT_MUSIC | DMODE_INTERP | DMODE_STEREO | DMODE_16BITS); @@ -155,7 +164,7 @@ mikmod_decoder_file_decode(struct decoder *decoder, const char *path_fs) /* Prevent module from looping forever */ handle->loop = 0; - audio_format_init(&audio_format, 44100, 16, 2); + audio_format_init(&audio_format, mikmod_sample_rate, 16, 2); assert(audio_format_valid(&audio_format)); secPerByte = |