Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

[Previous] [Contents] [Index] [Next]

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

See also:

snd_ctl_pcm_channel_info(), snd_mixer_eid_t, snd_mixer_gid_t, snd_pcm_channel_info(), snd_pcm_plugin_info()


[Previous] [Contents] [Index] [Next]