On Sat, 7 Jul 2007, Charles Henry wrote:
I was wondering if you could clarify for me what types of data structures you are pointing to, because I could think of an application that this would solve.
In modern GridFlow, "grid" messages (the only special messages in GridFlow) contain one single fake pointer which is always pointing to a GridOutlet structure. When an object receives that, it calls ->callback(x) on the structure, where x has to be a GridInlet*. This subscribes the GridInlet to the streaming that will be performed by the GridOutlet as soon as the message handler returns.
As of now, this is always ever done by grid.c, so actual grid-handling pd classes named like [#whatever] never know about this and it could actually change from version to version (and it did). When patching, you are not allowed to assume anything about the contents of the grid message.
For a while now, I was wondering how to include a wave packets transform in pd. The wave++ library has a wave packets transform, where the structure of the transform is provided as a tree, and the tree is a class.
We've had an experimental datatype in LTI (a C++ library wrapped by GridFlow) for pointing to special (non-gridoutlet) structs like that but it's not like we're so proud of it.
Btw, if that's a balanced tree, it's rather easy to flatten it into an array in a predictable way. You've thought about that? (Are you talking about wavelets?)
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada