|
@@ -20,25 +20,33 @@
|
|
|
static struct {
|
|
|
fluid_settings_t* settings; ///< FluidSynth settings handle
|
|
|
fluid_synth_t* synth; ///< FluidSynth synthesizer handle
|
|
|
fluid_player_t* player; ///< FluidSynth MIDI player handle
|
|
|
std::mutex synth_mutex; ///< Guard mutex for synth access
|
|
|
} _midi; ///< Metadata about the midi we're playing.
|
|
|
|
|
|
/** Factory for the FluidSynth driver. */
|
|
|
static FMusicDriver_FluidSynth iFMusicDriver_FluidSynth;
|
|
|
|
|
|
/** List of sound fonts to try by default. */
|
|
|
static const char *default_sf[] = {
|
|
|
/* Debian/Ubuntu/OpenSUSE preferred */
|
|
|
/* FluidSynth preferred */
|
|
|
/* See: https://www.fluidsynth.org/api/settings_synth.html#settings_synth_default-soundfont */
|
|
|
"/usr/share/soundfonts/default.sf2",
|
|
|
|
|
|
/* Debian/Ubuntu preferred */
|
|
|
/* See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929185 */
|
|
|
"/usr/share/sounds/sf3/default-GM.sf3",
|
|
|
|
|
|
/* OpenSUSE preferred */
|
|
|
"/usr/share/sounds/sf2/FluidR3_GM.sf2",
|
|
|
|
|
|
/* RedHat/Fedora/Arch preferred */
|
|
|
"/usr/share/soundfonts/FluidR3_GM.sf2",
|
|
|
|
|
|
/* Debian/Ubuntu/OpenSUSE alternatives */
|
|
|
"/usr/share/sounds/sf2/TimGM6mb.sf2",
|
|
|
"/usr/share/sounds/sf2/FluidR3_GS.sf2",
|
|
|
|
|
|
nullptr
|
|
|
};
|
|
|
|