[gmpi] Re: ok, who is *NOT* "too busy"?
- From: Jeff McClintock <jeffmcc@xxxxxxxxxx>
- To: gmpi@xxxxxxxxxxxxx
- Date: Sat, 23 Apr 2005 10:41:33 +1200
> 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
- Follow-Ups:
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Jeff McClintock
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Tim Hockin
- References:
- [gmpi] ok, who is *NOT* "too busy"?
- From: Tim Hockin
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Mike Berry
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Jeff McClintock
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Tim Hockin
Other related posts:
- » [gmpi] ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
- » [gmpi] Re: ok, who is *NOT* "too busy"?
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
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Jeff McClintock
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Tim Hockin
- [gmpi] ok, who is *NOT* "too busy"?
- From: Tim Hockin
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Mike Berry
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Jeff McClintock
- [gmpi] Re: ok, who is *NOT* "too busy"?
- From: Tim Hockin