[gmpi] Re: 3.11 topic: Dynamic plugin structure

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 30 Apr 2004 10:32:30 -0700

On Fri, Apr 30, 2004 at 11:42:11AM +0200, David Olofson wrote:
> When the host wants plugins to ask before changing their structure, it 
> just adds GMPI_PROP_STRUCTURE to the 'flags' argument. Then, if the 
> property change results in any parameters being added or removed, the 
> plugin will ask host->structure_check() if each change is ok. If any 
> change is refused, the plugin refuses the property change and 
> plugin->set_property() returns an error code.

Simpler if the plugin ALWAYS checks, and the host can just have a no-op
function pointer.  Less conditionals, less branching, less logic.

However, when does a host ENACT the changes?  Can't be right away, since a
later change might fail.  YOu need to ACK/NAK all the changes atomically.
otherwise there is too much time between.

I think we can worry about this later, really.  Maybe something like a
diff makes sense.  A list of params that are being removed, a list of
params that are being added.  Any param ID that shows up in both lists is
being changed.  Something like that.

It gets ugly when you can change anything about a parameter.  For example,
can an ENUM change and add/remove states?  Can a boolean turn into a
float?

It seems like changing a datatype is not allowed, but maybe changing the
range or the enum states could be useful.  Changing flags, such as
hidden/not-hidden, is certainly powerful.  We can decide on all that
protocol when that comes up - at spec time.

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