On Mon, 3 Mar 2003 11:00:52 +0100
torbenh(a)gmx.de wrote:
// First add all children of this
I think that will break the recursion, as they won't be iterated through
later, but you may be on the right track.
what are your new features ?
16 (sixteen!) new plugins - mostly logic ones for building strange
sequencers and a much more refined GUI following the discussions we had
on this list. Quite a lot of other bits too, like preliminary OSX
support.
There is a screenshot which shows the new GUI here:
http://www.pawfal.org/Software/SSM
Basically we ditched the seperate windows.
I could have a
quick go at fixing it up in the harness, give you
something you
can drop in and try. Maybe code it so you can flip an alternative
algorithm in and out.
Would need to know...
1) the exact semantics of "Terminal"... which nodes are marked
terminal and why. I can see how/where they're marked, but haven't
looked into why. (Maybe I should just read the code).
Terminals are outputs...
there are input terminals but they are not used in 0.2.0...
Output terminal modules (OSS,Jack,DiskWriter) are needed to be flagged
to resolve perfectly circular patches (eg Jack -> Echo -> Jack). The
Graphsort falls back on this if it can't find a root by itself.
2) any
non-obvious requirements on the sort order.
3) how, if at all, the rest of the app is sensitive to the internal
implementation
of the GraphSort class.
Sort is only called from GraphSort.C seems to be ok for you....
Indeed, the implementation shouldn't affect anything else. No special
requirements that I can think of, except it shouldn't be too slow, but
it's currently a recursive function it probably couldn't get much slower
- and it doesn't impact the performance at the moment.
dave