[gmpi] Re: Topic 8: Parameters

  • From: Mike Berry <mberry@xxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Sat, 09 Aug 2003 10:37:29 -0600

How about this:

1.) Plugins have a non-instance-based call GetVersion(), which returns an integer version identifier.

2.) Plugins have a non-instance-based call GetVersionBehavior() which takes a version number in and returns a behavior code out of the following list:

a) VersionNotSupported. This means that the plugin cannot accept data from the specified version. This could be simply because it is too old to still have support, or it is an unrecognized future version.

b) VersionEmulated. This means that the plugin can behave identically as if it were the version requested. Parameter lists will match the old verison.

c) VersionEmulatedNoUI. This means that the plugin can behave identically for rendering but cannot display custom UI for the version requested.

d) VersionInterpreted. This means that the plugin does not actually run the old data, but will accept it and transform it into the new data format. In this situation, the plugin must support ParameterInterpretVersion(), which takes a parameter value in with a version number, and returns a parameter value in the new version space. This could mean range changing, arb data rewriting, whatever. This way the host does a one time pass on all of its saved data in the old version and updates it to the new version data.

e) VersionIdentical. There is no host-visible change between the version and no action needs to be taken.

The constructor for plugin instances then takes a version number of the requested version to instanciate. For VersionNotSupported and VersionInterpreted, and version number other than the current one returned by GetVersion will fail.

Marc Poirier wrote:

Oh yes, copy protection (can't we just agree to disallow copy protection
in GMPI? ;-)

Okay, well I personally have no objection to this idea as long as 1) it is
definitely optional and 2) it's not considered the only way to support
different-version state data.  I think that the first expectation should
be that the plugin will interpret the data, if possible, but if the plugin
supports this old version emulation mode, then the host can choose to try
that with the old state data (but if that fails, then the host would try
seeing if the plugin might still be able to interpret the data).  How does
that sound (hoping that was at least coherent)?

Marc


--- Mike Berry wrote:


Well, I never thought that this would be a required feature of any plugin. But I think that it would be very cool to allow GMPI to support it, in order to allow users to not have to worry about keeping all of those old plugs lying around and figuring out how to get them reinstalled, particularly if there is also some kind of copy protection system associated with them as well.


__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

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




--
Mike Berry
Adobe Systems


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