# Control Interface

## Data Structures

struct | snd_aes_iec958_t

## Modules

| High level Control Interface
| Setup Control Interface

## Defines

#define | SND_CONTROL_DLSYM_VERSION _dlsym_control_001
#define | SND_CTL_EVENT_MASK_REMOVE
#define | SND_CTL_EVENT_MASK_VALUE
#define | SND_CTL_EVENT_MASK_INFO
#define | SND_CTL_EVENT_MASK_ADD
#define | SND_CTL_EVENT_MASK_TLV
#define | SND_CTL_NAME_NONE ""
#define | SND_CTL_NAME_PLAYBACK "Playback "
#define | SND_CTL_NAME_CAPTURE "Capture "
#define | SND_CTL_NAME_IEC958_NONE ""
#define | SND_CTL_NAME_IEC958_SWITCH "Switch"
#define | SND_CTL_NAME_IEC958_VOLUME "Volume"
#define | SND_CTL_NAME_IEC958_DEFAULT "Default"
#define | SND_CTL_NAME_IEC958_MASK "Mask"
#define | SND_CTL_NAME_IEC958_CON_MASK "Con Mask"
#define | SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask"
#define | SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"
#define | SND_CTL_NAME_IEC958(expl, direction, what) "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what
#define | SND_CTL_POWER_MASK 0xff00
#define | SND_CTL_POWER_D0 0x0000
#define | SND_CTL_POWER_D1 0x0100
#define | SND_CTL_POWER_D2 0x0200
#define | SND_CTL_POWER_D3 0x0300
#define | SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000)
#define | SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001)
#define | SND_CTL_TLVT_CONTAINER 0x0000
#define | SND_CTL_TLVT_DB_SCALE 0x0001
#define | SND_CTL_TLVT_DB_LINEAR 0x0002
#define | SND_CTL_TLVT_DB_RANGE 0x0003
#define | SND_CTL_TLVT_DB_MINMAX 0x0004
#define | SND_CTL_TLVT_DB_MINMAX_MUTE 0x0005
#define | SND_CTL_TLV_DB_GAIN_MUTE -9999999
#define | SND_CTL_TLVT_CHMAP_FIXED 0x00101
#define | SND_CTL_TLVT_CHMAP_VAR 0x00102
#define | SND_CTL_TLVT_CHMAP_PAIRED 0x00103
#define | SND_CTL_NONBLOCK
#define | SND_CTL_ASYNC
#define | SND_CTL_READONLY
#define | SND_SCTL_NOFREE 0x0001
#define | snd_ctl_elem_id_alloca(ptr)
| allocate an invalid snd_ctl_elem_id_t using standard alloca
#define | snd_ctl_card_info_alloca(ptr)
| allocate an invalid snd_ctl_card_info_t using standard alloca
#define | snd_ctl_event_alloca(ptr)
| allocate an invalid snd_ctl_event_t using standard alloca
#define | snd_ctl_elem_list_alloca(ptr)
| allocate an invalid snd_ctl_elem_list_t using standard alloca
#define | snd_ctl_elem_info_alloca(ptr)
| allocate an invalid snd_ctl_elem_info_t using standard alloca
#define | snd_ctl_elem_value_alloca(ptr)
| allocate an invalid snd_ctl_elem_value_t using standard alloca

## Typedefs

typedef struct _snd_ctl_card_info | snd_ctl_card_info_t
typedef struct _snd_ctl_elem_id | snd_ctl_elem_id_t
typedef struct _snd_ctl_elem_list | snd_ctl_elem_list_t
typedef struct _snd_ctl_elem_info | snd_ctl_elem_info_t
typedef struct _snd_ctl_elem_value | snd_ctl_elem_value_t
typedef struct _snd_ctl_event | snd_ctl_event_t
typedef struct _snd_ctl | snd_ctl_t
typedef struct _snd_sctl | snd_sctl_t

## Enumerations

enum | snd_ctl_elem_type_t { SND_CTL_ELEM_TYPE_NONE = 0, SND_CTL_ELEM_TYPE_BOOLEAN, SND_CTL_ELEM_TYPE_INTEGER, SND_CTL_ELEM_TYPE_ENUMERATED, SND_CTL_ELEM_TYPE_BYTES, SND_CTL_ELEM_TYPE_IEC958, SND_CTL_ELEM_TYPE_INTEGER64, SND_CTL_ELEM_TYPE_LAST = SND_CTL_ELEM_TYPE_INTEGER64 }
enum | snd_ctl_elem_iface_t { SND_CTL_ELEM_IFACE_CARD = 0, SND_CTL_ELEM_IFACE_HWDEP, SND_CTL_ELEM_IFACE_MIXER, SND_CTL_ELEM_IFACE_PCM, SND_CTL_ELEM_IFACE_RAWMIDI, SND_CTL_ELEM_IFACE_TIMER, SND_CTL_ELEM_IFACE_SEQUENCER, SND_CTL_ELEM_IFACE_LAST = SND_CTL_ELEM_IFACE_SEQUENCER }
enum | snd_ctl_event_type_t { SND_CTL_EVENT_ELEM = 0, SND_CTL_EVENT_LAST = SND_CTL_EVENT_ELEM }
enum | snd_ctl_type_t { SND_CTL_TYPE_HW, SND_CTL_TYPE_SHM, SND_CTL_TYPE_INET, SND_CTL_TYPE_EXT }

## Functions

int | snd_card_load (int card)
| Try to load the driver for a card.
int | snd_card_next (int *card)
| Try to determine the next card.
int | snd_card_get_index (const char *name)
| Convert card string to an integer value.
int | snd_card_get_name (int card, char **name)
| Obtain the card name.
int | snd_card_get_longname (int card, char **name)
| Obtain the card long name.
int | snd_device_name_hint (int card, const char *iface, void ***hints)
| Get a set of device name hints.
int | snd_device_name_free_hint (void **hints)
| Free a list of device name hints.
char * | snd_device_name_get_hint (const void *hint, const char *id)
| Extract a value from a hint.
int | snd_ctl_open (snd_ctl_t **ctl, const char *name, int mode)
| Opens a CTL.
int | snd_ctl_open_lconf (snd_ctl_t **ctl, const char *name, int mode, snd_config_t *lconf)
| Opens a CTL using local configuration.
int | snd_ctl_open_fallback (snd_ctl_t **ctl, snd_config_t *root, const char *name, const char *orig_name, int mode)
| Opens a fallback CTL.
int | snd_ctl_close (snd_ctl_t *ctl)
| close CTL handle
int | snd_ctl_nonblock (snd_ctl_t *ctl, int nonblock)
| set nonblock mode
int | snd_async_add_ctl_handler (snd_async_handler_t **handler, snd_ctl_t *ctl, snd_async_callback_t callback, void *private_data)
| Add an async handler for a CTL.
snd_ctl_t * | snd_async_handler_get_ctl (snd_async_handler_t *handler)
| Return CTL handle related to an async handler.
int | snd_ctl_poll_descriptors_count (snd_ctl_t *ctl)
| get count of poll descriptors for CTL handle
int | snd_ctl_poll_descriptors (snd_ctl_t *ctl, struct pollfd *pfds, unsigned int space)
| get poll descriptors
int | snd_ctl_poll_descriptors_revents (snd_ctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)
| get returned events from poll descriptors
int | snd_ctl_subscribe_events (snd_ctl_t *ctl, int subscribe)
| Ask to be informed about events (poll, snd_async_add_ctl_handler, snd_ctl_read).
int | snd_ctl_card_info (snd_ctl_t *ctl, snd_ctl_card_info_t *info)
| Get card related information.
int | snd_ctl_elem_list (snd_ctl_t *ctl, snd_ctl_elem_list_t *list)
| Get a list of element identifiers.
int | snd_ctl_elem_info (snd_ctl_t *ctl, snd_ctl_elem_info_t *info)
| Get CTL element information.
int | snd_ctl_elem_read (snd_ctl_t *ctl, snd_ctl_elem_value_t *value)
| Get CTL element value.
int | snd_ctl_elem_write (snd_ctl_t *ctl, snd_ctl_elem_value_t *value)
| Set CTL element value.
int | snd_ctl_elem_lock (snd_ctl_t *ctl, snd_ctl_elem_id_t *id)
| Lock CTL element.
int | snd_ctl_elem_unlock (snd_ctl_t *ctl, snd_ctl_elem_id_t *id)
| Unlock CTL element.
int | snd_ctl_elem_tlv_read (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int *tlv, unsigned int tlv_size)
| Get CTL element TLV value.
int | snd_ctl_elem_tlv_write (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, const unsigned int *tlv)
| Set CTL element TLV value.
int | snd_ctl_elem_tlv_command (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, const unsigned int *tlv)
| Process CTL element TLV command.
int | snd_ctl_set_power_state (snd_ctl_t *ctl, unsigned int state)
| Set Power State to given SND_CTL_POWER_* value and do the power management.
int | snd_ctl_get_power_state (snd_ctl_t *ctl, unsigned int *state)
| Get actual Power State.
int | snd_ctl_read (snd_ctl_t *ctl, snd_ctl_event_t *event)
| Read an event.
int | snd_ctl_wait (snd_ctl_t *ctl, int timeout)
| Wait for a CTL to become ready (i.e. at least one event pending).
const char * | snd_ctl_name (snd_ctl_t *ctl)
| get identifier of CTL handle
snd_ctl_type_t | snd_ctl_type (snd_ctl_t *ctl)
| get type of CTL handle
const char * | snd_ctl_elem_type_name (snd_ctl_elem_type_t type)
| get name of a CTL element type
const char * | snd_ctl_elem_iface_name (snd_ctl_elem_iface_t iface)
| get name of a CTL element related interface
const char * | snd_ctl_event_type_name (snd_ctl_event_type_t type)
| get name of a CTL event type
unsigned int | snd_ctl_event_elem_get_mask (const snd_ctl_event_t *obj)
| Get event mask for an element related event.
unsigned int | snd_ctl_event_elem_get_numid (const snd_ctl_event_t *obj)
| Get element numeric identifier for an element related event.
void | snd_ctl_event_elem_get_id (const snd_ctl_event_t *obj, snd_ctl_elem_id_t *ptr)
| Get CTL element identifier for an element related event.
snd_ctl_elem_iface_t | snd_ctl_event_elem_get_interface (const snd_ctl_event_t *obj)
| Get interface part of CTL element identifier for an element related event.
unsigned int | snd_ctl_event_elem_get_device (const snd_ctl_event_t *obj)
| Get device part of CTL element identifier for an element related event.
unsigned int | snd_ctl_event_elem_get_subdevice (const snd_ctl_event_t *obj)
| Get subdevice part of CTL element identifier for an element related event.
const char * | snd_ctl_event_elem_get_name (const snd_ctl_event_t *obj)
| Get name part of CTL element identifier for an element related event.
unsigned int | snd_ctl_event_elem_get_index (const snd_ctl_event_t *obj)
| Get index part of CTL element identifier for an element related event.
int | snd_ctl_elem_list_alloc_space (snd_ctl_elem_list_t *obj, unsigned int entries)
| allocate space for CTL element identifiers list
void | snd_ctl_elem_list_free_space (snd_ctl_elem_list_t *obj)
| free previously allocated space for CTL element identifiers list
char * | snd_ctl_ascii_elem_id_get (snd_ctl_elem_id_t *id)
| return ASCII CTL element identifier name
int | snd_ctl_ascii_elem_id_parse (snd_ctl_elem_id_t *dst, const char *str)
| parse ASCII string as CTL element identifier
int | snd_ctl_ascii_value_parse (snd_ctl_t *handle, snd_ctl_elem_value_t *dst, snd_ctl_elem_info_t *info, const char *value)
| parse ASCII string as CTL element value
size_t | snd_ctl_elem_id_sizeof (void)
| get size of snd_ctl_elem_id_t
int | snd_ctl_elem_id_malloc (snd_ctl_elem_id_t **ptr)
| allocate an invalid snd_ctl_elem_id_t using standard malloc
void | snd_ctl_elem_id_free (snd_ctl_elem_id_t *obj)
| frees a previously allocated snd_ctl_elem_id_t
void | snd_ctl_elem_id_clear (snd_ctl_elem_id_t *obj)
| clear given snd_ctl_elem_id_t object
void | snd_ctl_elem_id_copy (snd_ctl_elem_id_t *dst, const snd_ctl_elem_id_t *src)
| copy one snd_ctl_elem_id_t to another
unsigned int | snd_ctl_elem_id_get_numid (const snd_ctl_elem_id_t *obj)
| Get numeric identifier from a CTL element identifier.
snd_ctl_elem_iface_t | snd_ctl_elem_id_get_interface (const snd_ctl_elem_id_t *obj)
| Get interface part of a CTL element identifier.
unsigned int | snd_ctl_elem_id_get_device (const snd_ctl_elem_id_t *obj)
| Get device part of a CTL element identifier.
unsigned int | snd_ctl_elem_id_get_subdevice (const snd_ctl_elem_id_t *obj)
| Get subdevice part of a CTL element identifier.
const char * | snd_ctl_elem_id_get_name (const snd_ctl_elem_id_t *obj)
| Get name part of a CTL element identifier.
unsigned int | snd_ctl_elem_id_get_index (const snd_ctl_elem_id_t *obj)
| Get index part of a CTL element identifier.
void | snd_ctl_elem_id_set_numid (snd_ctl_elem_id_t *obj, unsigned int val)
| Set numeric identifier for a CTL element identifier.
void | snd_ctl_elem_id_set_interface (snd_ctl_elem_id_t *obj, snd_ctl_elem_iface_t val)
| Set interface part for a CTL element identifier.
void | snd_ctl_elem_id_set_device (snd_ctl_elem_id_t *obj, unsigned int val)
| Set device part for a CTL element identifier.
void | snd_ctl_elem_id_set_subdevice (snd_ctl_elem_id_t *obj, unsigned int val)
| Set subdevice part for a CTL element identifier.
void | snd_ctl_elem_id_set_name (snd_ctl_elem_id_t *obj, const char *val)
| Set name part for a CTL element identifier.
void | snd_ctl_elem_id_set_index (snd_ctl_elem_id_t *obj, unsigned int val)
| Set index part for a CTL element identifier.
size_t | snd_ctl_card_info_sizeof (void)
| get size of snd_ctl_card_info_t
int | snd_ctl_card_info_malloc (snd_ctl_card_info_t **ptr)
| allocate an invalid snd_ctl_card_info_t using standard malloc
void | snd_ctl_card_info_free (snd_ctl_card_info_t *obj)
| frees a previously allocated snd_ctl_card_info_t
void | snd_ctl_card_info_clear (snd_ctl_card_info_t *obj)
| clear given snd_ctl_card_info_t object
void | snd_ctl_card_info_copy (snd_ctl_card_info_t *dst, const snd_ctl_card_info_t *src)
| copy one snd_ctl_card_info_t to another
int | snd_ctl_card_info_get_card (const snd_ctl_card_info_t *obj)
| Get card number from a CTL card info.
const char * | snd_ctl_card_info_get_id (const snd_ctl_card_info_t *obj)
| Get card identifier from a CTL card info.
const char * | snd_ctl_card_info_get_driver (const snd_ctl_card_info_t *obj)
| Get card driver name from a CTL card info.
const char * | snd_ctl_card_info_get_name (const snd_ctl_card_info_t *obj)
| Get card name from a CTL card info.
const char * | snd_ctl_card_info_get_longname (const snd_ctl_card_info_t *obj)
| Get card long name from a CTL card info.
const char * | snd_ctl_card_info_get_mixername (const snd_ctl_card_info_t *obj)
| Get card mixer name from a CTL card info.
const char * | snd_ctl_card_info_get_components (const snd_ctl_card_info_t *obj)
| Get card component list from a CTL card info.
size_t | snd_ctl_event_sizeof (void)
| get size of snd_ctl_event_t
int | snd_ctl_event_malloc (snd_ctl_event_t **ptr)
| allocate an invalid snd_ctl_event_t using standard malloc
void | snd_ctl_event_free (snd_ctl_event_t *obj)
| frees a previously allocated snd_ctl_event_t
void | snd_ctl_event_clear (snd_ctl_event_t *obj)
| clear given snd_ctl_event_t object
void | snd_ctl_event_copy (snd_ctl_event_t *dst, const snd_ctl_event_t *src)
| copy one snd_ctl_event_t to another
snd_ctl_event_type_t | snd_ctl_event_get_type (const snd_ctl_event_t *obj)
| Get type of a CTL event.
size_t | snd_ctl_elem_list_sizeof (void)
| get size of snd_ctl_elem_list_t
int | snd_ctl_elem_list_malloc (snd_ctl_elem_list_t **ptr)
| allocate an invalid snd_ctl_elem_list_t using standard malloc
void | snd_ctl_elem_list_free (snd_ctl_elem_list_t *obj)
| frees a previously allocated snd_ctl_elem_list_t
void | snd_ctl_elem_list_clear (snd_ctl_elem_list_t *obj)
| clear given snd_ctl_elem_list_t object
void | snd_ctl_elem_list_copy (snd_ctl_elem_list_t *dst, const snd_ctl_elem_list_t *src)
| copy one snd_ctl_elem_list_t to another
void | snd_ctl_elem_list_set_offset (snd_ctl_elem_list_t *obj, unsigned int val)
| Set index of first wanted CTL element identifier in a CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_used (const snd_ctl_elem_list_t *obj)
| Get number of used entries in CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_count (const snd_ctl_elem_list_t *obj)
| Get total count of elements present in CTL device (information present in every filled CTL element identifiers list).
void | snd_ctl_elem_list_get_id (const snd_ctl_elem_list_t *obj, unsigned int idx, snd_ctl_elem_id_t *ptr)
| Get CTL element identifier for an entry of a CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_numid (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get CTL element numeric identifier for an entry of a CTL element identifiers list.
snd_ctl_elem_iface_t | snd_ctl_elem_list_get_interface (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get interface part of CTL element identifier for an entry of a CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_device (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get device part of CTL element identifier for an entry of a CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_subdevice (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get subdevice part of CTL element identifier for an entry of a CTL element identifiers list.
const char * | snd_ctl_elem_list_get_name (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get name part of CTL element identifier for an entry of a CTL element identifiers list.
unsigned int | snd_ctl_elem_list_get_index (const snd_ctl_elem_list_t *obj, unsigned int idx)
| Get index part of CTL element identifier for an entry of a CTL element identifiers list.
size_t | snd_ctl_elem_info_sizeof (void)
| get size of snd_ctl_elem_info_t
int | snd_ctl_elem_info_malloc (snd_ctl_elem_info_t **ptr)
| allocate an invalid snd_ctl_elem_info_t using standard malloc
void | snd_ctl_elem_info_free (snd_ctl_elem_info_t *obj)
| frees a previously allocated snd_ctl_elem_info_t
void | snd_ctl_elem_info_clear (snd_ctl_elem_info_t *obj)
| clear given snd_ctl_elem_info_t object
void | snd_ctl_elem_info_copy (snd_ctl_elem_info_t *dst, const snd_ctl_elem_info_t *src)
| copy one snd_ctl_elem_info_t to another
snd_ctl_elem_type_t | snd_ctl_elem_info_get_type (const snd_ctl_elem_info_t *obj)
| Get type from a CTL element id/info.
int | snd_ctl_elem_info_is_readable (const snd_ctl_elem_info_t *obj)
| Get info about readability from a CTL element id/info.
int | snd_ctl_elem_info_is_writable (const snd_ctl_elem_info_t *obj)
| Get info about writability from a CTL element id/info.
int | snd_ctl_elem_info_is_volatile (const snd_ctl_elem_info_t *obj)
| Get info about notification feasibility from a CTL element id/info.
int | snd_ctl_elem_info_is_inactive (const snd_ctl_elem_info_t *obj)
| Get info about status from a CTL element id/info.
int | snd_ctl_elem_info_is_locked (const snd_ctl_elem_info_t *obj)
| Get info whether an element is locked.
int | snd_ctl_elem_info_is_tlv_readable (const snd_ctl_elem_info_t *obj)
| Get info about TLV readability from a CTL element id/info.
int | snd_ctl_elem_info_is_tlv_writable (const snd_ctl_elem_info_t *obj)
| Get info about TLV writeability from a CTL element id/info.
int | snd_ctl_elem_info_is_tlv_commandable (const snd_ctl_elem_info_t *obj)
| Get info about TLV command possibility from a CTL element id/info.
int | snd_ctl_elem_info_is_owner (const snd_ctl_elem_info_t *obj)
| Get info if I own an element.
int | snd_ctl_elem_info_is_user (const snd_ctl_elem_info_t *obj)
| Get info if it's a user element.
pid_t | snd_ctl_elem_info_get_owner (const snd_ctl_elem_info_t *obj)
| Get owner of a locked element.
unsigned int | snd_ctl_elem_info_get_count (const snd_ctl_elem_info_t *obj)
| Get number of value entries from a CTL element id/info.
long | snd_ctl_elem_info_get_min (const snd_ctl_elem_info_t *obj)
| Get minimum value from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.
long | snd_ctl_elem_info_get_max (const snd_ctl_elem_info_t *obj)
| Get maximum value from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.
long | snd_ctl_elem_info_get_step (const snd_ctl_elem_info_t *obj)
| Get value step from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.
long long | snd_ctl_elem_info_get_min64 (const snd_ctl_elem_info_t *obj)
| Get minimum value from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.
long long | snd_ctl_elem_info_get_max64 (const snd_ctl_elem_info_t *obj)
| Get maximum value from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.
long long | snd_ctl_elem_info_get_step64 (const snd_ctl_elem_info_t *obj)
| Get value step from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.
unsigned int | snd_ctl_elem_info_get_items (const snd_ctl_elem_info_t *obj)
| Get number of items available from a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.
void | snd_ctl_elem_info_set_item (snd_ctl_elem_info_t *obj, unsigned int val)
| Select item in a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.
const char * | snd_ctl_elem_info_get_item_name (const snd_ctl_elem_info_t *obj)
| Get name for selected item in a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.
int | snd_ctl_elem_info_get_dimensions (const snd_ctl_elem_info_t *obj)
| Get count of dimensions for given element.
int | snd_ctl_elem_info_get_dimension (const snd_ctl_elem_info_t *obj, unsigned int idx)
| Get specified of dimension width for given element.
void | snd_ctl_elem_info_get_id (const snd_ctl_elem_info_t *obj, snd_ctl_elem_id_t *ptr)
| Get CTL element identifier of a CTL element id/info.
unsigned int | snd_ctl_elem_info_get_numid (const snd_ctl_elem_info_t *obj)
| Get element numeric identifier of a CTL element id/info.
snd_ctl_elem_iface_t | snd_ctl_elem_info_get_interface (const snd_ctl_elem_info_t *obj)
| Get interface part of CTL element identifier of a CTL element id/info.
unsigned int | snd_ctl_elem_info_get_device (const snd_ctl_elem_info_t *obj)
| Get device part of CTL element identifier of a CTL element id/info.
unsigned int | snd_ctl_elem_info_get_subdevice (const snd_ctl_elem_info_t *obj)
| Get subdevice part of CTL element identifier of a CTL element id/info.
const char * | snd_ctl_elem_info_get_name (const snd_ctl_elem_info_t *obj)
| Get name part of CTL element identifier of a CTL element id/info.
unsigned int | snd_ctl_elem_info_get_index (const snd_ctl_elem_info_t *obj)
| Get index part of CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_id (snd_ctl_elem_info_t *obj, const snd_ctl_elem_id_t *ptr)
| Set CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_numid (snd_ctl_elem_info_t *obj, unsigned int val)
| Set element numeric identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_interface (snd_ctl_elem_info_t *obj, snd_ctl_elem_iface_t val)
| Set interface part of CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_device (snd_ctl_elem_info_t *obj, unsigned int val)
| Set device part of CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_subdevice (snd_ctl_elem_info_t *obj, unsigned int val)
| Set subdevice part of CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_name (snd_ctl_elem_info_t *obj, const char *val)
| Set name part of CTL element identifier of a CTL element id/info.
void | snd_ctl_elem_info_set_index (snd_ctl_elem_info_t *obj, unsigned int val)
| Set index part of CTL element identifier of a CTL element id/info.
int | snd_ctl_elem_add_integer (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, long imin, long imax, long istep)
| Create and add an user INTEGER CTL element.
int | snd_ctl_elem_add_integer64 (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, long long imin, long long imax, long long istep)
| Create and add an user INTEGER64 CTL element.
int | snd_ctl_elem_add_boolean (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count)
| Create and add an user BOOLEAN CTL element.
int | snd_ctl_elem_add_enumerated (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, unsigned int items, const char *const names[])
| Create and add a user-defined control element of type enumerated.
int | snd_ctl_elem_add_iec958 (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id)
| Create and add an user IEC958 CTL element.
int | snd_ctl_elem_remove (snd_ctl_t *ctl, snd_ctl_elem_id_t *id)
| Remove an user CTL element.
size_t | snd_ctl_elem_value_sizeof (void)
| get size of snd_ctl_elem_value_t
int | snd_ctl_elem_value_malloc (snd_ctl_elem_value_t **ptr)
| allocate an invalid snd_ctl_elem_value_t using standard malloc
void | snd_ctl_elem_value_free (snd_ctl_elem_value_t *obj)
| frees a previously allocated snd_ctl_elem_value_t
void | snd_ctl_elem_value_clear (snd_ctl_elem_value_t *obj)
| clear given snd_ctl_elem_value_t object
void | snd_ctl_elem_value_copy (snd_ctl_elem_value_t *dst, const snd_ctl_elem_value_t *src)
| copy one snd_ctl_elem_value_t to another
int | snd_ctl_elem_value_compare (snd_ctl_elem_value_t *left, const snd_ctl_elem_value_t *right)
| compare one snd_ctl_elem_value_t to another
void | snd_ctl_elem_value_get_id (const snd_ctl_elem_value_t *obj, snd_ctl_elem_id_t *ptr)
| Get CTL element identifier of a CTL element id/value.
unsigned int | snd_ctl_elem_value_get_numid (const snd_ctl_elem_value_t *obj)
| Get element numeric identifier of a CTL element id/value.
snd_ctl_elem_iface_t | snd_ctl_elem_value_get_interface (const snd_ctl_elem_value_t *obj)
| Get interface part of CTL element identifier of a CTL element id/value.
unsigned int | snd_ctl_elem_value_get_device (const snd_ctl_elem_value_t *obj)
| Get device part of CTL element identifier of a CTL element id/value.
unsigned int | snd_ctl_elem_value_get_subdevice (const snd_ctl_elem_value_t *obj)
| Get subdevice part of CTL element identifier of a CTL element id/value.
const char * | snd_ctl_elem_value_get_name (const snd_ctl_elem_value_t *obj)
| Get name part of CTL element identifier of a CTL element id/value.
unsigned int | snd_ctl_elem_value_get_index (const snd_ctl_elem_value_t *obj)
| Get index part of CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_id (snd_ctl_elem_value_t *obj, const snd_ctl_elem_id_t *ptr)
| Set CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_numid (snd_ctl_elem_value_t *obj, unsigned int val)
| Set element numeric identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_interface (snd_ctl_elem_value_t *obj, snd_ctl_elem_iface_t val)
| Set interface part of CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_device (snd_ctl_elem_value_t *obj, unsigned int val)
| Set device part of CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_subdevice (snd_ctl_elem_value_t *obj, unsigned int val)
| Set subdevice part of CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_name (snd_ctl_elem_value_t *obj, const char *val)
| Set name part of CTL element identifier of a CTL element id/value.
void | snd_ctl_elem_value_set_index (snd_ctl_elem_value_t *obj, unsigned int val)
| Set index part of CTL element identifier of a CTL element id/value.
int | snd_ctl_elem_value_get_boolean (const snd_ctl_elem_value_t *obj, unsigned int idx)
| Get value for an entry of a SND_CTL_ELEM_TYPE_BOOLEAN CTL element id/value.
long | snd_ctl_elem_value_get_integer (const snd_ctl_elem_value_t *obj, unsigned int idx)
| Get value for an entry of a SND_CTL_ELEM_TYPE_INTEGER CTL element id/value.
long long | snd_ctl_elem_value_get_integer64 (const snd_ctl_elem_value_t *obj, unsigned int idx)
| Get value for an entry of a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value.
unsigned int | snd_ctl_elem_value_get_enumerated (const snd_ctl_elem_value_t *obj, unsigned int idx)
| Get value for an entry of a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value.
unsigned char | snd_ctl_elem_value_get_byte (const snd_ctl_elem_value_t *obj, unsigned int idx)
| Get value for an entry of a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.
void | snd_ctl_elem_value_set_boolean (snd_ctl_elem_value_t *obj, unsigned int idx, long val)
| Set value for an entry of a SND_CTL_ELEM_TYPE_BOOLEAN CTL element id/value.
void | snd_ctl_elem_value_set_integer (snd_ctl_elem_value_t *obj, unsigned int idx, long val)
| Set value for an entry of a SND_CTL_ELEM_TYPE_INTEGER CTL element id/value.
void | snd_ctl_elem_value_set_integer64 (snd_ctl_elem_value_t *obj, unsigned int idx, long long val)
| Set value for an entry of a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value.
void | snd_ctl_elem_value_set_enumerated (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned int val)
| Set value for an entry of a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value.
void | snd_ctl_elem_value_set_byte (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned char val)
| Set value for an entry of a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.
void | snd_ctl_elem_set_bytes (snd_ctl_elem_value_t *obj, void *data, size_t size)
| Set CTL element SND_CTL_ELEM_TYPE_BYTES value.
const void * | snd_ctl_elem_value_get_bytes (const snd_ctl_elem_value_t *obj)
| Get value for a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.
void | snd_ctl_elem_value_get_iec958 (const snd_ctl_elem_value_t *obj, snd_aes_iec958_t *ptr)
| Get value for a SND_CTL_ELEM_TYPE_IEC958 CTL element id/value.
void | snd_ctl_elem_value_set_iec958 (snd_ctl_elem_value_t *obj, const snd_aes_iec958_t *ptr)
| Set value for a SND_CTL_ELEM_TYPE_IEC958 CTL element id/value.
int | snd_tlv_parse_dB_info (unsigned int *tlv, unsigned int tlv_size, unsigned int **db_tlvp)
| Parse TLV stream and retrieve dB information.
int | snd_tlv_get_dB_range (unsigned int *tlv, long rangemin, long rangemax, long *min, long *max)
| Get the dB min/max values.
int | snd_tlv_convert_to_dB (unsigned int *tlv, long rangemin, long rangemax, long volume, long *db_gain)
| Convert the given raw volume value to a dB gain.
int | snd_tlv_convert_from_dB (unsigned int *tlv, long rangemin, long rangemax, long db_gain, long *value, int xdir)
| Convert from dB gain to the corresponding raw value.
int | snd_ctl_get_dB_range (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, long *min, long *max)
| Get the dB min/max values on the given control element.
int | snd_ctl_convert_to_dB (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, long volume, long *db_gain)
| Convert the volume value to dB on the given control element.
int | snd_ctl_convert_from_dB (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, long db_gain, long *value, int xdir)
| Convert from dB gain to the raw volume value on the given control element.

## Detailed Description

The control interface. See Control interface page for more details.

## Define Documentation

#define SND_CONTROL_DLSYM_VERSION _dlsym_control_001

dlsym version for interface entry callback

#define SND_CTL_ASYNC

Async notification (flag for open mode)

#define snd_ctl_card_info_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_card_info_t using standard alloca

Parameters:

  | ptr | returned pointer

#define snd_ctl_elem_id_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_elem_id_t using standard alloca

Parameters:

  | ptr | returned pointer

#define snd_ctl_elem_info_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_elem_info_t using standard alloca

Parameters:

  | ptr | returned pointer

#define snd_ctl_elem_list_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_elem_list_t using standard alloca

Parameters:

  | ptr | returned pointer

#define snd_ctl_elem_value_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_elem_value_t using standard alloca

Parameters:

  | ptr | returned pointer

#define snd_ctl_event_alloca | ( | ptr |  | ) |

allocate an invalid snd_ctl_event_t using standard alloca

Parameters:

  | ptr | returned pointer

#define SND_CTL_EVENT_MASK_ADD

Element has been added

#define SND_CTL_EVENT_MASK_INFO

Element info has been changed

#define SND_CTL_EVENT_MASK_REMOVE

Element has been removed (Warning: test this first and if set don't test the other masks)

#define SND_CTL_EVENT_MASK_TLV

Element's TLV value has been changed

#define SND_CTL_EVENT_MASK_VALUE

Element value has been changed

#define SND_CTL_NAME_CAPTURE "Capture "

CTL name helper

#define SND_CTL_NAME_IEC958 | ( | expl,
|  | direction,
|  | what |  | ) | "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what

Element name for IEC958 (S/PDIF)

#define SND_CTL_NAME_IEC958_CON_MASK "Con Mask"

CTL name helper

#define SND_CTL_NAME_IEC958_DEFAULT "Default"

CTL name helper

#define SND_CTL_NAME_IEC958_MASK "Mask"

CTL name helper

#define SND_CTL_NAME_IEC958_NONE ""

CTL name helper

#define SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream"

CTL name helper

#define SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask"

CTL name helper

#define SND_CTL_NAME_IEC958_SWITCH "Switch"

CTL name helper

#define SND_CTL_NAME_IEC958_VOLUME "Volume"

CTL name helper

#define SND_CTL_NAME_NONE ""

CTL name helper

#define SND_CTL_NAME_PLAYBACK "Playback "

CTL name helper

#define SND_CTL_NONBLOCK

Non blocking mode (flag for open mode)

#define SND_CTL_POWER_D0 0x0000

ACPI/PCI Power State D0

#define SND_CTL_POWER_D1 0x0100

ACPI/PCI Power State D1

#define SND_CTL_POWER_D2 0x0200

ACPI/PCI Power State D2

#define SND_CTL_POWER_D3 0x0300

ACPI/PCI Power State D3

#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001)

ACPI/PCI Power State D3cold

#define SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000)

ACPI/PCI Power State D3hot

#define SND_CTL_POWER_MASK 0xff00

Mask for the major Power State identifier

#define SND_CTL_READONLY

Read only (flag for open mode)

#define SND_CTL_TLV_DB_GAIN_MUTE -9999999

Mute state

#define SND_CTL_TLVT_CHMAP_FIXED 0x00101

TLV type - fixed channel map positions

#define SND_CTL_TLVT_CHMAP_PAIRED 0x00103

TLV type - pair-wise swappable channel map positions

#define SND_CTL_TLVT_CHMAP_VAR 0x00102

TLV type - freely swappable channel map positions

#define SND_CTL_TLVT_CONTAINER 0x0000

TLV type - Container

#define SND_CTL_TLVT_DB_LINEAR 0x0002

TLV type - linear volume

#define SND_CTL_TLVT_DB_MINMAX 0x0004

TLV type - dB scale specified by min/max values

#define SND_CTL_TLVT_DB_MINMAX_MUTE 0x0005

TLV type - dB scale specified by min/max values (with mute)

#define SND_CTL_TLVT_DB_RANGE 0x0003

TLV type - dB range container

#define SND_CTL_TLVT_DB_SCALE 0x0001

TLV type - basic dB scale

#define SND_SCTL_NOFREE 0x0001

Don't destroy the ctl handle when close

## Typedef Documentation

typedef struct _snd_ctl_card_info snd_ctl_card_info_t

CTL card info container

typedef struct _snd_ctl_elem_id snd_ctl_elem_id_t

CTL element identifier container

typedef struct _snd_ctl_elem_info snd_ctl_elem_info_t

CTL element info container

typedef struct _snd_ctl_elem_list snd_ctl_elem_list_t

CTL element identifier list container

typedef struct _snd_ctl_elem_value snd_ctl_elem_value_t

CTL element value container

typedef struct _snd_ctl_event snd_ctl_event_t

CTL event container

typedef struct _snd_ctl snd_ctl_t

CTL handle

typedef struct _snd_sctl snd_sctl_t

SCTL type

## Enumeration Type Documentation

enum snd_ctl_elem_iface_t

CTL related interface

Enumerator:

  SND_CTL_ELEM_IFACE_CARD | Card level
  SND_CTL_ELEM_IFACE_HWDEP | Hardware dependent device
  SND_CTL_ELEM_IFACE_MIXER | Mixer
  SND_CTL_ELEM_IFACE_PCM | PCM
  SND_CTL_ELEM_IFACE_RAWMIDI | RawMidi
  SND_CTL_ELEM_IFACE_TIMER | Timer
  SND_CTL_ELEM_IFACE_SEQUENCER | Sequencer

enum snd_ctl_elem_type_t

CTL element type

Enumerator:

  SND_CTL_ELEM_TYPE_NONE | Invalid type
  SND_CTL_ELEM_TYPE_BOOLEAN | Boolean contents
  SND_CTL_ELEM_TYPE_INTEGER | Integer contents
  SND_CTL_ELEM_TYPE_ENUMERATED | Enumerated contents
  SND_CTL_ELEM_TYPE_BYTES | Bytes contents
  SND_CTL_ELEM_TYPE_IEC958 | IEC958 (S/PDIF) setting content
  SND_CTL_ELEM_TYPE_INTEGER64 | 64-bit integer contents

enum snd_ctl_event_type_t

Event class

Enumerator:

  SND_CTL_EVENT_ELEM | Elements related event

enum snd_ctl_type_t

CTL type

Enumerator:

  SND_CTL_TYPE_HW | Kernel level CTL
  SND_CTL_TYPE_SHM | Shared memory client CTL
  SND_CTL_TYPE_INET | INET client CTL (not yet implemented)
  SND_CTL_TYPE_EXT | External control plugin

## Function Documentation

int snd_async_add_ctl_handler | ( | snd_async_handler_t ** | handler,
|  | snd_ctl_t * | ctl,
|  | snd_async_callback_t | callback,
|  | void * | private_data |
| ) |  |  |

Add an async handler for a CTL.

Parameters:

  | handler | Returned handler handle
  | ctl | CTL handle
  | callback | Callback function
  | private_data | Callback private data

Returns:
  0 otherwise a negative error code on failure

snd_ctl_t* snd_async_handler_get_ctl | ( | snd_async_handler_t * | handler | ) |

Return CTL handle related to an async handler.

Parameters:

  | handler | Async handler handle

Returns:
  CTL handle

int snd_card_get_index | ( | const char * | string | ) |

Convert card string to an integer value.

Parameters:

  | string | String containing card identifier

Returns:
  zero if success, otherwise a negative error code

The accepted format is an integer value in ASCII representation or the card identifier (the id parameter for sound-card drivers). The control device name like /dev/snd/controlC0 is accepted, too.

int snd_card_get_longname | ( | int | card,
|  | char ** | name |
| ) |  |  |

Obtain the card long name.

Parameters:

  | card | Card number
  | name | Result - card long name corresponding to card number

Returns:
  zero if success, otherwise a negative error code

The value returned in name is allocated with strdup and should be freed when no longer used.

int snd_card_get_name | ( | int | card,
|  | char ** | name |
| ) |  |  |

Obtain the card name.

Parameters:

  | card | Card number
  | name | Result - card name corresponding to card number

Returns:
  zero if success, otherwise a negative error code

The value returned in name is allocated with strdup and should be freed when no longer used.

int snd_card_load | ( | int | card | ) |

Try to load the driver for a card.

Parameters:

  | card | Card number.

Returns:
  1 if driver is present, zero if driver is not present

int snd_card_next | ( | int * | rcard | ) |

Try to determine the next card.

Parameters:

  | rcard | pointer to card number

Returns:
  zero if success, otherwise a negative error code

Tries to determine the next card from given card number. If card number is -1, then the first available card is returned. If the result card number is -1, no more cards are available.

char* snd_ctl_ascii_elem_id_get | ( | snd_ctl_elem_id_t * | id | ) |

return ASCII CTL element identifier name

Parameters:

  | id | CTL identifier

Returns:
  ascii identifier of CTL element

The string is allocated using strdup().

int snd_ctl_ascii_elem_id_parse | ( | snd_ctl_elem_id_t * | dst,
|  | const char * | str |
| ) |  |  |

parse ASCII string as CTL element identifier

Parameters:

  | dst | destination CTL identifier
  | str | source ASCII string

Returns:
  zero on success, otherwise a negative error code

int snd_ctl_ascii_value_parse | ( | snd_ctl_t * | handle,
|  | snd_ctl_elem_value_t * | dst,
|  | snd_ctl_elem_info_t * | info,
|  | const char * | value |
| ) |  |  |

parse ASCII string as CTL element value

Parameters:

  | handle | CTL handle
  | dst | destination CTL element value
  | info | CTL element info structure
  | value | source ASCII string

Returns:
  zero on success, otherwise a negative error code

Note: For toggle command, the dst must contain previous (current) state (do the snd_ctl_elem_read call to obtain it).

int snd_ctl_card_info | ( | snd_ctl_t * | ctl,
|  | snd_ctl_card_info_t * | info |
| ) |  |  |

Get card related information.

Parameters:

  | ctl | CTL handle
  | info | Card info pointer

Returns:
  0 on success otherwise a negative error code

void snd_ctl_card_info_clear | ( | snd_ctl_card_info_t * | obj | ) |

clear given snd_ctl_card_info_t object

Parameters:

  | obj | pointer to object to clear

void snd_ctl_card_info_copy | ( | snd_ctl_card_info_t * | dst,
|  | const snd_ctl_card_info_t * | src |
| ) |  |  |

copy one snd_ctl_card_info_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

void snd_ctl_card_info_free | ( | snd_ctl_card_info_t * | obj | ) |

frees a previously allocated snd_ctl_card_info_t

Parameters:

  | obj | pointer to object to free

int snd_ctl_card_info_get_card | ( | const snd_ctl_card_info_t * | obj | ) |

Get card number from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card number

const char* snd_ctl_card_info_get_components | ( | const snd_ctl_card_info_t * | obj | ) |

Get card component list from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card mixer identifier

const char* snd_ctl_card_info_get_driver | ( | const snd_ctl_card_info_t * | obj | ) |

Get card driver name from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card driver name

const char* snd_ctl_card_info_get_id | ( | const snd_ctl_card_info_t * | obj | ) |

Get card identifier from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card identifier

const char* snd_ctl_card_info_get_longname | ( | const snd_ctl_card_info_t * | obj | ) |

Get card long name from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card long name

const char* snd_ctl_card_info_get_mixername | ( | const snd_ctl_card_info_t * | obj | ) |

Get card mixer name from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card mixer name

const char* snd_ctl_card_info_get_name | ( | const snd_ctl_card_info_t * | obj | ) |

Get card name from a CTL card info.

Parameters:

  | obj | CTL card info

Returns:
  card name

int snd_ctl_card_info_malloc | ( | snd_ctl_card_info_t ** | ptr | ) |

allocate an invalid snd_ctl_card_info_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

size_t snd_ctl_card_info_sizeof | ( | void |  | ) |

get size of snd_ctl_card_info_t

Returns:
  size in bytes

int snd_ctl_close | ( | snd_ctl_t * | ctl | ) |

close CTL handle

Parameters:

  | ctl | CTL handle

Returns:
  0 on success otherwise a negative error code

Closes the specified CTL handle and frees all associated resources.

int snd_ctl_convert_from_dB | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | long | db_gain,
|  | long * | value,
|  | int | xdir |
| ) |  |  |

Convert from dB gain to the raw volume value on the given control element.

Parameters:

  | ctl | the control handler
  | id | the element id
  | db_gain | the dB gain to convert (in 0.01dB unit)
  | value | the pointer to store the converted raw volume value
  | xdir | the direction for round-up. The value is round up when this is positive.

Returns:
  0 if successful, or a negative error code

int snd_ctl_convert_to_dB | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | long | volume,
|  | long * | db_gain |
| ) |  |  |

Convert the volume value to dB on the given control element.

Parameters:

  | ctl | the control handler
  | id | the element id
  | volume | the raw volume value to convert
  | db_gain | the dB gain (in 0.01dB unit)

Returns:
  0 if successful, or a negative error code

int snd_ctl_elem_add_boolean | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | unsigned int | count |
| ) |  |  |

Create and add an user BOOLEAN CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element id to add
  | count | number of elements

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_add_enumerated | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | unsigned int | count,
|  | unsigned int | items,
|  | const char *const | names[] |
| ) |  |  |

Create and add a user-defined control element of type enumerated.

Parameters:

  `[in]` | ctl | Control device handle.
  `[in]` | id | ID of the new control element.
  `[in]` | count | Number of element values.
  `[in]` | items | Range of possible values (0 ... items - 1).
  `[in]` | names | An array containing items strings.

Returns:
  Zero on success, otherwise a negative error code.

This function creates a user element, i.e., a control element that is not controlled by the control device's driver but that is just stored together with the other elements of ctl.

The fields of id, except numid, must be set to unique values that identify the new element.

The new element is locked; its value is initialized as zero.

Errors:
  -EBUSY
    A control element with ID id already exists.
  -EINVAL
    count is not at least one or greater than 128, or items is not at least one, or a string in names is empty or longer than 63 bytes, or the strings in names require more than 64 KB storage.
  -ENOMEM
    Out of memory, or there are too many user control elements.
  -ENXIO
    This driver does not support (enumerated) user controls.
  -ENODEV
    Device unplugged.

Compatibility:
  snd_ctl_elem_add_enumerated() was introduced in ALSA 1.0.25.

int snd_ctl_elem_add_iec958 | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id |
| ) |  |  |

Create and add an user IEC958 CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element info to add

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_add_integer | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | unsigned int | count,
|  | long | min,
|  | long | max,
|  | long | step |
| ) |  |  |

Create and add an user INTEGER CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element id to add
  | count | number of elements
  | min | minimum value
  | max | maximum value
  | step | value step

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_add_integer64 | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | unsigned int | count,
|  | long long | min,
|  | long long | max,
|  | long long | step |
| ) |  |  |

Create and add an user INTEGER64 CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element id to add
  | count | number of elements
  | min | minimum value
  | max | maximum value
  | step | value step

Returns:
  0 on success otherwise a negative error code

void snd_ctl_elem_id_clear | ( | snd_ctl_elem_id_t * | obj | ) |

clear given snd_ctl_elem_id_t object

Parameters:

  | obj | pointer to object to clear

void snd_ctl_elem_id_copy | ( | snd_ctl_elem_id_t * | dst,
|  | const snd_ctl_elem_id_t * | src |
| ) |  |  |

copy one snd_ctl_elem_id_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

void snd_ctl_elem_id_free | ( | snd_ctl_elem_id_t * | obj | ) |

frees a previously allocated snd_ctl_elem_id_t

Parameters:

  | obj | pointer to object to free

unsigned int snd_ctl_elem_id_get_device | ( | const snd_ctl_elem_id_t * | obj | ) |

Get device part of a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element related device

unsigned int snd_ctl_elem_id_get_index | ( | const snd_ctl_elem_id_t * | obj | ) |

Get index part of a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element index

snd_ctl_elem_iface_t snd_ctl_elem_id_get_interface | ( | const snd_ctl_elem_id_t * | obj | ) |

Get interface part of a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element related interface

const char* snd_ctl_elem_id_get_name | ( | const snd_ctl_elem_id_t * | obj | ) |

Get name part of a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element name

unsigned int snd_ctl_elem_id_get_numid | ( | const snd_ctl_elem_id_t * | obj | ) |

Get numeric identifier from a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element numeric identifier

unsigned int snd_ctl_elem_id_get_subdevice | ( | const snd_ctl_elem_id_t * | obj | ) |

Get subdevice part of a CTL element identifier.

Parameters:

  | obj | CTL element identifier

Returns:
  CTL element related subdevice

int snd_ctl_elem_id_malloc | ( | snd_ctl_elem_id_t ** | ptr | ) |

allocate an invalid snd_ctl_elem_id_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

void snd_ctl_elem_id_set_device | ( | snd_ctl_elem_id_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set device part for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element related device

void snd_ctl_elem_id_set_index | ( | snd_ctl_elem_id_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set index part for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element index

void snd_ctl_elem_id_set_interface | ( | snd_ctl_elem_id_t * | obj,
|  | snd_ctl_elem_iface_t | val |
| ) |  |  |

Set interface part for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element related interface

void snd_ctl_elem_id_set_name | ( | snd_ctl_elem_id_t * | obj,
|  | const char * | val |
| ) |  |  |

Set name part for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element name

void snd_ctl_elem_id_set_numid | ( | snd_ctl_elem_id_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set numeric identifier for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element numeric identifier

void snd_ctl_elem_id_set_subdevice | ( | snd_ctl_elem_id_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set subdevice part for a CTL element identifier.

Parameters:

  | obj | CTL element identifier
  | val | CTL element related subdevice

size_t snd_ctl_elem_id_sizeof | ( | void |  | ) |

get size of snd_ctl_elem_id_t

Returns:
  size in bytes

const char* snd_ctl_elem_iface_name | ( | snd_ctl_elem_iface_t | iface | ) |

get name of a CTL element related interface

Parameters:

  | iface | CTL element related interface

Returns:
  ascii name of CTL element related interface

int snd_ctl_elem_info | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_info_t * | info |
| ) |  |  |

Get CTL element information.

Parameters:

  | ctl | CTL handle
  | info | CTL element id/information pointer

Returns:
  0 on success otherwise a negative error code

void snd_ctl_elem_info_clear | ( | snd_ctl_elem_info_t * | obj | ) |

clear given snd_ctl_elem_info_t object

Parameters:

  | obj | pointer to object to clear

void snd_ctl_elem_info_copy | ( | snd_ctl_elem_info_t * | dst,
|  | const snd_ctl_elem_info_t * | src |
| ) |  |  |

copy one snd_ctl_elem_info_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

void snd_ctl_elem_info_free | ( | snd_ctl_elem_info_t * | obj | ) |

frees a previously allocated snd_ctl_elem_info_t

Parameters:

  | obj | pointer to object to free

unsigned int snd_ctl_elem_info_get_count | ( | const snd_ctl_elem_info_t * | obj | ) |

Get number of value entries from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  value entries count

unsigned int snd_ctl_elem_info_get_device | ( | const snd_ctl_elem_info_t * | obj | ) |

Get device part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  device part of element identifier

int snd_ctl_elem_info_get_dimension | ( | const snd_ctl_elem_info_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get specified of dimension width for given element.

Parameters:

  | obj | CTL element id/info
  | idx | The dimension index

Returns:
  zero value if no dimension width is defined, otherwise positive value with with of specified dimension

int snd_ctl_elem_info_get_dimensions | ( | const snd_ctl_elem_info_t * | obj | ) |

Get count of dimensions for given element.

Parameters:

  | obj | CTL element id/info

Returns:
  zero value if no dimensions are defined, otherwise positive value with count of dimensions

void snd_ctl_elem_info_get_id | ( | const snd_ctl_elem_info_t * | obj,
|  | snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Get CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | ptr | Pointer to returned CTL element identifier

unsigned int snd_ctl_elem_info_get_index | ( | const snd_ctl_elem_info_t * | obj | ) |

Get index part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  index part of element identifier

snd_ctl_elem_iface_t snd_ctl_elem_info_get_interface | ( | const snd_ctl_elem_info_t * | obj | ) |

Get interface part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  interface part of element identifier

const char* snd_ctl_elem_info_get_item_name | ( | const snd_ctl_elem_info_t * | obj | ) |

Get name for selected item in a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  name of chosen item

unsigned int snd_ctl_elem_info_get_items | ( | const snd_ctl_elem_info_t * | obj | ) |

Get number of items available from a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  items count

long snd_ctl_elem_info_get_max | ( | const snd_ctl_elem_info_t * | obj | ) |

Get maximum value from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Maximum value

long long snd_ctl_elem_info_get_max64 | ( | const snd_ctl_elem_info_t * | obj | ) |

Get maximum value from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Maximum value

long snd_ctl_elem_info_get_min | ( | const snd_ctl_elem_info_t * | obj | ) |

Get minimum value from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Minimum value

long long snd_ctl_elem_info_get_min64 | ( | const snd_ctl_elem_info_t * | obj | ) |

Get minimum value from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Minimum value

const char* snd_ctl_elem_info_get_name | ( | const snd_ctl_elem_info_t * | obj | ) |

Get name part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  name part of element identifier

unsigned int snd_ctl_elem_info_get_numid | ( | const snd_ctl_elem_info_t * | obj | ) |

Get element numeric identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  element numeric identifier

pid_t snd_ctl_elem_info_get_owner | ( | const snd_ctl_elem_info_t * | obj | ) |

Get owner of a locked element.

Parameters:

  | obj | CTL element id/info

Returns:
  value entries count

long snd_ctl_elem_info_get_step | ( | const snd_ctl_elem_info_t * | obj | ) |

Get value step from a SND_CTL_ELEM_TYPE_INTEGER CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Step

long long snd_ctl_elem_info_get_step64 | ( | const snd_ctl_elem_info_t * | obj | ) |

Get value step from a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  Step

unsigned int snd_ctl_elem_info_get_subdevice | ( | const snd_ctl_elem_info_t * | obj | ) |

Get subdevice part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  subdevice part of element identifier

snd_ctl_elem_type_t snd_ctl_elem_info_get_type | ( | const snd_ctl_elem_info_t * | obj | ) |

Get type from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  CTL element content type

int snd_ctl_elem_info_is_inactive | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about status from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element value is not active, 1 if is active

int snd_ctl_elem_info_is_locked | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info whether an element is locked.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element value is currently changeable, 1 if it's locked by another application

int snd_ctl_elem_info_is_owner | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info if I own an element.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element value is currently changeable, 1 if it's locked by another application

int snd_ctl_elem_info_is_readable | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about readability from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element is not readable, 1 if element is readable

int snd_ctl_elem_info_is_tlv_commandable | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about TLV command possibility from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element's TLV command is not possible, 1 if element's TLV command is supported

int snd_ctl_elem_info_is_tlv_readable | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about TLV readability from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element's TLV is not readable, 1 if element's TLV is readable

int snd_ctl_elem_info_is_tlv_writable | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about TLV writeability from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element's TLV is not writable, 1 if element's TLV is writable

int snd_ctl_elem_info_is_user | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info if it's a user element.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element value is a system element, 1 if it's a user-created element

int snd_ctl_elem_info_is_volatile | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about notification feasibility from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if all element value changes are notified to subscribed applications, 1 otherwise

int snd_ctl_elem_info_is_writable | ( | const snd_ctl_elem_info_t * | obj | ) |

Get info about writability from a CTL element id/info.

Parameters:

  | obj | CTL element id/info

Returns:
  0 if element is not writable, 1 if element is not writable

int snd_ctl_elem_info_malloc | ( | snd_ctl_elem_info_t ** | ptr | ) |

allocate an invalid snd_ctl_elem_info_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

void snd_ctl_elem_info_set_device | ( | snd_ctl_elem_info_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set device part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | device part of element identifier

void snd_ctl_elem_info_set_id | ( | snd_ctl_elem_info_t * | obj,
|  | const snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Set CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | ptr | CTL element identifier

void snd_ctl_elem_info_set_index | ( | snd_ctl_elem_info_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set index part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | index part of element identifier

void snd_ctl_elem_info_set_interface | ( | snd_ctl_elem_info_t * | obj,
|  | snd_ctl_elem_iface_t | val |
| ) |  |  |

Set interface part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | interface part of element identifier

void snd_ctl_elem_info_set_item | ( | snd_ctl_elem_info_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Select item in a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | item number

void snd_ctl_elem_info_set_name | ( | snd_ctl_elem_info_t * | obj,
|  | const char * | val |
| ) |  |  |

Set name part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | name part of element identifier

void snd_ctl_elem_info_set_numid | ( | snd_ctl_elem_info_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set element numeric identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | element numeric identifier

void snd_ctl_elem_info_set_subdevice | ( | snd_ctl_elem_info_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set subdevice part of CTL element identifier of a CTL element id/info.

Parameters:

  | obj | CTL element id/info
  | val | subdevice part of element identifier

size_t snd_ctl_elem_info_sizeof | ( | void |  | ) |

get size of snd_ctl_elem_info_t

Returns:
  size in bytes

int snd_ctl_elem_list | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_list_t * | list |
| ) |  |  |

Get a list of element identifiers.

Parameters:

  | ctl | CTL handle
  | list | CTL element identifiers list pointer

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_list_alloc_space | ( | snd_ctl_elem_list_t * | obj,
|  | unsigned int | entries |
| ) |  |  |

allocate space for CTL element identifiers list

Parameters:

  | obj | CTL element identifiers list
  | entries | Entries to allocate

Returns:
  0 on success otherwise a negative error code

void snd_ctl_elem_list_clear | ( | snd_ctl_elem_list_t * | obj | ) |

clear given snd_ctl_elem_list_t object

Parameters:

  | obj | pointer to object to clear

void snd_ctl_elem_list_copy | ( | snd_ctl_elem_list_t * | dst,
|  | const snd_ctl_elem_list_t * | src |
| ) |  |  |

copy one snd_ctl_elem_list_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

void snd_ctl_elem_list_free | ( | snd_ctl_elem_list_t * | obj | ) |

frees a previously allocated snd_ctl_elem_list_t

Parameters:

  | obj | pointer to object to free

void snd_ctl_elem_list_free_space | ( | snd_ctl_elem_list_t * | obj | ) |

free previously allocated space for CTL element identifiers list

Parameters:

  | obj | CTL element identifiers list

unsigned int snd_ctl_elem_list_get_count | ( | const snd_ctl_elem_list_t * | obj | ) |

Get total count of elements present in CTL device (information present in every filled CTL element identifiers list).

Parameters:

  | obj | CTL element identifier list

Returns:
  total number of elements

unsigned int snd_ctl_elem_list_get_device | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get device part of CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element related device

void snd_ctl_elem_list_get_id | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx,
|  | snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Get CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry
  | ptr | Pointer to returned CTL element identifier

unsigned int snd_ctl_elem_list_get_index | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get index part of CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element index

snd_ctl_elem_iface_t snd_ctl_elem_list_get_interface | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get interface part of CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element related interface

const char* snd_ctl_elem_list_get_name | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get name part of CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element name

unsigned int snd_ctl_elem_list_get_numid | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get CTL element numeric identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element numeric identifier

unsigned int snd_ctl_elem_list_get_subdevice | ( | const snd_ctl_elem_list_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get subdevice part of CTL element identifier for an entry of a CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list
  | idx | Index of entry

Returns:
  CTL element related subdevice

unsigned int snd_ctl_elem_list_get_used | ( | const snd_ctl_elem_list_t * | obj | ) |

Get number of used entries in CTL element identifiers list.

Parameters:

  | obj | CTL element identifier list

Returns:
  number of used entries

int snd_ctl_elem_list_malloc | ( | snd_ctl_elem_list_t ** | ptr | ) |

allocate an invalid snd_ctl_elem_list_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

void snd_ctl_elem_list_set_offset | ( | snd_ctl_elem_list_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set index of first wanted CTL element identifier in a CTL element identifiers list.

Parameters:

  | obj | CTL element identifiers list
  | val | index of CTL element to put at position 0 of list

size_t snd_ctl_elem_list_sizeof | ( | void |  | ) |

get size of snd_ctl_elem_list_t

Returns:
  size in bytes

int snd_ctl_elem_lock | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_id_t * | id |
| ) |  |  |

Lock CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element id pointer

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_read | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_value_t * | control |
| ) |  |  |

Get CTL element value.

Parameters:

  | ctl | CTL handle
  | control | CTL element id/value pointer

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_remove | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_id_t * | id |
| ) |  |  |

Remove an user CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element identification

Returns:
  0 on success otherwise a negative error code

void snd_ctl_elem_set_bytes | ( | snd_ctl_elem_value_t * | obj,
|  | void * | data,
|  | size_t | size |
| ) |  |  |

Set CTL element SND_CTL_ELEM_TYPE_BYTES value.

Parameters:

  | obj | CTL handle
  | data | Bytes value
  | size | Size in bytes

int snd_ctl_elem_tlv_command | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | const unsigned int * | tlv |
| ) |  |  |

Process CTL element TLV command.

Parameters:

  | ctl | CTL handle
  | id | CTL element id pointer
  | tlv | TLV array pointer to process

Return values:

  | 0 | on success
  | >0 | on success when value was changed
  | <0 | a negative error code

int snd_ctl_elem_tlv_read | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | unsigned int * | tlv,
|  | unsigned int | tlv_size |
| ) |  |  |

Get CTL element TLV value.

Parameters:

  | ctl | CTL handle
  | id | CTL element id pointer
  | tlv | TLV array pointer to store
  | tlv_size | TLV array size in bytes

Returns:
  0 on success otherwise a negative error code

int snd_ctl_elem_tlv_write | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | const unsigned int * | tlv |
| ) |  |  |

Set CTL element TLV value.

Parameters:

  | ctl | CTL handle
  | id | CTL element id pointer
  | tlv | TLV array pointer to store

Return values:

  | 0 | on success
  | >0 | on success when value was changed
  | <0 | a negative error code

const char* snd_ctl_elem_type_name | ( | snd_ctl_elem_type_t | type | ) |

get name of a CTL element type

Parameters:

  | type | CTL element type

Returns:
  ascii name of CTL element type

int snd_ctl_elem_unlock | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_id_t * | id |
| ) |  |  |

Unlock CTL element.

Parameters:

  | ctl | CTL handle
  | id | CTL element id pointer

Returns:
  0 on success otherwise a negative error code

void snd_ctl_elem_value_clear | ( | snd_ctl_elem_value_t * | obj | ) |

clear given snd_ctl_elem_value_t object

Parameters:

  | obj | pointer to object to clear

int snd_ctl_elem_value_compare | ( | snd_ctl_elem_value_t * | left,
|  | const snd_ctl_elem_value_t * | right |
| ) |  |  |

compare one snd_ctl_elem_value_t to another

Parameters:

  | left | pointer to first value
  | right | pointer to second value

Returns:
  0 on match, less than or greater than otherwise, see memcmp

void snd_ctl_elem_value_copy | ( | snd_ctl_elem_value_t * | dst,
|  | const snd_ctl_elem_value_t * | src |
| ) |  |  |

copy one snd_ctl_elem_value_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

void snd_ctl_elem_value_free | ( | snd_ctl_elem_value_t * | obj | ) |

frees a previously allocated snd_ctl_elem_value_t

Parameters:

  | obj | pointer to object to free

int snd_ctl_elem_value_get_boolean | ( | const snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get value for an entry of a SND_CTL_ELEM_TYPE_BOOLEAN CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index

Returns:
  value for the entry

unsigned char snd_ctl_elem_value_get_byte | ( | const snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get value for an entry of a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index

Returns:
  value for the entry

const void* snd_ctl_elem_value_get_bytes | ( | const snd_ctl_elem_value_t * | obj | ) |

Get value for a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  Pointer to CTL element value

unsigned int snd_ctl_elem_value_get_device | ( | const snd_ctl_elem_value_t * | obj | ) |

Get device part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  device part of element identifier

unsigned int snd_ctl_elem_value_get_enumerated | ( | const snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get value for an entry of a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index

Returns:
  value for the entry

void snd_ctl_elem_value_get_id | ( | const snd_ctl_elem_value_t * | obj,
|  | snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Get CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | ptr | Pointer to returned CTL element identifier

void snd_ctl_elem_value_get_iec958 | ( | const snd_ctl_elem_value_t * | obj,
|  | snd_aes_iec958_t * | ptr |
| ) |  |  |

Get value for a SND_CTL_ELEM_TYPE_IEC958 CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | ptr | Pointer to returned CTL element value

unsigned int snd_ctl_elem_value_get_index | ( | const snd_ctl_elem_value_t * | obj | ) |

Get index part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  index part of element identifier

long snd_ctl_elem_value_get_integer | ( | const snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get value for an entry of a SND_CTL_ELEM_TYPE_INTEGER CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index

Returns:
  value for the entry

long long snd_ctl_elem_value_get_integer64 | ( | const snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx |
| ) |  |  |

Get value for an entry of a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index

Returns:
  value for the entry

snd_ctl_elem_iface_t snd_ctl_elem_value_get_interface | ( | const snd_ctl_elem_value_t * | obj | ) |

Get interface part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  interface part of element identifier

const char* snd_ctl_elem_value_get_name | ( | const snd_ctl_elem_value_t * | obj | ) |

Get name part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  name part of element identifier

unsigned int snd_ctl_elem_value_get_numid | ( | const snd_ctl_elem_value_t * | obj | ) |

Get element numeric identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  element numeric identifier

unsigned int snd_ctl_elem_value_get_subdevice | ( | const snd_ctl_elem_value_t * | obj | ) |

Get subdevice part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value

Returns:
  subdevice part of element identifier

int snd_ctl_elem_value_malloc | ( | snd_ctl_elem_value_t ** | ptr | ) |

allocate an invalid snd_ctl_elem_value_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

void snd_ctl_elem_value_set_boolean | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx,
|  | long | val |
| ) |  |  |

Set value for an entry of a SND_CTL_ELEM_TYPE_BOOLEAN CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index
  | val | value for the entry

void snd_ctl_elem_value_set_byte | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx,
|  | unsigned char | val |
| ) |  |  |

Set value for an entry of a SND_CTL_ELEM_TYPE_BYTES CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index
  | val | value for the entry

void snd_ctl_elem_value_set_device | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set device part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | device part of element identifier

void snd_ctl_elem_value_set_enumerated | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx,
|  | unsigned int | val |
| ) |  |  |

Set value for an entry of a SND_CTL_ELEM_TYPE_ENUMERATED CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index
  | val | value for the entry

void snd_ctl_elem_value_set_id | ( | snd_ctl_elem_value_t * | obj,
|  | const snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Set CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | ptr | CTL element identifier

void snd_ctl_elem_value_set_iec958 | ( | snd_ctl_elem_value_t * | obj,
|  | const snd_aes_iec958_t * | ptr |
| ) |  |  |

Set value for a SND_CTL_ELEM_TYPE_IEC958 CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | ptr | Pointer to CTL element value

void snd_ctl_elem_value_set_index | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set index part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | index part of element identifier

void snd_ctl_elem_value_set_integer | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx,
|  | long | val |
| ) |  |  |

Set value for an entry of a SND_CTL_ELEM_TYPE_INTEGER CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index
  | val | value for the entry

void snd_ctl_elem_value_set_integer64 | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | idx,
|  | long long | val |
| ) |  |  |

Set value for an entry of a SND_CTL_ELEM_TYPE_INTEGER64 CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | idx | Entry index
  | val | value for the entry

void snd_ctl_elem_value_set_interface | ( | snd_ctl_elem_value_t * | obj,
|  | snd_ctl_elem_iface_t | val |
| ) |  |  |

Set interface part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | interface part of element identifier

void snd_ctl_elem_value_set_name | ( | snd_ctl_elem_value_t * | obj,
|  | const char * | val |
| ) |  |  |

Set name part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | name part of element identifier

void snd_ctl_elem_value_set_numid | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set element numeric identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | element numeric identifier

void snd_ctl_elem_value_set_subdevice | ( | snd_ctl_elem_value_t * | obj,
|  | unsigned int | val |
| ) |  |  |

Set subdevice part of CTL element identifier of a CTL element id/value.

Parameters:

  | obj | CTL element id/value
  | val | subdevice part of element identifier

size_t snd_ctl_elem_value_sizeof | ( | void |  | ) |

get size of snd_ctl_elem_value_t

Returns:
  size in bytes

int snd_ctl_elem_write | ( | snd_ctl_t * | ctl,
|  | snd_ctl_elem_value_t * | control |
| ) |  |  |

Set CTL element value.

Parameters:

  | ctl | CTL handle
  | control | CTL element id/value pointer

Return values:

  | 0 | on success
  | >0 | on success when value was changed
  | <0 | a negative error code

void snd_ctl_event_clear | ( | snd_ctl_event_t * | obj | ) |

clear given snd_ctl_event_t object

Parameters:

  | obj | pointer to object to clear

void snd_ctl_event_copy | ( | snd_ctl_event_t * | dst,
|  | const snd_ctl_event_t * | src |
| ) |  |  |

copy one snd_ctl_event_t to another

Parameters:

  | dst | pointer to destination
  | src | pointer to source

unsigned int snd_ctl_event_elem_get_device | ( | const snd_ctl_event_t * | obj | ) |

Get device part of CTL element identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  device part of element identifier

void snd_ctl_event_elem_get_id | ( | const snd_ctl_event_t * | obj,
|  | snd_ctl_elem_id_t * | ptr |
| ) |  |  |

Get CTL element identifier for an element related event.

Parameters:

  | obj | CTL event
  | ptr | Pointer to returned CTL element identifier

unsigned int snd_ctl_event_elem_get_index | ( | const snd_ctl_event_t * | obj | ) |

Get index part of CTL element identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  index part of element identifier

snd_ctl_elem_iface_t snd_ctl_event_elem_get_interface | ( | const snd_ctl_event_t * | obj | ) |

Get interface part of CTL element identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  interface part of element identifier

unsigned int snd_ctl_event_elem_get_mask | ( | const snd_ctl_event_t * | obj | ) |

Get event mask for an element related event.

Parameters:

  | obj | CTL event

Returns:
  event mask for element related event

const char* snd_ctl_event_elem_get_name | ( | const snd_ctl_event_t * | obj | ) |

Get name part of CTL element identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  name part of element identifier

unsigned int snd_ctl_event_elem_get_numid | ( | const snd_ctl_event_t * | obj | ) |

Get element numeric identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  element numeric identifier

unsigned int snd_ctl_event_elem_get_subdevice | ( | const snd_ctl_event_t * | obj | ) |

Get subdevice part of CTL element identifier for an element related event.

Parameters:

  | obj | CTL event

Returns:
  subdevice part of element identifier

void snd_ctl_event_free | ( | snd_ctl_event_t * | obj | ) |

frees a previously allocated snd_ctl_event_t

Parameters:

  | obj | pointer to object to free

snd_ctl_event_type_t snd_ctl_event_get_type | ( | const snd_ctl_event_t * | obj | ) |

Get type of a CTL event.

Parameters:

  | obj | CTL event

Returns:
  CTL event type

int snd_ctl_event_malloc | ( | snd_ctl_event_t ** | ptr | ) |

allocate an invalid snd_ctl_event_t using standard malloc

Parameters:

  | ptr | returned pointer

Returns:
  0 on success otherwise negative error code

size_t snd_ctl_event_sizeof | ( | void |  | ) |

get size of snd_ctl_event_t

Returns:
  size in bytes

const char* snd_ctl_event_type_name | ( | snd_ctl_event_type_t | type | ) |

get name of a CTL event type

Parameters:

  | type | CTL event type

Returns:
  ascii name of CTL event type

int snd_ctl_get_dB_range | ( | snd_ctl_t * | ctl,
|  | const snd_ctl_elem_id_t * | id,
|  | long * | min,
|  | long * | max |
| ) |  |  |

Get the dB min/max values on the given control element.

Parameters:

  | ctl | the control handler
  | id | the element id
  | min | the pointer to store the minimum dB value (in 0.01dB unit)
  | max | the pointer to store the maximum dB value (in 0.01dB unit)

Returns:
  0 if successful, or a negative error code

int snd_ctl_get_power_state | ( | snd_ctl_t * | ctl,
|  | unsigned int * | state |
| ) |  |  |

Get actual Power State.

Parameters:

  | ctl | CTL handle
  | state | Destination value

Returns:
  0 on success otherwise a negative error code

const char* snd_ctl_name | ( | snd_ctl_t * | ctl | ) |

get identifier of CTL handle

Parameters:

  | ctl | CTL handle

Returns:
  ascii identifier of CTL handle

Returns the ASCII identifier of given CTL handle. It's the same identifier specified in snd_ctl_open().

int snd_ctl_nonblock | ( | snd_ctl_t * | ctl,
|  | int | nonblock |
| ) |  |  |

set nonblock mode

Parameters:

  | ctl | CTL handle
  | nonblock | 0 = block, 1 = nonblock mode, 2 = abort

Returns:
  0 on success otherwise a negative error code

int snd_ctl_open | ( | snd_ctl_t ** | ctlp,
|  | const char * | name,
|  | int | mode |
| ) |  |  |

Opens a CTL.

Parameters:

  | ctlp | Returned CTL handle
  | name | ASCII identifier of the CTL handle
  | mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC)

Returns:
  0 on success otherwise a negative error code

int snd_ctl_open_fallback | ( | snd_ctl_t ** | ctlp,
|  | snd_config_t * | root,
|  | const char * | name,
|  | const char * | orig_name,
|  | int | mode |
| ) |  |  |

Opens a fallback CTL.

Parameters:

  | ctlp | Returned CTL handle
  | root | Configuration root
  | name | ASCII identifier of the CTL handle used as fallback
  | orig_name | The original ASCII name
  | mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC)

Returns:
  0 on success otherwise a negative error code

int snd_ctl_open_lconf | ( | snd_ctl_t ** | ctlp,
|  | const char * | name,
|  | int | mode,
|  | snd_config_t * | lconf |
| ) |  |  |

Opens a CTL using local configuration.

Parameters:

  | ctlp | Returned CTL handle
  | name | ASCII identifier of the CTL handle
  | mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC)
  | lconf | Local configuration

Returns:
  0 on success otherwise a negative error code

int snd_ctl_poll_descriptors | ( | snd_ctl_t * | ctl,
|  | struct pollfd * | pfds,
|  | unsigned int | space |
| ) |  |  |

get poll descriptors

Parameters:

  | ctl | CTL handle
  | pfds | array of poll descriptors
  | space | space in the poll descriptor array

Returns:
  count of filled descriptors

int snd_ctl_poll_descriptors_count | ( | snd_ctl_t * | ctl | ) |

get count of poll descriptors for CTL handle

Parameters:

  | ctl | CTL handle

Returns:
  count of poll descriptors

int snd_ctl_poll_descriptors_revents | ( | snd_ctl_t * | ctl,
|  | struct pollfd * | pfds,
|  | unsigned int | nfds,
|  | unsigned short * | revents |
| ) |  |  |

get returned events from poll descriptors

Parameters:

  | ctl | CTL handle
  | pfds | array of poll descriptors
  | nfds | count of poll descriptors
  | revents | returned events

Returns:
  zero if success, otherwise a negative error code

int snd_ctl_read | ( | snd_ctl_t * | ctl,
|  | snd_ctl_event_t * | event |
| ) |  |  |

Read an event.

Parameters:

  | ctl | CTL handle
  | event | Event pointer

Returns:
  number of events read otherwise a negative error code on failure

int snd_ctl_set_power_state | ( | snd_ctl_t * | ctl,
|  | unsigned int | state |
| ) |  |  |

Set Power State to given SND_CTL_POWER_* value and do the power management.

Parameters:

  | ctl | CTL handle
  | state | Desired Power State

Returns:
  0 on success otherwise a negative error code

int snd_ctl_subscribe_events | ( | snd_ctl_t * | ctl,
|  | int | subscribe |
| ) |  |  |

Ask to be informed about events (poll, snd_async_add_ctl_handler, snd_ctl_read).

Parameters:

  | ctl | CTL handle
  | subscribe | 0 = unsubscribe, 1 = subscribe, -1 = check subscribe or not

Returns:
  0 on success otherwise a negative error code

snd_ctl_type_t snd_ctl_type | ( | snd_ctl_t * | ctl | ) |

get type of CTL handle

Parameters:

  | ctl | CTL handle

Returns:
  type of CTL handle

Returns the type snd_ctl_type_t of given CTL handle.

int snd_ctl_wait | ( | snd_ctl_t * | ctl,
|  | int | timeout |
| ) |  |  |

Wait for a CTL to become ready (i.e. at least one event pending).

Parameters:

  | ctl | CTL handle
  | timeout | maximum time in milliseconds to wait

Returns:
  0 otherwise a negative error code on failure

int snd_device_name_free_hint | ( | void ** | hints | ) |

Free a list of device name hints.

Parameters:

  | hints | List to free

Returns:
  zero if success, otherwise a negative error code

char* snd_device_name_get_hint | ( | const void * | hint,
|  | const char * | id |
| ) |  |  |

Extract a value from a hint.

Parameters:

  | hint | A pointer to hint
  | id | Hint value to extract ("NAME", "DESC", or "IOID", see below)

Returns:
  an allocated ASCII string if success, otherwise NULL

List of valid IDs: NAME - name of device DESC - description of device IOID - input / output identification ("Input" or "Output"), NULL means both

The return value should be freed when no longer needed.

int snd_device_name_hint | ( | int | card,
|  | const char * | iface,
|  | void *** | hints |
| ) |  |  |

Get a set of device name hints.

Parameters:

  | card | Card number or -1 (means all cards)
  | iface | Interface identification (like "pcm", "rawmidi", "timer", "seq")
  | hints | Result - array of device name hints

Returns:
  zero if success, otherwise a negative error code

hints will receive a NULL-terminated array of device name hints, which can be passed to snd_device_name_get_hint to extract usable values. When no longer needed, hints should be passed to snd_device_name_free_hint to release resources.

User-defined hints are gathered from namehint.IFACE tree like:

`namehint.pcm {
myfile "file:FILE=/tmp/soundwave.raw|Save sound output to /tmp/soundwave.raw"
myplug "plug:front:Do all conversions for front speakers"
}`

Note: The device description is separated with '|' char.

Special variables: defaults.namehint.showall specifies if all device definitions are accepted (boolean type).

int snd_tlv_convert_from_dB | ( | unsigned int * | tlv,
|  | long | rangemin,
|  | long | rangemax,
|  | long | db_gain,
|  | long * | value,
|  | int | xdir |
| ) |  |  |

Convert from dB gain to the corresponding raw value.

Parameters:

  | tlv | the TLV source returned by snd_tlv_parse_dB_info()
  | rangemin | the minimum value of the raw volume
  | rangemax | the maximum value of the raw volume
  | db_gain | the dB gain to convert (in 0.01dB unit)
  | value | the pointer to store the converted raw volume value
  | xdir | the direction for round-up. The value is round up when this is positive.

Returns:
  0 if successful, or a negative error code

int snd_tlv_convert_to_dB | ( | unsigned int * | tlv,
|  | long | rangemin,
|  | long | rangemax,
|  | long | volume,
|  | long * | db_gain |
| ) |  |  |

Convert the given raw volume value to a dB gain.

Parameters:

  | tlv | the TLV source returned by snd_tlv_parse_dB_info()
  | rangemin | the minimum value of the raw volume
  | rangemax | the maximum value of the raw volume
  | volume | the raw volume value to convert
  | db_gain | the dB gain (in 0.01dB unit)

Returns:
  0 if successful, or a negative error code

int snd_tlv_get_dB_range | ( | unsigned int * | tlv,
|  | long | rangemin,
|  | long | rangemax,
|  | long * | min,
|  | long * | max |
| ) |  |  |

Get the dB min/max values.

Parameters:

  | tlv | the TLV source returned by snd_tlv_parse_dB_info()
  | rangemin | the minimum value of the raw volume
  | rangemax | the maximum value of the raw volume
  | min | the pointer to store the minimum dB value (in 0.01dB unit)
  | max | the pointer to store the maximum dB value (in 0.01dB unit)

Returns:
  0 if successful, or a negative error code

int snd_tlv_parse_dB_info | ( | unsigned int * | tlv,
|  | unsigned int | tlv_size,
|  | unsigned int ** | db_tlvp |
| ) |  |  |

Parse TLV stream and retrieve dB information.

Parameters:

  | tlv | the TLV source
  | tlv_size | the byte size of TLV source
  | db_tlvp | the pointer stored the dB TLV information

Returns:
  the byte size of dB TLV information if found in the given TLV source, or a negative error code.

This function parses the given TLV source and stores the TLV start point if the TLV information regarding dB conversion is found. The stored TLV pointer can be passed to the convesion functions snd_tlv_convert_to_dB(), snd_tlv_convert_from_dB() and snd_tlv_get_dB_range().

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines