At Tue, 30 Jun 2009 02:11:01 +0400, Paul Fertser wrote: > > Hi, > > I've tried to implement an external shared object to be able to > execute arbitrary functions on PCM device opening and closing. After > quite some source code reading i had an almost working but segfaulting > example. This segfault is because snd_dlclose is called right after > calling a hook install function and therefore i can't snd_pcm_hook_add > functions from the same shared object. To me it looks like a bug but > probably i just don't see how this functionality is intended to be > used. Takashi, git-blame showed that it's you who stuffed this dlclose > call that bothers me ;) Well, right now, a plugin is designed to be bound with a single PCM instance. That's why dlcolse is called in snd_pcm_close(). Other use-cases are out of design, thus we need to extend something. Can you give your code to grasp more implementation images? > TIA > > Background information: > > We're working on audio subsystem for OpenMoko Freerunner. It's an idea > of Joerg Reisenweber to have virtual alsa devices for every reasonable > use-case (like dedicated device for stereout, dedicated device for > recording from gsm etc), for that we need a hook on every device > opening and closing mostly to set up routing inside WM8753 > codec. ctl_elems is not enough because we need a more complex locking > scheme (with priorities, some kind of callbacks to the apps using > particular devices etc) and other flexibility. To hook off snd_pcm_open and snd_pcm_close, you could use LD_PRELOAD. But, a plugin sounds more interesting. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel