On Thu, Jan 01, 2004 at 09:12:03PM -0800, Chris Grigg wrote: > Tim said: > >Really, I can't see why ANY plugin > >would want to know about gesture events AT ALL. They really are hints to > >the host. > > But earlier Tim also said: > >I don't think plugs have any need to be gesture aware, outside of plugs > >that > >host other plugs. > > ...which I think is more right. In other words: Because a plug might > be a host, don't we have to support gesture events in the plug API? As I thought more about it: Imagine control-outputs being virtually wired to control-inputs. In the case of multiple senders to one receiver you have a merge box or priority-based switch (the host's job). What will a sub-host plugin DO with gesture events? Gesture events are not recorded as part of automation. Gesture events are really a notification from the sender that "I want access to this control" and "until further notice, these events are part of the same logical group". With that information, the OUTERMOST host can handle an undo event or touch automation. If we send it to sub-hosts and plugins, then are we expecting them to have a DIFFERENT undo mechanism than the outermost host? I hope not. Gesture start/end really DON'T matter to the receiver at all. What does a plugin care if it receives events inside a gesture or outside? All a plugin should care about is that it received events. (*) The gesture start/end events are sent so the HOST will see them on the "wire" and do the right thing. In fact, the ONLY reason they need to be events at all, and not simply a host callback + gesture ID is this case: * Automation engine sending events to param A and B * I click the GUI for param A, but don't move it. I want to override the automation. * The GUI sends a gesture-start to A, which the host sees and stops sending automation for A, but keeps sending for B. No actual parameter changes are sent, just a gesture start/end. Handling multiple controls in a gesture is even more fun: * Automation engine sending events to param A and B * I click the GUI an X/Y controller for A and B but don't move it. I want to override the automation. * The GUI sends a gesture-start to A and a gesture-start to B, which the host sees and stops sending automation for A and B. But how does the host know those two seemingly disparate gestures are the same? <Big Breath!> A gesture ID. The sender requests a getsure ID from the host: * Automation engine sending events to param A and B * I click the GUI an X/Y controller for A and B but don't move it. I want to override the automation. * The GUI plugin gets a gesture ID, G, from the host. * The GUI sends a gesture-start(g) to A and a gesture-start(g) to B, which the host sees and stops sending automation for A and B. Am I making sense or making a mess? (*) If we do send gesture start/end events to plugin, you KNOW some coder will use them for something. Plugin-specific touch automation mode or something. So we probably should just send them that way. :) Tim ---------------------------------------------------------------------- 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