On 4/29/2010 5:19 PM, Mark Brown wrote: > On Thu, Apr 29, 2010 at 05:15:38PM +0800, Yu Hang wrote: > > >> For example, the 1st instance had mixes the data into destination >> buffer, but 2nd instance haven't complete the mix operation. Would the >> data in destination buffer be playing by HW? >> Or there is some mechanism to guarantee the data will be played after >> all mix operation is done. >> > You need to ensure that the user configures the plugin stack > appropriately to ensure that your plugin is the last one that's run, you > can't do this purely from within your plugin. Even if that's done you'd > also need to rely on them not configuring any DSP in the hardware which > would disrupt things. > > From the pcm_dmix.c, dmix plugin must be followed by HW plugin. Which means I cannot insert my own plugin below dmix. Unless I patch pcm_dmix.c, I cannot retrieve the final data. Or I can patch pcm_hw.c in order to achieve my goal. Even if I patch pcm_hw.c, how can I know when the data is actually sent to HW? I have totally no idea about ALSA driver mechanism. A biggest question is, how alsa lib (in user space) knows the HW needs new data (it must happen by interrupt) and feed HW with new data. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel