Yair K. kirjoitti: > On Thursday 24 July 2008 23:13:08 Hannu Savolainen wrote: > >> Better way might be using a MIXF_HOTPLUG flag. For groups it means that >> new controls/groups might be added (or removed) to the group >> any time. The root group (MIXT_DEVROOT) is an example of such group. >> New controls/groups may appear under it for examole when vmix is >> attached to the device. >> > > First, the attached patch reverts most of the previous change which was ill > thought out by me. Two changes were left in: ossmix's changes are useful > anyway, and ossxmix will still skip groups with update_counter == 0. > Ok. Will appear in the hg version soon. > The problem with MIXF_HOTPLUG/etc. is that we end up reading almost the same > info as we would have without it existing, especially since we can't directly > tell what a group's "leafs" are with the API. > > For example, the case of adding a control: Since the mixer program can't know > what the "leafs" are, it has to assume the newly added mixers are at : > NREXT(prev).. NREXT(new) regardless of MIXF_HOTPLUG, so it may as well poll > NREXT in the first place to discover controls were added/removed (otherwise, > it could have used EXTINFO->update_counter, though I'm not sure it's actually > a win). The mixer program then has to iterate (using EXTINFO) the newly added > mixers to know which UI widget to assign to them. So it may as well check > EXTINFO->parent and use that - the MIXF_HOTPLUG info doesn't help here either. > > The case of removing a control or of MIXF_UNAVAILABLE is probably better > served by erroring on MIX_READ and using an errno value which indicates that > the control no longer exists but the mixer is still valid (since the mixer > program will poll the control anyway). > Ok. Let's leave the API in the current way for the time being.
Best regards, Hannu _______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel