[Previous] [Contents] [Index] [Next]

Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

snd_pcm_plugin_prepare()

Signal the driver to ready the specified channel (plugin-aware)

Synopsis:

#include <sys/asoundlib.h>

int snd_pcm_plugin_prepare( snd_pcm_t *handle,
                            int channel );

Arguments:

handle
The handle for the PCM device, which you must have opened by calling snd_pcm_open() or snd_pcm_open_preferred().
channel
The channel; SND_PCM_CHANNEL_CAPTURE or SND_PCM_CHANNEL_PLAYBACK.

Library:

libasound.so

Description:

The snd_pcm_plugin_prepare() function prepares hardware to operate in a specified transfer direction. This call is responsible for all parts of the hardware's startup sequence that require additional initialization time, allowing the final "GO" (usually from writes into the buffers) to execute more quickly.

This function may be called in all states except SND_PCM_STATUS_NOTREADY (returns -EBADFD) and SND_PCM_STATUS_RUNNING (returns -EBUSY). If the operation is successful (zero is returned), the driver state is changed to SND_PCM_STATUS_PREPARED.


Note: If your channel has underrun (during playback) or overrun (during capture), you have to reprepare it before continuing. For an example, see wave.c and waverec.c in the appendix.

Returns:

Zero, or a negative error code.

Errors:

-EBUSY
The subchannel is in the running state.
-EINVAL
Invalid handle.

Examples:

See the wave.c example in the appendix.

Classification:

QNX Neutrino

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

Caveats:

This function is the plugin-aware version of snd_pcm_channel_prepare(). It functions exactly the same way. However, 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.

See also:

snd_pcm_capture_prepare(), snd_pcm_channel_prepare(), snd_pcm_playback_prepare()


[Previous] [Contents] [Index] [Next]