Signal the driver to ready the specified channel
#include <sys/asoundlib.h> int snd_pcm_channel_prepare( snd_pcm_t *handle, int channel );
Use the -l asound option to qcc to link against this library.
The snd_pcm_channel_prepare() function prepares hardware to operate in a specified transfer direction by calling snd_pcm_capture_prepare() or snd_pcm_playback_prepare(), depending on the value of channel.
This call is responsible for all parts of the hardware's startup sequence that require additional initialization time, allowing the final "GO" (either from writes into the buffers or snd_pcm_channel_go()) to execute more quickly.
This function may be called in all states except SND_PCM_STATUS_NOTREADY (returns -EBADFD) and SND_PCM_STATUS_RUNNING state (returns -EBUSY). If the operation is successful (zero is returned), the driver state is changed to SND_PCM_STATUS_PREPARED.
If your channel has underrun (during playback) or overrun (during capture), you have to reprepare it before continuing.
EOK on success, a negative errno upon failure. The errno values are available in the errno.h file.
- The state of handle is invalid, an invalid channel was provided as input, or an invalid state change occurred. You can call snd_pcm_channel_status() to check if the state change was invalid.
- Channel is running.
- Channel was not set to SND_PCM_CHANNEL_PLAYBACK or SND_PCM_CHANNEL_CAPTURE.
|Thread||Read the Caveats|
This function is not thread safe if handle (snd_pcm_t) is used across multiple threads.
Last modified: 2014-06-24