At Tue, 20 Jan 2009 21:29:34 +0100, Lennart Poettering wrote: > > On Tue, 20.01.09 19:48, Clemens Ladisch (clemens@xxxxxxxxxx) wrote: > > > > I currently deal with this by always halving the first wakeup time -- > > > which works most of the time but is a hack. > > > > In theory, you could deduce this behaviour from > > snd_pcm_hw_params_is_double(), but the USB driver forgets to set this > > flag. > > But still, with this flag I would only now that the startup sequence > is "fast". But not how "fast". > > I appears to me that it would make a lot more sense if the driver > would simply tell me how long I may sleep instead of adding multiple > new functions 1) that tell me if double-buffering is used and what the > size of the second buffer is, 2) that tell me that data is pulled > block-by-block from the buffer and what the block size is, and so on. > > The function should look like this: > > snd_pcm_sframes_t snd_pcm_busy_for(snd_pcm_t *pcm); > > I called the prototype "busy for" since effectively the value I am > looking for is the time the card will be busy with the data it already > has, and doesn't need any new data. Isn't it snd_pcm_delay() that was originally designed for? Did you check my previous patch? Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel