[gmpi] The Master Plan

  • From: Jeff McClintock <jeffmcc@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Wed, 02 Mar 2005 14:26:34 +1300

We've mostly completed the first stage of the GMPI Prototype plugin. The aim being to design the low level of the GMPI API. i.e. how the dll loads, how the host calls functions in the plugin. Also to ensure this mechanism works on at least Windows, Linux, and Mac.
It's worth mentioning that the GMPI prototype is only one possible way to write a plugin. The implementation details are not as important as the interfaces, the API between host and plugin. The API is the *real* GMPI.
From that point of view we have so far designed only three things. A binary interface, The factory, and the basis of the Plugin (the plugin has no real functionality, only two placeholder functions). COM stuff omitted for clarity...


struct IGMPI_FactoryVtable
{
GMPI_RESULT (*CreateInstance) ( struct IGMPI_Factory *, const GMPI_GUID *, void **);
};


struct IGMPI_PluginVtable
{
    GMPI_RESULT   (*Placeholder1)   ( struct IGMPI_Plugin *, int32_t);
    GMPI_RESULT   (*Placeholder2)   ( struct IGMPI_Plugin *, int32_t *);
};


Why did we "just start coding" without a design?

The implication is that we are Specing GMPI in stages. Design and programming are iterative activities. By breaking down the design into manageable chunks, we deal with less complexity at a time. The prototype exist only to verify the design.
The prototype is not finalized until all of the GMPI spec is complete and has been publicly reviewed. Don't be surprised if we need to redesign parts of the prototype as the overall picture become clearer.


The other implication is: We are limited to designing from the 'bottom up'. For example we can't spec MIDI yet, MIDI relies on the event system. There's no way of testing MIDI yet. Likewise, no point specing the GUI until we have parameters working.

So what is the best order, broadly speaking, to proceed?

MIDI, Audio, Parameters, Events, GUI etc being your building blocks..

Opinions?

Jeff McClintock



----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules:  Please stay on topic.  You are responsible for your own
words.  Please respect your fellow subscribers.  Please do not
redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: