| Updated: October 28, 2024 | 
Create a handle and open a connection to the preferred audio interface
#include <sys/asoundlib.h>
int snd_pcm_open_preferred( snd_pcm_t **handle, 
                            int        *rcard, 
                            int        *rdevice, 
                            int         mode );
    You can OR this flag with any of the above:
You can change the blocking setup later by calling snd_pcm_nonblock_mode().
The snd_pcm_open_preferred() function is an extension to the snd_pcm_open() function that attempts to open the user-selected default (or preferred) device for the system.
In a system where more than one PCM device exists, you can set a preference for one of these devices. This function attempts to open that device and return a PCM handle to it. The function returns the card and device numbers if the rcard and rdevice arguments aren't NULL.
For information on how io-audio sets the preferred device, see Preferred device selection in the io-audio chapter of the QNX Neutrino Utilities Reference.
Zero on success, or a negative value on error.
See the example in Opening your PCM device in the Playing and Capturing Audio Data chapter.
QNX Neutrino
| Safety: | |
|---|---|
| Cancellation point | No | 
| Interrupt handler | No | 
| Signal handler | Yes | 
| Thread | Read the Caveats | 
This function is not thread safe if handle (snd_pcm_t) is used across multiple threads.
Successfully opening a PCM channel doesn't guarantee that there are enough audio resources free to handle your application. Audio resources (e.g. subchannels) are allocated when you configure the channel by calling snd_pcm_channel_params() or snd_pcm_plugin_params() .