[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: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- Follow-Ups:
- [gmpi] Re: The Master Plan
- From: Tim Hockin
- References:
- [gmpi] Re: Plugin Factory Update
- From: David Olofson
- [gmpi] Re: Plugin Factory Update
- From: Jeff McClintock
Other related posts:
- » [gmpi] The Master Plan
- » [gmpi] Re: The Master Plan
- » [gmpi] Re: The Master Plan
- » [gmpi] Re: The Master Plan
- » [gmpi] Re: The Master Plan
Why did we "just start coding" without a design?
- [gmpi] Re: The Master Plan
- From: Tim Hockin
- [gmpi] Re: Plugin Factory Update
- From: David Olofson
- [gmpi] Re: Plugin Factory Update
- From: Jeff McClintock