From 02325d2edec3c8ac733f4565595d27127cb5c9c1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 15 Aug 2012 00:51:45 +0200 Subject: [PATCH] decoder/fluidsynth: add "soundfont" setting Replaces the old global "soundfont" which never worked. --- doc/user.xml | 31 +++++++++++++++++++++++++ src/decoder/fluidsynth_decoder_plugin.c | 13 ++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/doc/user.xml b/doc/user.xml index fdfbc4419..bb83674db 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -818,6 +818,37 @@ systemctl start mpd.socket +
+ <varname>fluidsynth</varname> + + + MIDI decoder based on libfluidsynth. + + + + + + + Setting + Description + + + + + + soundfont + + + The absolute path of the soundfont file. Defaults + to + /usr/share/sounds/sf2/FluidR3_GM.sf2. + + + + + +
+
<varname>mikmod</varname> diff --git a/src/decoder/fluidsynth_decoder_plugin.c b/src/decoder/fluidsynth_decoder_plugin.c index 1fef209bc..ed0efdd99 100644 --- a/src/decoder/fluidsynth_decoder_plugin.c +++ b/src/decoder/fluidsynth_decoder_plugin.c @@ -28,6 +28,8 @@ #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "fluidsynth" +static const char *soundfont_path; + /** * Convert a fluidsynth log level to a GLib log level. */ @@ -65,8 +67,12 @@ fluidsynth_mpd_log_function(int level, char *message, G_GNUC_UNUSED void *data) } static bool -fluidsynth_init(G_GNUC_UNUSED const struct config_param *param) +fluidsynth_init(const struct config_param *param) { + soundfont_path = + config_get_block_string(param, "soundfont", + "/usr/share/sounds/sf2/FluidR3_GM.sf2"); + fluid_set_log_function(LAST_LOG_LEVEL, fluidsynth_mpd_log_function, NULL); @@ -86,17 +92,12 @@ fluidsynth_file_decode(struct decoder *decoder, const char *path_fs) char setting_verbose[] = "synth.verbose"; char setting_yes[] = "yes"; */ - const char *soundfont_path; fluid_settings_t *settings; fluid_synth_t *synth; fluid_player_t *player; int ret; enum decoder_command cmd; - soundfont_path = - config_get_string("soundfont", - "/usr/share/sounds/sf2/FluidR3_GM.sf2"); - /* set up fluid settings */ settings = new_fluid_settings();