[oss-devel] ossxmix patch to ignore empty mixer group

Yair K. cesium2 at gmail.com
Fri Jun 6 23:46:42 EEST 2008


On Friday 06 June 2008 23:23:48 Hannu Savolainen wrote:
> Hi all,
> 
> I have some great problems in figuring out what the latest ossxmix 
> patches are supposed to do. Could somebody explain the logic?

The total information returned by EXTINFO (i.e. for all controls) forms a tree, but with the unique property that travel is in the opposite direction (leaf to parent).

At start a visible_groups array is inited to zero.
We iterate var i over the array, and every time an inner loop mark the node i 's parents as non-empty in visible_groups. That way, only the leafs will have zero remaining, and these are either empty groups, or other controls (we don't care what is set in visible_groups for them)**. Later, in the large switch below, skip MIXT_GROUP controls which have visible_groups[ctrl] == 0.

** There are two optimizations:
  A. Memoize - do not pass over parents marked by previous passes in the inner loop. Since the result visible_groups is an array, we can use it as is.
  B. When node i is a MIXT_GROUP, skip it in the outer loop. (This is neat, because it prevents empty groups from marking their "parent" as non-empty, and also we don't need memoization for that loop that way).

Yours,
	Yair K.



More information about the oss-devel mailing list