At Mon, 31 Dec 2007 18:12:27 +0100, Lennart Poettering wrote: > > Hi! > > In PulseAudio I want to schedule on my own when I need to write audio > data into the device and when not. To achieve that I want to be > notified via poll() whenever a period boundary is passed (i.e. when an > IRQ happens), but only then. That's different from the usual mode > where you are notified via poll() whether there is space in the > playback buffer that needs to be filled up. > > On OSS the mmap() mode enables a mode like I described above. After > enabling mmap() the application can decide by itself what it considers > full and what empty in the dma buffer, and use GETOPTR to query the > playback position. poll() on the OSS fd will directly reflect the > sound card IRQs and is not influenced if you ever wrote data to device > or not. > > I assume that I can enable a mode like that with one of the SW > params. But quite frankly the docs for it are not enlighening at all. Set the stop_threshould sw_params to the boundary size. snd_pcm_sw_params_get_boundary(sw_params, &boundary); snd_pcm_sw_params_set_stop_threshold(pcm, sw_params, boundary); then the driver behaves in the "freewheel" mode. The dmix plugin uses this technique. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel