Hi everybody,

I read a few emails on this mailing-list about adding other plugins to gregorio
(a MIDI output plugin for instance) and I am pretty sure Elie can come up with
many other plugin ideas :)

The thing is, I think the current plugin structure has two major flaws:
 - a plugin author must modify gregorio core to get one's plugin loaded
 - plugin handling is done in gregorio-utils.c instead of libgregorio which
   makes usage of gregorio engine in, let's say, a third-party GTK gui app
   impossible

Here is a series of patch adding a brand new plugin sub-system to libgregorio
and showing how plugin should be modified to comply with it.  The main design
principles are:
 - libgregorio provides plugin loading/unloading functions
 - a plugin is described by a structure containing a plugin_info structure and
   the actual LTDL handle.  This plugin structure is totally opaque to the
   outside world.  Only the plugin_info structure can be accessed through a
   call to gregrorio_plugin_get_info()
 - the plugin_info structure holds data such as plugin name, plugin author,
   plugin type (input or output) and pointers to the write or read functions

I decided not to push it to the current trunk or a new branch since it involves
quite heavy changes to the current codebase.  I wanted to ask your opinion
before getting any further.

Please note that this is still a work in progress ; I am still working on
gregorio-utils.c.

Cheers,

-- 
Jérémie

_______________________________________________
Gregorio-devel mailing list
[email protected]
https://mail.gna.org/listinfo/gregorio-devel

Répondre à