mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-02-25 21:31:09 +00:00
- Support loading either fluidsynth.dll or libfluidsynth.dll on Windows.
SVN r3927 (trunk)
This commit is contained in:
parent
bfae51ed2e
commit
4f71176ed6
1 changed files with 14 additions and 7 deletions
|
@ -50,9 +50,11 @@
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#ifndef _M_X64
|
#ifndef _M_X64
|
||||||
#define FLUIDSYNTHLIB "fluidsynth.dll"
|
#define FLUIDSYNTHLIB1 "fluidsynth.dll"
|
||||||
|
#define FLUIDSYNTHLIB2 "libfluidsynth.dll"
|
||||||
#else
|
#else
|
||||||
#define FLUIDSYNTHLIB "fluidsynth64.dll"
|
#define FLUIDSYNTHLIB1 "fluidsynth64.dll"
|
||||||
|
#define FLUIDSYNTHLIB2 "libfluidsynth64.dll"
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
@ -665,16 +667,21 @@ bool FluidSynthMIDIDevice::LoadFluidSynth()
|
||||||
{ (void **)&fluid_synth_sysex, "fluid_synth_sysex" },
|
{ (void **)&fluid_synth_sysex, "fluid_synth_sysex" },
|
||||||
};
|
};
|
||||||
int fail = 0;
|
int fail = 0;
|
||||||
|
const char *libname;
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
FluidSynthDLL = LoadLibrary(FLUIDSYNTHLIB);
|
FluidSynthDLL = LoadLibrary((libname = FLUIDSYNTHLIB1));
|
||||||
if (FluidSynthDLL == NULL)
|
if (FluidSynthDLL == NULL)
|
||||||
{
|
{
|
||||||
Printf(TEXTCOLOR_RED"Could not load " FLUIDSYNTHLIB "\n");
|
FluidSynthDLL = LoadLibrary((libname = FLUIDSYNTHLIB2));
|
||||||
|
if (FluidSynthDLL == NULL)
|
||||||
|
{
|
||||||
|
Printf(TEXTCOLOR_RED"Could not load " FLUIDSYNTHLIB1 " or " FLUIDSYNTHLIB2 "\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
FluidSynthSO = dlopen(FLUIDSYNTHLIB, RTLD_LAZY);
|
FluidSynthSO = dlopen((libname = FLUIDSYNTHLIB), RTLD_LAZY);
|
||||||
if (FluidSynthSO == NULL)
|
if (FluidSynthSO == NULL)
|
||||||
{
|
{
|
||||||
Printf(TEXTCOLOR_RED"Could not load " FLUIDSYNTHLIB ": %s\n", dlerror());
|
Printf(TEXTCOLOR_RED"Could not load " FLUIDSYNTHLIB ": %s\n", dlerror());
|
||||||
|
@ -691,7 +698,7 @@ bool FluidSynthMIDIDevice::LoadFluidSynth()
|
||||||
#endif
|
#endif
|
||||||
if (proc == NULL)
|
if (proc == NULL)
|
||||||
{
|
{
|
||||||
Printf(TEXTCOLOR_RED"Failed to find %s in %s\n", imports[i].FuncName, FLUIDSYNTHLIB);
|
Printf(TEXTCOLOR_RED"Failed to find %s in %s\n", imports[i].FuncName, libname);
|
||||||
fail++;
|
fail++;
|
||||||
}
|
}
|
||||||
*imports[i].FuncPointer = (void *)proc;
|
*imports[i].FuncPointer = (void *)proc;
|
||||||
|
|
Loading…
Reference in a new issue