ado_pcm_create()

Create a PCM audio device

Synopsis:

#include <audio_driver.h>

int32_t ado_pcm_create (
    ado_card_t *card,
    char *name,
    uint32_t flags,
    char *id,
    uint32_t play_subchns,
    ado_pcm_cap_t *play_cap,
    ado_pcm_hw_t *play_hw,
    uint32_t cap_subchns,
    ado_pcm_cap_t *cap_cap,
    ado_pcm_hw_t *cap_hw,
    ado_pcm_t **rpcm );

Arguments:

card
The card argument that io-audio passed to your Audio HW DLL's ctrl_init() function (see the Organization of a Driver chapter).
name
The name of the new device. This is usually a variation of the card name, and is used only for information display by client applications.
flags
Capability flags for the device; one of the SND_PCM_INFO_* flags defined in asound.h. For more information, see snd_pcm_info() in the QNX Audio Developer's Guide.

Note: These flags are used to identify device capabilities only.

id
The name of the new device.
play_subchns
The maximum number of simultaneous playback subchannels that the new device can support.
play_cap
A pointer to a static ado_pcm_cap_t structure that describes the static capabilities of the playback portion of the device. These are the capabilities that the first subchannel opened could use. As more subchannels are opened, the device capabilities may decrease and become unavailable.
play_hw
A pointer to a ado_pcm_hw_t structure that specifies all of the callbacks for the playback portion of the PCM device. The io-audio manager invokes these callbacks when something needs to be done with respect to the PCM device.
cap_subchns
The maximum number of simultaneous capture subchannels that the new device can support.
cap_cap
A pointer to a static ado_pcm_cap_t structure that describes the static capabilities of the capture portion of the device. These are the capabilities that the first subchannel opened could use. As more subchannels are opened, the device capabilities may decrease and become unavailable.
cap_hw
A pointer to a ado_pcm_hw_t structure that specifies all of the callbacks for the capture portion of the PCM device. The io-audio manager invokes these callbacks when something needs to be done with respect to the PCM device.
rpcm
A pointer to a memory location where ado_pcm_create() can store a pointer to the new PCM device. You'll need this address for additional API calls.

Description:

The ado_pcm_create() function creates a PCM audio device and attaches it to the given card.

Returns:

Zero on success, or -1 on failure (errno is set).

Errors:

ENOMEM
Memory couldn't be allocated to hold the device structures.
EINVAL
One or more of the function's arguments are invalid.

Classification:

QNX Neutrino

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

See also:

ado_pcm_cap_t, ado_pcm_hw_t

ctrl_init() in the Organization of a Driver chapter, Handling PCM Audio Data chapter

snd_pcm_info() in the QNX Audio Developer's Guide