snd_pcm_plugin_info()

Updated: April 19, 2023

Get information about a PCM channel's capabilities (plugin-aware)

Synopsis:

#include <sys/asoundlib.h>

int snd_pcm_plugin_info( snd_pcm_t              *handle, 
                         snd_pcm_channel_info_t *info );

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().
info
A pointer to a snd_pcm_channel_info_t structure that snd_pcm_plugin_info() fills in with information about the PCM channel.

Before calling this function, set the info structure's channel member to specify the direction. This function sets all the other member.

If the rates, formats, min_rate, max_rate, min_voices, max_voices, and max_fragsize fields of snd_pcm_channel_info_t all contain zeroed data, the PCM device is currently not available for further playback or capture sessions.

Library:

libasound.so

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

Description:

The snd_pcm_plugin_info() function fills the info structure with data about the PCM channel selected by handle.

Note: This function and the nonplugin version, snd_pcm_channel_info(), get a dynamic “snapshot” of the system's current capabilities, which can shrink and grow as subchannels are allocated and freed. They're similar to snd_ctl_pcm_channel_info(), which gets information about the complete capabilities of the system.

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.

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.

This function is the plugin-aware version of snd_pcm_channel_info() . 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.