ALSA project - the C library reference
Files | Enumerations | Functions
Simple setup functions
Collaboration diagram for Simple setup functions:

Files

file  pcm_simple.c
 PCM Simple Interface.
 

Enumerations

enum  snd_spcm_latency_t { SND_SPCM_LATENCY_STANDARD = 0 , SND_SPCM_LATENCY_MEDIUM , SND_SPCM_LATENCY_REALTIME }
 
enum  snd_spcm_xrun_type_t { SND_SPCM_XRUN_IGNORE = 0 , SND_SPCM_XRUN_STOP }
 
enum  snd_spcm_duplex_type_t { SND_SPCM_DUPLEX_LIBERAL = 0 , SND_SPCM_DUPLEX_PEDANTIC }
 

Functions

int snd_spcm_init (snd_pcm_t *pcm, unsigned int rate, unsigned int channels, snd_pcm_format_t format, snd_pcm_subformat_t subformat, snd_spcm_latency_t latency, snd_pcm_access_t _access, snd_spcm_xrun_type_t xrun_type)
 Set up a simple PCM. More...
 
int snd_spcm_init_duplex (snd_pcm_t *playback_pcm, snd_pcm_t *capture_pcm, unsigned int rate, unsigned int channels, snd_pcm_format_t format, snd_pcm_subformat_t subformat, snd_spcm_latency_t latency, snd_pcm_access_t _access, snd_spcm_xrun_type_t xrun_type, snd_spcm_duplex_type_t duplex_type)
 Initialize simple PCMs in the duplex mode. More...
 
int snd_spcm_init_get_params (snd_pcm_t *pcm, unsigned int *rate, snd_pcm_uframes_t *buffer_size, snd_pcm_uframes_t *period_size)
 Get the set up of simple PCM. More...
 

Detailed Description

See the PCM (digital audio) interface page for more details.

Enumeration Type Documentation

◆ snd_spcm_duplex_type_t

Simple PCM duplex type

Enumerator
SND_SPCM_DUPLEX_LIBERAL 

liberal duplex - the buffer and period sizes might not match

SND_SPCM_DUPLEX_PEDANTIC 

pedantic duplex - the buffer and period sizes MUST match

◆ snd_spcm_latency_t

Simple PCM latency type

Enumerator
SND_SPCM_LATENCY_STANDARD 

standard latency - for standard playback or capture (estimated latency in one direction 350ms)

SND_SPCM_LATENCY_MEDIUM 

medium latency - software phones etc. (estimated latency in one direction maximally 25ms

SND_SPCM_LATENCY_REALTIME 

realtime latency - realtime applications (effect processors etc.) (estimated latency in one direction 5ms and better)

◆ snd_spcm_xrun_type_t

Simple PCM xrun type

Enumerator
SND_SPCM_XRUN_IGNORE 

driver / library will ignore all xruns, the stream runs forever

SND_SPCM_XRUN_STOP 

driver / library stops the stream when an xrun occurs

Function Documentation

◆ snd_spcm_init()

int snd_spcm_init ( snd_pcm_t pcm,
unsigned int  rate,
unsigned int  channels,
snd_pcm_format_t  format,
snd_pcm_subformat_t  subformat,
snd_spcm_latency_t  latency,
snd_pcm_access_t  access,
snd_spcm_xrun_type_t  xrun_type 
)

Set up a simple PCM.

Parameters
pcmPCM handle
rateSample rate
channelsNumber of channels
formatPCM format
subformatPCM subformat
latencyLatency type
accessPCM acceess type
xrun_typeXRUN type
Returns
0 if successful, or a negative error code
Warning
The simple PCM API may be broken in the current release.

◆ snd_spcm_init_duplex()

int snd_spcm_init_duplex ( snd_pcm_t playback_pcm,
snd_pcm_t capture_pcm,
unsigned int  rate,
unsigned int  channels,
snd_pcm_format_t  format,
snd_pcm_subformat_t  subformat,
snd_spcm_latency_t  latency,
snd_pcm_access_t  access,
snd_spcm_xrun_type_t  xrun_type,
snd_spcm_duplex_type_t  duplex_type 
)

Initialize simple PCMs in the duplex mode.

Parameters
playback_pcmPCM handle for playback
capture_pcmPCM handle for capture
rateSample rate
channelsNumber of channels
formatPCM format
subformatPCM subformat
latencyLatency type
accessPCM acceess type
xrun_typeXRUN type
duplex_typeDuplex mode
Returns
0 if successful, or a negative error code
Warning
The simple PCM API may be broken in the current release.

◆ snd_spcm_init_get_params()

int snd_spcm_init_get_params ( snd_pcm_t pcm,
unsigned int *  rate,
snd_pcm_uframes_t buffer_size,
snd_pcm_uframes_t period_size 
)

Get the set up of simple PCM.

Parameters
pcmPCM handle
ratePointer to store the current sample rate
buffer_sizePointer to store the current buffer size
period_sizePointer to store the current period size
Returns
0 if successful, or a negative error code
Warning
The simple PCM API may be broken in the current release.