snd_pcm_channel_info_t

Information structure for a PCM channel

Synopsis:

typedef struct snd_pcm_channel_info
{
    int32_t     subdevice;              
    int8_t      subname[36];            
    int32_t     channel;                
    int32_t     zero1;                  
    int32_t     zero2[4];               
    uint32_t    flags;                  
    uint32_t    formats;                
    uint32_t    rates;                  
    int32_t     min_rate;               
    int32_t     max_rate;               
    int32_t     min_voices;             
    int32_t     max_voices;             
    int32_t     max_buffer_size;        
    int32_t     min_fragment_size;      
    int32_t     max_fragment_size;      
    int32_t     fragment_align;         
    int32_t     fifo_size;              
    int32_t     transfer_block_size;    
    uint8_t     zero3[4];               

    snd_pcm_digital_t dig_mask;         
    uint32_t          zero4;                  
    int32_t           mixer_device;           
    snd_mixer_eid_t   mixer_eid;          
    snd_mixer_gid_t   mixer_gid;          
    uint8_t           reserved[128];          
}       snd_pcm_channel_info_t;

Description:

The snd_pcm_channel_info_t structure describes PCM channel information. The members include:

subdevice
The subdevice number.
subname[32]
The subdevice name.
channel
The channel direction; either SND_PCM_CHANNEL_CAPTURE or SND_PCM_CHANNEL_PLAYBACK.
flags
Any combination of:
  • SND_PCM_CHNINFO_BLOCK — the hardware supports block mode.
  • SND_PCM_CHNINFO_BLOCK_TRANSFER — the hardware transfers samples by chunks (for example PCI burst transfers).
  • SND_PCM_CHNINFO_INTERLEAVE — the hardware accepts audio data composed of interleaved samples.
  • SND_PCM_CHNINFO_MMAP — the hardware supports mmap access.
  • SND_PCM_CHNINFO_MMAP_VALID — fragment samples are valid during transfer. This means that the fragment samples may be used when the io member from the mmap control structure snd_pcm_mmap_control_t is set (the fragment is being transferred).
  • SND_PCM_CHNINFO_NONINTERLEAVE — the hardware accepts audio data composed of noninterleaved samples.
  • SND_PCM_CHNINFO_OVERRANGE — the hardware supports ADC (capture) overrange detection.
  • SND_PCM_CHNINFO_PAUSE — the hardware supports pausing of the DMA engines (playback only).
    Note: Note that the absence of this flag does not preclude the synthesis of an application-level pause. It refers only to the direct capabilities of the hardware. Support for this flag is extremely rare, so dependence on it is discouraged.
formats
The supported formats (SND_PCM_FMT_*).
rates
Hardware rates (SND_PCM_RATE_*).
min_rate
The minimum rate (in Hz).
max_rate
The maximum rate (in Hz).
min_voices
The minimum number of voices (probably always 1).
max_voices
The maximum number of voices.
max_buffer_size
The maximum buffer size, in bytes.
min_fragment_size
The minimum fragment size, in bytes.
max_fragment_size
The maximum fragment size, in bytes.
fragment_align
If this value is set, the size of the buffer fragments must be a multiple of this value, so that they are in the proper alignment.
fifo_size
The stream FIFO size, in bytes. Deprecated; don't use this member.
transfer_block_size
The bus transfer block size in bytes.
dig_mask
Not currently implemented.
mixer_device
The mixer device for this channel.
mixer_eid
A snd_mixer_eid_t structure that describes the mixer element identification for this channel.
mixer_gid
The mixer group identification for this channel; see snd_mixer_gid_t. You should use this mixer group in applications that are implementing their own volume controls.

This mixer group is guaranteed to be the lowest-level mixer group for your channel (or subchannel), as determined at the time that you call snd_ctl_pcm_channel_info(). If you call this function after the channel has been configured, and a subchannel has been allocated (i.e. after calling snd_pcm_channel_params()), this mixer group is the subchannel mixer group that's specific to the application's current subchannel.

Classification:

QNX Neutrino