mirror of
https://github.com/ZDoom/ZMusic.git
synced 2025-03-21 18:10:56 +00:00
- load FluidSynth dynamic library once
https://forum.zdoom.org/viewtopic.php?t=70710
This commit is contained in:
parent
2cae98b442
commit
69692696ec
1 changed files with 18 additions and 28 deletions
|
@ -116,7 +116,6 @@ protected:
|
|||
static TReqProc<FluidSynthModule, int (*)(fluid_synth_t *, const char *, int, char *, int *, int *, int)> fluid_synth_sysex;
|
||||
|
||||
bool LoadFluidSynth(const char *fluid_lib);
|
||||
void UnloadFluidSynth();
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -251,9 +250,6 @@ FluidSynthMIDIDevice::~FluidSynthMIDIDevice()
|
|||
{
|
||||
delete_fluid_settings(FluidSettings);
|
||||
}
|
||||
#ifdef DYN_FLUIDSYNTH
|
||||
UnloadFluidSynth();
|
||||
#endif
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -536,35 +532,29 @@ DYN_FLUID_SYM(fluid_synth_sysex);
|
|||
|
||||
bool FluidSynthMIDIDevice::LoadFluidSynth(const char *fluid_lib)
|
||||
{
|
||||
if (fluid_lib && strlen(fluid_lib) > 0)
|
||||
static bool is_loaded = false;
|
||||
static bool is_checked = false;
|
||||
|
||||
if (!is_checked)
|
||||
{
|
||||
if(!FluidSynthModule.Load({fluid_lib}))
|
||||
if (fluid_lib && strlen(fluid_lib) > 0)
|
||||
{
|
||||
const char* libname = fluid_lib;
|
||||
ZMusic_Printf(ZMUSIC_MSG_ERROR, "Could not load %s\n", libname);
|
||||
is_loaded = FluidSynthModule.Load({ fluid_lib });
|
||||
if (!is_loaded)
|
||||
ZMusic_Printf(ZMUSIC_MSG_ERROR, "Could not load %s\n", fluid_lib);
|
||||
}
|
||||
else
|
||||
return true;
|
||||
|
||||
if (!is_loaded)
|
||||
{
|
||||
is_loaded = FluidSynthModule.Load({ FLUIDSYNTHLIB1, FLUIDSYNTHLIB2 });
|
||||
if (!is_loaded)
|
||||
ZMusic_Printf(ZMUSIC_MSG_ERROR, "Could not load " FLUIDSYNTHLIB1 " or " FLUIDSYNTHLIB2 "\n");
|
||||
}
|
||||
|
||||
is_checked = true;
|
||||
}
|
||||
|
||||
if(!FluidSynthModule.Load({FLUIDSYNTHLIB1, FLUIDSYNTHLIB2}))
|
||||
{
|
||||
ZMusic_Printf(ZMUSIC_MSG_ERROR, "Could not load " FLUIDSYNTHLIB1 " or " FLUIDSYNTHLIB2 "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// FluidSynthMIDIDevice :: UnloadFluidSynth
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void FluidSynthMIDIDevice::UnloadFluidSynth()
|
||||
{
|
||||
FluidSynthModule.Unload();
|
||||
return is_loaded;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue