On Mon, 3 Mar 2003 11:00:52 +0100 [EMAIL PROTECTED] 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