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