snd_pcm_playback_go()
Start a PCM playback channel running
Synopsis:
#include <sys/asoundlib.h>
int snd_pcm_playback_go ( snd_pcm_t *handle );
Arguments:
- handle
- The handle for the PCM device, which you must have opened by calling snd_pcm_open_name(), snd_pcm_open(), or snd_pcm_open_preferred().
Library:
libasound.so
Description:
The snd_pcm_playback_go() function starts the playback channel running.
You should call this function only when the channel is in the SND_PCM_STATUS_READY state, and you should ensure that two or more audio fragments have been written into the audio interface before issuing the go command, to prevent the audio channel/stream from going into the UNDERRUN state.
Calling this function is required if you've set your channel's start state to
SND_PCM_START_GO (see
snd_pcm_plugin_params()).
You can use this function to kick start
early a playback
channel that has a start state of SND_PCM_START_DATA or
SND_PCM_START_FULL.
If the parameters are valid (i.e, the function returns zero), then the driver state is changed to SND_PCM_STATUS_RUNNING.
This function is safe to use with plugin-aware functions. This call is used identically to snd_pcm_plugin_params().
Returns:
EOK on success, a negative errno upon failure. The errno values are available in the errno.h file.
Errors:
- -EINVAL
- The state of handle is invalid or an invalid state change occurred. You can call snd_pcm_channel_status() to check if the state change was invalid.
- -EAGAIN
- Indicates that there's insufficient data in the buffer to play. You should write more data to the buffer.
- -EMORE
- Insufficient audio fragments have been written to the audio interface (when writing to the software mixer device).
Classification:
QNX Neutrino
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Yes |
| Thread | Read the Caveats |
Caveats:
This function is not thread safe if handle (snd_pcm_t) is used across multiple threads.
