Hello Johannes,

Seeing as I'm the one responsible for converting FluidSynth over to glib in
the first place, I thought it is only right that I respond ;-)

Prior to FluidSynth depending on glib, there was a bit of platform support
code.  This code was error prone, somewhat hard to maintain, and often
limited supported platforms.  Leveraging off of glib meant that all of this
code could be removed and FluidSynth would automatically be available on
any platform glib supports.  So this was primarily a convenience for
developers.

However, there are cases where it would be nice to not have this
dependency.  Embedded and mobile systems use is one example in addition to
the Windows use case you describe.  However, from what I have gathered,
there are versions of glib that do support Win9x which also meet the
minimum required version for FluidSynth.  FluidSynth currently depends on
glib 2.6.5+.  This email thread (
http://gtk.10911.n7.nabble.com/Last-supported-version-of-GTK-for-Win9x-ME-td57072.html)
suggests that glib supported win9x with versions as late as 2.6.10 at least
(though it is actually talking about GTK in this case - which glib is a
dependency of).

Having said all that, it would be nice to have the ability to build a
possibly stripped down version of FluidSynth which would utilize a user
defined compatibility layer.  I did a quick glance at the current source
code.  From what I an tell, the hash table code is native to FluidSynth and
was lifted from glib sources.  The majority of the glib subsystem use is
related to thread creation/management, thread locking primitives, thread
signaling, thread private data, and atomic data operations.  For the single
thread use case, a lot of this code is not needed.  Internally the
FluidSynth source code still has it's own compatibility layer and from what
I can see does not reference glib directly.  The majority of this interface
is defined in utils/fluid_sys.c and utils/fluid_sys.h.  Defining platform
specific versions of these files would provide what I think you are
seeking.  A lot of those primitives are fairly simple really, and could
probably be easily lifted from glib sources for use on a specific platform.

At any rate, seems like a good idea.  It would take a little work though.

Best regards,

Element



On Wed, Jan 13, 2016 at 6:52 AM, Johannes Schickel <lordh...@gmail.com>
wrote:

> Hello,
>
> first of all thank you for your awesome project!
>
> I am a member of ScummVM (http://www.scummvm.org) and I am currently
> looking into getting our FluidSynth support a bit more up to speed (i.e.
> get it into more of our ports, updating to the latest version, etc). It
> looks like there are some obstacles for this though. The biggest one is the
> glib dependency. For example, modern glib versions do not support Win9x
> anymore (2.6.9 is the last one to support this AFAICT from:
> http://gtk-win.sourceforge.net/home/index.php/Main/Downloads), which is
> some target we still support.
>
> From a quick look at FluidSynth I have the feeling libfluidsynth includes
> a lot of code we are not interested in for ScummVM. We are only really
> interested in the actual synthesizer part. I hoped this part would not
> depend on glib, however I found references to glib's hash table and thread
> code. Is there any chance for the future that FluidSynth's core synthesizer
> could be built standalone and without glib dependency? This would allow us
> to switch to a version more up to date than FluidSynth 1.0.9.
>
> Thanks,
> Johannes
>
> _______________________________________________
> fluid-dev mailing list
> fluid-dev@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/fluid-dev
>
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to