PCM channel parameters
typedef struct snd_pcm_channel_params
{
    int32_t             channel;
    int32_t             mode;
    snd_pcm_sync_t      sync;               /* hardware synchronization ID */
    snd_pcm_format_t    format;
    snd_pcm_digital_t   digital;
    int32_t             start_mode;
    int32_t             stop_mode;
    int32_t             time:1, ust_time:1;
    uint32_t            why_failed;         /* SND_PCM_PARAMS_BAD_??? */
    union
    {
        struct
        {
            int32_t     queue_size;
            int32_t     fill;
            int32_t     max_fill;
            uint8_t     reserved[124];      /* must be filled with zeroes */
        }       stream;
        struct
        {
            int32_t     frag_size;
            int32_t     frags_min;
            int32_t     frags_max;
            uint8_t     reserved[124];      /* must be filled with zeroes */
        }       block;
        uint8_t     reserved[128];      /* must be filled with zeroes */
    }       buf;
    char        sw_mixer_subchn_name[32];
    uint8_t     reserved[96];         /* must be filled with zeroes */
} snd_pcm_channel_params_t;
The snd_pcm_channel_params_t structure describes the
parameters of a PCM capture or playback 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.
 
- digital
- Not currently implemented.
- start_mode
- The start mode; one of:
  
  
- SND_PCM_START_DATA — start when some data is
    written (playback) or requested (capture).
  
- SND_PCM_START_FULL — start when the whole queue
    is filled (playback only).
  
- SND_PCM_START_GO — start on the Go command.
  
 
- stop_mode
- The stop mode; one of:
  
  
- SND_PCM_STOP_STOP — stop when an underrun or
    overrun occurs.
  
- SND_PCM_STOP_ERASE — stop and erase the whole
    buffer when an overrun occurs (capture only).
  
- SND_PCM_STOP_ROLLOVER — ROLLOVER (i.e.
    automatically reprepare and continue) when an underrun or overrun occurs.
    
    
    
    
    
    
    
    
    
  
 
- time
- If set, the driver offers, in the status structure, the time when the
  transfer began. 
  The time is in the format used by
  gettimeofday()
  (see the QNX Neutrino Library Reference).
- ust_time
- If set, the driver offers, in the status structure, the time when the
  transfer began. 
  The time is in UST format.
- sync
- The synchronization group.
  Not supported; don't use this member.
     
- queue_size
- The queue size, in bytes, for the stream mode. 
  Not supported; don't use this member.
- fill
- The fill mode (SND_PCM_FILL_* constants).
  Not supported; don't use this member.
  
- max_fill
- The number of bytes to be filled ahead with silence.
  Not supported; don't use this member.
- frag_size
- The size of fragment in bytes.
- frags_min
- Depends on the mode:
  
- Capture — the minimum filled fragments to allow wakeup (usually
    one).
  
- Playback — the minimum free fragments to allow wakeup (usually
    one). 
  
 
- frags_max
- For playback, the maximum filled fragments to allow wakeup. 
  This value specifies the total number of fragments that could be written to
  by an application.
  This excludes the fragment that's currently playing, so the actual
  total number of fragments is frags_max + 1.
- sw_mixer_subchn_name
- By default, the name of all sw_mixer subchannel groups is
  PCM Subchannel; you can use this field to assign a different name.
QNX Neutrino
snd_pcm_channel_params(),
snd_pcm_format_t