Disable PCM plugins
#include <sys/asoundlib.h> unsigned int snd_pcm_plugin_set_disable( snd_pcm_t *pcm, unsigned int plugins );
|If mmap plugins are used, some of the members of the snd_pcm_channel_status_t structure aren't used.|
The plugin-aware versions of the PCM read and write calls don't require that you work with multiples of fragment-size blocks (the nonplugin-aware versions do). This is because one of the plugins in the lib sub-buffers the data for you. You can disable this plugin by setting the PLUGIN_DISABLE_BUFFER_PARTIAL_BLOCKS bit with this function, in which case the plugin-aware versions also fail on reads and writes that aren't multiples of the fragment size.
Either way, interleaved stereo data has to be aligned by the sample size times the number of channels (i.e. each write must have the same number of samples for the left and right channels).
You can use snd_pcm_plugin_set_disable() to disable plugins that are ordinarily used in the plugin chain. You must do so before calling snd_pcm_plugin_params().
A copy of the plugins argument.
|This function doesn't return a negative error code the way that other snd_pcm_*() functions do.|
See the wave.c example in the appendix.
snd_pcm_channel_status_t, snd_pcm_plugin_read(), snd_pcm_plugin_write()