ALSA project - the C library reference
Macros | Typedefs | Functions
Global defines and functions

Macros

#define __SND_DLSYM_VERSION(name, version)
 Helper macro for SND_DLSYM_BUILD_VERSION.
 
#define SND_DLSYM_BUILD_VERSION(name, version)
 Appends the build version to the name of a versioned dynamic symbol.
 
#define __STRING(x)   #x
 Return 'x' argument as string.
 
#define SND_DLSYM_VERSION(version)   __STRING(version)
 Returns the version of a dynamic symbol as a string.
 
#define __snd_alloca(ptr, type)   do { *ptr = (type##_t *) alloca(type##_sizeof()); memset(*ptr, 0, type##_sizeof()); } while (0)
 alloca helper macro.
 

Typedefs

typedef struct _snd_async_handler snd_async_handler_t
 Internal structure for an async notification client handler. More...
 
typedef void(* snd_async_callback_t) (snd_async_handler_t *handler)
 Async notification callback. More...
 
typedef struct timeval snd_timestamp_t
 
typedef struct timespec snd_htimestamp_t
 

Functions

const char * snd_asoundlib_version (void)
 Returns the ALSA sound library version in ASCII format. More...
 
int snd_dlpath (char *path, size_t path_len, const char *name)
 Compose the dynamic path. More...
 
void * snd_dlopen (const char *file, int mode, char *errbuf, size_t errbuflen)
 Opens a dynamic library - ALSA wrapper for dlopen. More...
 
void * snd_dlsym (void *handle, const char *name, const char *version)
 Resolves a symbol from a dynamic library - ALSA wrapper for dlsym. More...
 
int snd_dlclose (void *handle)
 Closes a dynamic library - ALSA wrapper for dlclose. More...
 
int snd_async_add_handler (snd_async_handler_t **handler, int fd, snd_async_callback_t callback, void *private_data)
 Registers an async handler. More...
 
int snd_async_del_handler (snd_async_handler_t *handler)
 Deletes an async handler. More...
 
int snd_async_handler_get_fd (snd_async_handler_t *handler)
 Returns the file descriptor assigned to an async handler. More...
 
int snd_async_handler_get_signo (snd_async_handler_t *handler)
 Returns the signal number assigned to an async handler. More...
 
void * snd_async_handler_get_callback_private (snd_async_handler_t *handler)
 Returns the private data assigned to an async handler. More...
 
struct snd_shm_area * snd_shm_area_create (int shmid, void *ptr)
 
struct snd_shm_area * snd_shm_area_share (struct snd_shm_area *area)
 
int snd_shm_area_destroy (struct snd_shm_area *area)
 
int snd_user_file (const char *file, char **result)
 Get the full file name. More...
 

Detailed Description

Global defines and functions.

The ALSA library implementation uses these macros and functions. Most applications probably do not need them.

Typedef Documentation

◆ snd_async_callback_t

typedef void(* snd_async_callback_t) (snd_async_handler_t *handler)

Async notification callback.

See the snd_async_add_handler function for details.

◆ snd_async_handler_t

typedef struct _snd_async_handler snd_async_handler_t

Internal structure for an async notification client handler.

The ALSA library uses a pointer to this structure as a handle to an async notification object. Applications don't access its contents directly.

◆ snd_htimestamp_t

typedef struct timespec snd_htimestamp_t

Hi-res timestamp

◆ snd_timestamp_t

typedef struct timeval snd_timestamp_t

Timestamp

Function Documentation

◆ snd_asoundlib_version()

const char * snd_asoundlib_version ( void  )

Returns the ALSA sound library version in ASCII format.

Returns
The ASCII description of the used ALSA sound library.

◆ snd_async_add_handler()

int snd_async_add_handler ( snd_async_handler_t **  handler,
int  fd,
snd_async_callback_t  callback,
void *  private_data 
)

Registers an async handler.

