snd_pcm_channel_setup_t

Updated: October 26, 2022

Current configuration of a PCM channel

Synopsis:

typedef struct snd_pcm_channel_setup
{
    int32_t             channel;
    int32_t             mode;
    snd_pcm_format_t    format;
    snd_pcm_digital_t   digital;
    union
    {
        struct
        {
            int32_t     queue_size;
            uint8_t     reserved[124]; /* must be filled with zeroes */
        }       stream;
        struct
        {
            int32_t     frag_size;
            int32_t     frags;
            int32_t     frags_min;
            int32_t     frags_max;
            uint32_t    max_frag_size;
            uint8_t     reserved[124]; /* must be filled with zeroes */
        }       block;
        uint8_t     reserved[128];     /* must be filled with zeroes */
    }       buf;
    int16_t         msbits_per_sample;
    int16_t         pad1;
    int32_t         mixer_device;
    snd_mixer_eid_t *mixer_eid;
    snd_mixer_gid_t *mixer_gid;
    uint8_t         mmap_valid:1;
    uint8_t         mmap_active:1;
    int32_t         mixer_card;
    uint8_t         reserved[104];     /* must be filled with zeroes */
}       snd_pcm_channel_setup_t;

Description:

The snd_pcm_channel_setup_t structure describes the current configuration of a PCM channel. The members include:

channel
The channel direction; One of SND_PCM_CHANNEL_PLAYBACK or SND_PCM_CHANNEL_CAPTURE.
mode
The channel mode: SND_PCM_MODE_BLOCK. (SND_PCM_MODE_STREAM is deprecated.)
format
The data format; see snd_pcm_format_t. Note that the rate member may differ from the requested one.
digital
Not currently implemented.
queue_size
The real queue size (which may differ from requested one).
frag_size
The real fragment size (which may differ from requested one). When asynchronous sample rate conversion (ASRC) is enabled, this value can shrink or grow while the audio stream is active. When ASRC is disabled, this value is the same as maximum_frag_size.
frags
The number of fragments.
frags_min
Capture: the minimum filled fragments to allow wakeup. Playback: the minimum free fragments to allow wakeup.
frags_max
Playback: the maximum filled fragments to allow wakeup. The value also specifies the maximum number of used fragments plus one.
max_frag_size
The maximum fragment size. When asynchronous sample rate conversion (ASRC) is enabled, frag_size can shrink or grow while the audio stream is active and this value represents the maximum fragment size. When ASRC is disabled, max_frag_size is equal to the value of frag_size.
msbits_per_sample
How many most-significant bits are physically used.
mixer_device
Mixer device for this subchannel.
mixer_eid
A pointer to the mixer element identification for this subchannel.
mixer_gid
A pointer to the mixer group identification for this subchannel; see snd_mixer_gid_t.
mmap_valid
The channel can use mmapped access.
mmap_active
The channel is using mmapped transfers.
mixer_card
The mixer card.

Classification:

QNX Neutrino