[gmpi] Re: ok, who is *NOT* "too busy"?

> As a plugin coder, you may want to support multiple versions of the API.
> using QueryInterface for API versioning means that you *will* have to be aware of it, doesn't it?


Well, think about VST. in VST your plugin derives from audioeffectx ( a class provided by the SDK). When a newer version of the SDK is released, Stienberg update audioeffectx. You simply recompile your plugin with the newer version.
At the lower level, the framework has been extended, but your plugin remains unaffected (unless you choose to take advantage of the new features).


GMPI is similar. Sitting on top of the COM layer is the GMPI_Plugin class (provided by the SDK). Your plugin sub-classes GPMI_Plugin.
Most upgrades to GMPI will involve bug-fixes and additions to the feature set. Therefore it would be usual for a new version of the SDK to be backward compatible. When an SDK upgrade is released, a simple re-compile should be all that is needed to bring your plugin up-to-date.


Queryinterface() is handled on your behalf by GMPI_Plugin ( see GMPI_Plugin::QueryInterface() ). As the GMPI framework is extended, GMPI_Plugin::QueryInterface() will be extended to support multiple versions of the IGMPI_Plugin interface.
Even then, there's no need for the plugin coder to deal with COM directly.


The intention is for the SDK-provided GMPI_Plugin to deal with the COM stuff. Your plugin is the next 'layer' up. Your plugin uses only standard C++.
Say you need to communicate to the host, for example, that your plugin supports GMPI V2. One possible setup is for your plugin to indicate to the base class via a simple flag or version number. Inside QueryInterface() the base class checks this flag before replying to the host.


Best Regards,
Jeff


Tim Hockin wrote:
On Sat, Apr 23, 2005 at 08:35:00AM +1200, Jeff McClintock wrote:

Yeah, there has been, I feel, excessive concern about the complexities of using QueryInterface() etc. As a plugin coder, you don't deal with it directly.


As a plugin coder, you may want to support multiple versions of the API.
using QueryInterface for API versioning means that you *will* have to be
aware of it, doesn't it?

----------------------------------------------------------------------
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




----------------------------------------------------------------------
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

Other related posts: