Play out all pending data in a PCM playback channel's queue and stop the channel
Synopsis:
#include <sys/asoundlib.h>
int snd_pcm_playback_flush( snd_pcm_t *handle);
Library:
libasound.so
Use the -l asound option to
qcc
to link against this library.
Description:
The snd_pcm_playback_flush() function blocks until all unprocessed
data in the driver queue has been played.
If the operation is successful (zero is returned), the channel's
state is changed to SND_PCM_STATUS_READY and the
channel is stopped.
Note:
This function isn't plugin-aware.
It functions exactly the same way as
snd_pcm_channel_flush(.., SND_PCM_CHANNEL_PLAYBACK).
Make sure that you don't mix and match plugin- and nonplugin-aware functions in your application, or you
may get undefined behavior and misleading results.
Returns:
EOK on success, a negative errno upon failure. The
errno values are available in the errno.h
file.
Errors:
Additional information for common error values:
-
-EBADFD
- The pcm device state isn't ready.
-
-EINTR
- The operation was interrupted because of a system signal (such as
a timer) or an error was returned asynchronously.
-
-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.
-
-EIO
- An invalid channel was specified, or the data wasn't all flushed.
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.