Parameters
handlerThe function puts the pointer to the new async handler object at the address specified by handler.
fdThe file descriptor to be associated with the callback.
callbackThe async callback function.
private_dataPrivate data for the async callback function.
Returns
Zero if successful, otherwise a negative error code.

This function associates the callback function with the given file, and saves this association in a snd_async_handler_t object.

Whenever the SIGIO signal is raised for the file fd, the callback function will be called with its parameter pointing to the async handler object returned by this function.

The ALSA sigaction handler for the SIGIO signal automatically multiplexes the notifications to the registered async callbacks. However, the application is responsible for instructing the device driver to generate the SIGIO signal.

The SIGIO signal may have been replaced with another signal, see snd_async_handler_get_signo.

When the async handler isn't needed anymore, you must delete it with snd_async_del_handler.

See also
snd_async_add_pcm_handler, snd_async_add_ctl_handler

◆ snd_async_del_handler()

int snd_async_del_handler ( snd_async_handler_t handler)

Deletes an async handler.

Parameters
handlerHandle of the async handler to delete.
Returns
Zero if successful, otherwise a negative error code.

◆ snd_async_handler_get_callback_private()

void * snd_async_handler_get_callback_private ( snd_async_handler_t handler)

Returns the private data assigned to an async handler.

Parameters
handlerHandle to an async handler.
Returns
The private_data value registered with the async handler.
Examples
/test/pcm.c, and /test/timer.c.

◆ snd_async_handler_get_fd()

int snd_async_handler_get_fd ( snd_async_handler_t handler)

Returns the file descriptor assigned to an async handler.

Parameters
handlerHandle to an async handler.
Returns
The file descriptor if successful, otherwise a negative error code.

◆ snd_async_handler_get_signo()

int snd_async_handler_get_signo ( snd_async_handler_t handler)

Returns the signal number assigned to an async handler.

Parameters
handlerHandle to an async handler.
Returns
The signal number if successful, otherwise a negative error code.

The signal number for async handlers usually is SIGIO, but wizards can redefine it to a realtime signal when compiling the ALSA library.

◆ snd_dlclose()

int snd_dlclose ( void *  handle)

Closes a dynamic library - ALSA wrapper for dlclose.

Parameters
handleLibrary handle, similar to dlclose.
Returns
Zero if successful, otherwise an error code.

This function can emulate dynamic linking for the static build of the alsa-lib library.

◆ snd_dlopen()

void * snd_dlopen ( const char *  name,
int  mode,
char *  errbuf,
size_t  errbuflen 
)

Opens a dynamic library - ALSA wrapper for dlopen.

Parameters
namename of the library, similar to dlopen.
modemode flags, similar to dlopen.
errbufa string buffer for the error message dlerror.
errbuflena length of the string buffer for the error message.
Returns
Library handle if successful, otherwise NULL.

This function can emulate dynamic linking for the static build of the alsa-lib library. In that case, name is set to NULL.

◆ snd_dlpath()

int snd_dlpath ( char *  path,
size_t  path_len,
const char *  name 
)

Compose the dynamic path.

Parameters
pathReturned path (string)
path_lenReturned path max size (with trailing zero)
namePlugin name (relative)
Returns
Zero on success, otherwise a negative error code

◆ snd_dlsym()

void * snd_dlsym ( void *  handle,
const char *  name,
const char *  version 
)

Resolves a symbol from a dynamic library - ALSA wrapper for dlsym.

Parameters
handleLibrary handle, similar to dlsym.
nameSymbol name.
versionVersion of the symbol.

This function can emulate dynamic linking for the static build of the alsa-lib library.

This special version of the dlsym function checks also the version of the symbol. A versioned symbol should be defined using the SND_DLSYM_BUILD_VERSION macro.

◆ snd_user_file()

int snd_user_file ( const char *  file,
char **  result 
)

Get the full file name.

Parameters
fileThe file name string to parse
resultThe pointer to store the resultant file name
Returns
0 if successful, or a negative error code

Parses the given file name with POSIX-Shell-like expansion and stores the first matchine one. The returned string is strdup'ed.