At Fri, 2 Feb 2007 09:19:34 +1300, Eliot Blennerhassett wrote: > > On Friday 02 February 2007 03:03, Takashi Iwai wrote: > > At Thu, 01 Feb 2007 16:31:01 +1300, > > > > > A PCM substream has a linked list of link members (via struct > > snd_pcm_group). The macro, snd_pcm_group_for_each(), gives you the > > loop for checking each list memeber. > > > > When a driver supports the hardware-linked substreams, it needs to > > check whether multiple streams exist in that substream. Set > > snd_pcm_trigger_done() at each stream, and trigger once. > > > > You can see examples in the driver implementations. Grep > > snd_pcm_group_for_each() under alsa-kernel/pci directory. > > Thanks Takashi, > > I see that the above loops are in the trigger callbacks of the drivers. > > But I wonder if the linked status known at hwparams or prepare callback. Not at the prepare time. Since snd_pcm_hw_params() in alsa-lib invokes the prepare too, and usually snd_pcm_link() is called after hw_params set up, the link state is practically unknown before trigger. > This is because I need to send a message to our card to group each pair of > streams, I think this should not be in the trigger callback. > > I.e. group(stream0,stream1); group(stream0,stream2) etc > > After this, start and stop commands on any stream in the group operate on them > all simultaneously, and the simultaneous start is sample accurate. > > I'd prefer to do this earlier in the setup process than at trigger callback. We'd need to introduce some notification in this case. One way is to add a new callback for link notification. This is cleaner but would affect all drivers. Another way is to call ops->ioctl callback from snd_pcm_link() with a special type, SNDRV_PCM_IOCTL1_LINK, for example. In both cases, handling an error from the notify callback is a bit difficult because of complex locking and linked lists. Otherwise, the implementation would be relatively easy, I guess. Anyways, snd_pcm_link() should check the PCM state more carefully, accept linking only in either SETUP and PREPARE state, too. Takashi ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel