Plugins in Control of the Host

How do you allow plugins to control aspects of the host without running into conflicts?

For instance if two different plugins want to control the tempo how do you prevent them from sending contradictory information to the host?

The host provides a service interface for the 'thing' that can be controlled. The plugin advertises its ability to control that 'thing' during Profile Negotiation. The host decides (perhaps based on what the user does) what plugin gets the service in its plugin context. Only one plugin (context) receives a service instance. The other one does not.

Whether or not this can change during the lifetime of the plugin needs to be investigated. All one needs is a notification mechanism that the service has become available to the plugin...

Another variation would be to let the plugin generate parameter-change events during the processing calls. The host could just ignore the events coming from the plugins that did not have control. It would be nice (to have) if we had some way of communicating this to the plugin to save it the time and resources to generate these events that are not used anyway.

Last edited Oct 26, 2013 at 6:28 AM by obiwanjacobi, version 4