Clive Wright kirjoitti: > Hannu Savolainen wrote: > >> Yair K. kirjoitti: >> >>> 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. >>> >>> >> The update_counter feature does the same so the visible_groups array can >> be removed. So MIXT_GROUP controls can be skipped if their >> update_counter==0. >> >> Best regards, >> >> Hannu >> > > I had assumed from the above that groups with update_counter = 0 were > empty groups and could be dropped, removing the necessity for a > visible_groups array or other method of checking for empty groups. > This is the idea.
However empty groups should not be "dropped" completely since they may get populated later (when ossxmix is running). If that happens then ossxmix should be able to show the group at that moment. > Sadly it appears that this does not currently apply to all drivers as > using this counter in ossxmix with the hdaudio driver removes all groups > other than those produced by vmix. > There is apparently a bug somewhere. I will take a look. > Is it the intention that other drivers will be upgraded or will using a > visible_groups array remain the only safe method of deciding which > groups within a graphical mixer such as ossxmix can be dropped or hidden? > No changes to any of the drivers are required. The update_counter handling is done automatically by the mixer core. For safety ossxmix could check if the MIXT_DEVROOT node has update_counter>0. If it's 0 then the system may be running some older OSS version that doesn't support this feature. Best regards, Hannu _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel