ALSA project - the C library reference

Macros | Typedefs | Functions | Variables
Error handling

## Macros
#define | SND_ERROR_BEGIN 500000
#define | SND_ERROR_INCOMPATIBLE_VERSION (SND_ERROR_BEGIN+0)
#define | SND_ERROR_ALISP_NIL (SND_ERROR_BEGIN+1)
#define | SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, 0, ##args)
#define | SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, errno, ##args)

## Typedefs
typedef void(* | snd_lib_error_handler_t) (const char *file, int line, const char *function, int err, const char *fmt,...)
| Error handler callback. More...

## Functions
const char * | snd_strerror (int errnum)
| Returns the message for an error code. More...
int | snd_lib_error_set_handler (snd_lib_error_handler_t handler)
| Sets the error handler. More...

## Variables
snd_lib_error_handler_t | snd_lib_error
snd_lib_error_handler_t | snd_lib_error = snd_lib_error_default

## Detailed Description

Error handling macros and functions.

## Macro Definition Documentation

## ◆ SND_ERROR_ALISP_NIL

#define SND_ERROR_ALISP_NIL (SND_ERROR_BEGIN+1)

Lisp encountered an error during acall.

## ◆ SND_ERROR_BEGIN

#define SND_ERROR_BEGIN 500000

Lower boundary of sound error codes.

## ◆ SND_ERROR_INCOMPATIBLE_VERSION

#define SND_ERROR_INCOMPATIBLE_VERSION (SND_ERROR_BEGIN+0)

Kernel/library protocols are not compatible.

## ◆ SNDERR

#define SNDERR | ( |  | args... | ) | snd_lib_error(__FILE__, __LINE__, __func__, 0, ##args)

Shows a sound error message.

## ◆ SYSERR

#define SYSERR | ( |  | args... | ) | snd_lib_error(__FILE__, __LINE__, __func__, errno, ##args)

Shows a system error message (related to `errno`).

## Typedef Documentation

## ◆ snd_lib_error_handler_t

typedef void(* snd_lib_error_handler_t) (const char *file, int line, const char *function, int err, const char *fmt,...)

Error handler callback.

Parameters

  file | Source file name.
  line | Line number.
  function | Function name.
  err | Value of `errno`, or 0 if not relevant.
  fmt | `printf(3)` format.
  ... | `printf(3)` arguments.

A function of this type is called by the ALSA library when an error occurs. This function usually shows the message on the screen, and/or logs it.

## Function Documentation

## ◆ snd_lib_error_set_handler()

int snd_lib_error_set_handler | ( | snd_lib_error_handler_t | handler | ) |

Sets the error handler.

Parameters

  handler | The pointer to the new error handler function.

This function sets a new error handler, or (if `handler` is `NULL`) the default one which prints the error messages to `stderr`.

## ◆ snd_strerror()

const char * snd_strerror | ( | int | errnum | ) |

Returns the message for an error code.

Parameters

  errnum | The error code number, which must be a system error code or an ALSA error code.

Returns
  The ASCII description of the given numeric error code.

Examples
  /test/latency.c, /test/pcm.c, /test/pcm_min.c, /test/rawmidi.c, and /test/timer.c.

## Variable Documentation

## ◆ snd_lib_error [1/2]

snd_lib_error_handler_t snd_lib_error
| extern

Pointer to the error handler function. For internal use only.

## ◆ snd_lib_error [2/2]

snd_lib_error_handler_t snd_lib_error = snd_lib_error_default

Pointer to the error handler function. For internal use only.