snd_pcm_channel_resume()

Resume a channel

Synopsis:

#include <sys/asoundlib.h>

int snd_pcm_channel_resume ( snd_pcm_t *pcm,
                             int channel );

Arguments:

pcm
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().
channel
The channel; SND_PCM_CHANNEL_CAPTURE or SND_PCM_CHANNEL_PLAYBACK.

Library:

libasound.so

Use the -l asound option with qcc to link against this library.

Description:

The snd_pcm_channel_resume() function resumes a channel by calling snd_pcm_capture_resume() or snd_pcm_playback_resume(), depending on the value of channel.

If the channel is in the SUSPENDED (SND_PCM_STATUS_SUSPENDED), one of the following occurs when you call this function:
  • If the channel is hard suspended, calling this function clears any underlying paused condition (e.g., snd_pcm_channel_pause() was called before moving to the SND_PCM_STATUS_SUSPENDED state). However, because you are in the SND_PCM_STATUS_SUSPENDED state and waiting for higher priority audio stream to complete, the channel remains in the SUSPENDED state.
  • If the channel is in the soft suspended state, calling this function clears any underlying paused condition (e.g., snd_pcm_channel_pause() was called before moving to SND_PCM_STATUS_SUSPENDED state) and the channel plays immediately and transitions to the SND_PCM_STATUS_RUNNING state.
  • If both the hard suspended and soft suspended conditions occur, the hard suspended state takes precedence. In other words, calling the function clears any pending paused conditione.g., snd_pcm_channel_pause()) but the channel remains in the SND_PCM_STATUS_SUSPENDED state.
For more information, see the Audio Concurrency Management chapter in this guide.

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:
-EINVAL
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.
-EIO
The channel isn't valid that was passed in was not set to SND_PCM_CHANNEL_PLAYBACK or SND_PCM_CHANNEL_CAPTURE.
-ENOTSUP
Resume isn't supported on the PCM device that's referenced by the PCM handle (pcm).

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 pcm (snd_pcm_t) is used across multiple threads.