vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Thu Nov 24 21:29:13 2011 +0200| [d6d9ee3386255deca484d6ac225fce9151edf9aa] | committer: Rémi Denis-Courmont
FluidSynth: look for sound font in /usr/share/sounds/sf2/ by default > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d6d9ee3386255deca484d6ac225fce9151edf9aa --- modules/codec/fluidsynth.c | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/modules/codec/fluidsynth.c b/modules/codec/fluidsynth.c index e8d8222..7c3ee9b 100644 --- a/modules/codec/fluidsynth.c +++ b/modules/codec/fluidsynth.c @@ -31,6 +31,13 @@ #include <vlc_dialog.h> #include <vlc_charset.h> +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif +#ifdef _POSIX_VERSION +# include <glob.h> +#endif + /* On Win32, we link statically */ #ifdef WIN32 # define FLUIDSYNTH_NOT_A_DLL @@ -46,7 +53,7 @@ # define fluid_synth_channel_pressure(synth, channel, p) (FLUID_FAILED) #endif -#define SOUNDFONT_TEXT N_("Sound fonts (required)") +#define SOUNDFONT_TEXT N_("Sound fonts") #define SOUNDFONT_LONGTEXT N_( \ "A sound fonts file is required for software synthesis." ) @@ -104,6 +111,26 @@ static int Open (vlc_object_t *p_this) msg_Err (p_this, "cannot load sound fonts file %s", font_path); free (font_path); } +#ifdef _POSIX_VERSION + else + { + glob_t gl; + + if (!glob ("/usr/share/sounds/sf2/*.sf2", GLOB_NOESCAPE, NULL, &gl)) + { + for (size_t i = 0; i < gl.gl_pathc; i++) + { + const char *path = gl.gl_pathv[i]; + + p_sys->soundfont = fluid_synth_sfload (p_sys->synth, path, 1); + if (p_sys->soundfont != -1) + break; /* it worked! */ + msg_Err (p_this, "cannot load sound fonts file %s", path); + } + globfree (&gl); + } + } +#endif if (p_sys->soundfont == -1) { _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
