ALSA project - the C library reference
Loading...
Searching...
No Matches
control.c File Reference

CTL interface - primitive controls. More...

Functions

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
 
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_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 information about the sound card.
 
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_add_integer_elem_set (snd_ctl_t *ctl, snd_ctl_elem_info_t *info, unsigned int element_count, unsigned int member_count, long min, long max, long step)
 Create and add some user-defined control elements of integer type.
 
int snd_ctl_add_integer64_elem_set (snd_ctl_t *ctl, snd_ctl_elem_info_t *info, unsigned int element_count, unsigned int member_count, long long min, long long max, long long step)
 Create and add some user-defined control elements of integer64 type.
 
int snd_ctl_add_boolean_elem_set (snd_ctl_t *ctl, snd_ctl_elem_info_t *info, unsigned int element_count, unsigned int member_count)
 Create and add some user-defined control elements of boolean type.
 
int snd_ctl_add_enumerated_elem_set (snd_ctl_t *ctl, snd_ctl_elem_info_t *info, unsigned int element_count, unsigned int member_count, unsigned int items, const char *const labels[])
 Create and add some user-defined control elements of enumerated type.
 
int snd_ctl_add_bytes_elem_set (snd_ctl_t *ctl, snd_ctl_elem_info_t *info, unsigned int element_count, unsigned int member_count)
 Create and add some user-defined control elements of bytes type.
 
int snd_ctl_elem_add_integer (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int member_count, long min, long max, long step)
 Create and add an user-defined control element of integer type.
 
int snd_ctl_elem_add_integer64 (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int member_count, long long min, long long max, long long step)
 Create and add an user-defined control element of integer64 type.
 
int snd_ctl_elem_add_boolean (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int member_count)
 Create and add an user-defined control element of boolean type.
 
int snd_ctl_elem_add_enumerated (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int member_count, unsigned int items, const char *const labels[])
 Create and add a user-defined control element of enumerated type.
 
int snd_ctl_elem_add_iec958 (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id)
 Create and add a user-defined control element of IEC958 type.
 
int snd_ctl_elem_remove (snd_ctl_t *ctl, snd_ctl_elem_id_t *id)
 Remove an user CTL element.
 
int snd_ctl_elem_read (snd_ctl_t *ctl, snd_ctl_elem_value_t *data)
 Get CTL element value.
 
int snd_ctl_elem_write (snd_ctl_t *ctl, snd_ctl_elem_value_t *data)
 Set CTL element value.
 
int snd_ctl_elem_tlv_read (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int *tlv, unsigned int tlv_size)
 Read structured data from an element set to given buffer.
 
int snd_ctl_elem_tlv_write (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, const unsigned int *tlv)
 Write structured data from given buffer to an element set.
 
int snd_ctl_elem_tlv_command (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, const unsigned int *tlv)
 Process structured data from given buffer for an element set.
 
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_hwdep_next_device (snd_ctl_t *ctl, int *device)
 Get next hardware dependent device number.
 
int snd_ctl_hwdep_info (snd_ctl_t *ctl, snd_hwdep_info_t *info)
 Get info about a hardware dependent device.
 
int snd_ctl_pcm_next_device (snd_ctl_t *ctl, int *device)
 Get next PCM device number.
 
int snd_ctl_pcm_info (snd_ctl_t *ctl, snd_pcm_info_t *info)
 Get info about a PCM device.
 
int snd_ctl_pcm_prefer_subdevice (snd_ctl_t *ctl, int subdev)
 Set preferred PCM subdevice number of successive PCM open.
 
int snd_ctl_rawmidi_next_device (snd_ctl_t *ctl, int *device)
 Get next RawMidi device number.
 
int snd_ctl_rawmidi_info (snd_ctl_t *ctl, snd_rawmidi_info_t *info)
 Get info about a RawMidi device.
 
int snd_ctl_rawmidi_prefer_subdevice (snd_ctl_t *ctl, int subdev)
 Set preferred RawMidi subdevice number of successive RawMidi open.
 
int snd_ctl_ump_next_device (snd_ctl_t *ctl, int *device)
 Get next UMP device number.
 
int snd_ctl_ump_endpoint_info (snd_ctl_t *ctl, snd_ump_endpoint_info_t *info)
 Get UMP Endpoint info about a UMP RawMidi device.
 
int snd_ctl_ump_block_info (snd_ctl_t *ctl, snd_ump_block_info_t *info)
 Get UMP Block info about a UMP RawMidi device.
 
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)
 
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_open (snd_ctl_t **ctlp, const char *name, int mode)
 Opens a sound card.
 
int snd_ctl_open_lconf (snd_ctl_t **ctlp, const char *name, int mode, snd_config_t *lconf)
 Opens a CTL using local configuration.
 
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.
 
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
 
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
 
unsigned int snd_ctl_event_elem_get_mask (const snd_ctl_event_t *obj)
 Get event mask 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.
 
unsigned int snd_ctl_event_elem_get_numid (const snd_ctl_event_t *obj)
 Get element numeric 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.
 
size_t snd_ctl_elem_id_sizeof ()
 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
 
int snd_ctl_elem_id_compare_numid (const snd_ctl_elem_id_t *id1, const snd_ctl_elem_id_t *id2)
 compare one #snd_ctl_elem_id_t to another using numid
 
int snd_ctl_elem_id_compare_set (const snd_ctl_elem_id_t *id1, const snd_ctl_elem_id_t *id2)
 compare 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 ()
 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 on the heap.
 
void snd_ctl_card_info_free (snd_ctl_card_info_t *obj)
 Free an #snd_ctl_card_info_t previously allocated using snd_ctl_card_info_malloc().
 
void snd_ctl_card_info_clear (snd_ctl_card_info_t *obj)
 Clear given card info object.
 
void snd_ctl_card_info_copy (snd_ctl_card_info_t *dst, const snd_ctl_card_info_t *src)
 Bitwise copy of a #snd_ctl_card_info_t object.
 
int snd_ctl_card_info_get_card (const snd_ctl_card_info_t *obj)
 Get the sound card index from the given info object.
 
const char * snd_ctl_card_info_get_id (const snd_ctl_card_info_t *obj)
 Get the sound card ID from the given info object.
 
const char * snd_ctl_card_info_get_driver (const snd_ctl_card_info_t *obj)
 Get the sound card driver from the given info object.
 
const char * snd_ctl_card_info_get_name (const snd_ctl_card_info_t *obj)
 Get the sound card name from the given info object.
 
const char * snd_ctl_card_info_get_longname (const snd_ctl_card_info_t *obj)
 Get the sound cards long name from the given info object.
 
const char * snd_ctl_card_info_get_mixername (const snd_ctl_card_info_t *obj)
 Get the sound card mixer name from the given info object.
 
const char * snd_ctl_card_info_get_components (const snd_ctl_card_info_t *obj)
 Get the sound cards "components" property from the given info object.
 
size_t snd_ctl_event_sizeof ()
 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 ()
 get size of #snd_ctl_elem_list_t.
 
int snd_ctl_elem_list_malloc (snd_ctl_elem_list_t **ptr)
 allocate a #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.
 
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 the 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 ()
 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_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.
 
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_indirect (const snd_ctl_elem_info_t *obj)
 (DEPRECATED) Get info about values passing policy from a CTL element value
 
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.
 
int snd_ctl_elem_info_set_dimension (snd_ctl_elem_info_t *info, const int dimension[4])
 Set width to a specified dimension level of given element information.
 
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.
 
void snd_ctl_elem_info_set_read_write (snd_ctl_elem_info_t *obj, int rval, int wval)
 Set readability/writeability parameter of a CTL element id/info.
 
void snd_ctl_elem_info_set_tlv_read_write (snd_ctl_elem_info_t *obj, int rval, int wval)
 Set TLV readability/writeability parameter of a CTL element id/info.
 
void snd_ctl_elem_info_set_inactive (snd_ctl_elem_info_t *obj, int val)
 Set inactive parameter of a CTL element id/info.
 
size_t snd_ctl_elem_value_sizeof ()
 Get size of data structure for an element.
 
int snd_ctl_elem_value_malloc (snd_ctl_elem_value_t **ptr)
 Allocate an invalid #snd_ctl_elem_value_t on the heap.
 
void snd_ctl_elem_value_free (snd_ctl_elem_value_t *obj)
 Free an #snd_ctl_elem_value_t previously allocated using snd_ctl_elem_value_malloc().
 
void snd_ctl_elem_value_clear (snd_ctl_elem_value_t *obj)
 Clear given data of an element.
 
void snd_ctl_elem_value_copy (snd_ctl_elem_value_t *dst, const snd_ctl_elem_value_t *src)
 Bitwise copy of a snd_ctl_elem_value_t value.
 
int snd_ctl_elem_value_compare (snd_ctl_elem_value_t *left, const snd_ctl_elem_value_t *right)
 Compare two snd_ctl_elem_value_t values, bytewise.
 
void snd_ctl_elem_value_get_id (const snd_ctl_elem_value_t *obj, snd_ctl_elem_id_t *ptr)
 Get the element identifier from the given element value.
 
unsigned int snd_ctl_elem_value_get_numid (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'numid' part from the given element value.
 
snd_ctl_elem_iface_t snd_ctl_elem_value_get_interface (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'interface' part from the given element value.
 
unsigned int snd_ctl_elem_value_get_device (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'device' part from the given element value.
 
unsigned int snd_ctl_elem_value_get_subdevice (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'subdevice' part from the given element value.
 
const char * snd_ctl_elem_value_get_name (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'name' part from the given element value.
 
unsigned int snd_ctl_elem_value_get_index (const snd_ctl_elem_value_t *obj)
 Get the identifiers 'index' part from the given element value.
 
void snd_ctl_elem_value_set_id (snd_ctl_elem_value_t *obj, const snd_ctl_elem_id_t *ptr)
 Set the element identifier within the given element value.
 
void snd_ctl_elem_value_set_numid (snd_ctl_elem_value_t *obj, unsigned int val)
 Set the identifiers 'numid' part within the given element value.
 
void snd_ctl_elem_value_set_interface (snd_ctl_elem_value_t *obj, snd_ctl_elem_iface_t val)
 Set the identifiers 'interface' part within the given element value.
 
void snd_ctl_elem_value_set_device (snd_ctl_elem_value_t *obj, unsigned int val)
 Set the identifiers 'device' part within the given element value.
 
void snd_ctl_elem_value_set_subdevice (snd_ctl_elem_value_t *obj, unsigned int val)
 Set the identifiers 'subdevice' part within the given element value.
 
void snd_ctl_elem_value_set_name (snd_ctl_elem_value_t *obj, const char *val)
 Set the identifiers 'name' part within the given element value.
 
void snd_ctl_elem_value_set_index (snd_ctl_elem_value_t *obj, unsigned int val)
 Set the identifiers 'index' part within the given element value.
 
int snd_ctl_elem_value_get_boolean (const snd_ctl_elem_value_t *obj, unsigned int idx)
 Get an element members value.
 
long snd_ctl_elem_value_get_integer (const snd_ctl_elem_value_t *obj, unsigned int idx)
 Get an element members value.
 
long long snd_ctl_elem_value_get_integer64 (const snd_ctl_elem_value_t *obj, unsigned int idx)
 Get an element members value.
 
unsigned int snd_ctl_elem_value_get_enumerated (const snd_ctl_elem_value_t *obj, unsigned int idx)
 Get an element members value.
 
unsigned char snd_ctl_elem_value_get_byte (const snd_ctl_elem_value_t *obj, unsigned int idx)
 Get an element members value.
 
void snd_ctl_elem_value_set_boolean (snd_ctl_elem_value_t *obj, unsigned int idx, long val)
 Set an element members value.
 
void snd_ctl_elem_value_set_integer (snd_ctl_elem_value_t *obj, unsigned int idx, long val)
 Set an element members value.
 
void snd_ctl_elem_value_set_integer64 (snd_ctl_elem_value_t *obj, unsigned int idx, long long val)
 Set an element members value.
 
void snd_ctl_elem_value_set_enumerated (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned int val)
 Set an element members value.
 
void snd_ctl_elem_value_set_byte (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned char val)
 Set an element members value.
 
void snd_ctl_elem_set_bytes (snd_ctl_elem_value_t *obj, void *data, size_t size)
 Replace the data stored within the element.
 
const void * snd_ctl_elem_value_get_bytes (const snd_ctl_elem_value_t *obj)
 Get the data stored within the element.
 
void snd_ctl_elem_value_get_iec958 (const snd_ctl_elem_value_t *obj, snd_aes_iec958_t *ptr)
 Get an elements IEC958 data.
 
void snd_ctl_elem_value_set_iec958 (snd_ctl_elem_value_t *obj, const snd_aes_iec958_t *ptr)
 Set an elements IEC958 data.
 

Detailed Description

CTL interface - primitive controls.

CTL interface - parse ASCII identifiers and values.

Author
Abramo Bagnara abram.nosp@m.o@al.nosp@m.sa-pr.nosp@m.ojec.nosp@m.t.org
Date
2000

CTL interface is designed to access primitive controls. See Control interface page for more details.

Author
Jaroslav Kysela perex.nosp@m.@per.nosp@m.ex.cz
Date
2010

Function Documentation

◆ snd_async_add_ctl_handler()

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
handlerReturned handler handle
ctlCTL handle
callbackCallback function
private_dataCallback private data
Returns
0 otherwise a negative error code on failure

◆ snd_async_handler_get_ctl()

snd_ctl_t * snd_async_handler_get_ctl ( snd_async_handler_t * handler)

Return CTL handle related to an async handler.

Parameters
handlerAsync handler handle
Returns
CTL handle

◆ snd_ctl_add_boolean_elem_set()

int snd_ctl_add_boolean_elem_set ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info,
unsigned int element_count,
unsigned int member_count )

Create and add some user-defined control elements of boolean type.

Parameters
ctlA handle of backend module for control interface.
infoCommon information for a new element set, with ID of the first new element.
element_countThe number of elements added by this operation.
member_countThe number of members which a element has to represent its states.

This function creates some user elements with boolean type. These elements are not controlled by device drivers in kernel. They can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify new control elements. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

All of members in the new elements are locked. The value of each member is initialized with false.

Errors:
-EBUSY
A element with ID id already exists.
-EINVAL
Some parameters include invalid value; i.e. ID has no name, or the number of members is not between 1 to 127.
-ENOMEM
Out of memory, or there are too many user elements.
-ENXIO
This backend module does not support user elements of boolean type.
-ENODEV
Device unplugged.
Compatibility:
This function is added in version 1.1.2.

◆ snd_ctl_add_bytes_elem_set()

int snd_ctl_add_bytes_elem_set ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info,
unsigned int element_count,
unsigned int member_count )

Create and add some user-defined control elements of bytes type.

Parameters
ctlA handle of backend module for control interface.
infoCommon information for a new element set, with ID of the first new element.
element_countThe number of elements added by this operation.
member_countThe number of members which a element has to represent its states.
Returns
Zero on success, otherwise a negative error code.

This function creates some user elements with bytes type. These elements are not controlled by device drivers in kernel. They can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify new control elements. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

All of members in the new elements are locked. The value of each member is initialized with the minimum value.

Errors:
-EBUSY
A element with ID id already exists.
-EINVAL
Some arguments include invalid value; i.e. ID has no name, or the number of members is not between 1 to 511.
-ENOMEM
Out of memory, or there are too many user elements.
-ENXIO
This backend module does not support user elements of bytes type.
-ENODEV
Device unplugged.
Compatibility:
This function is added in version 1.1.2.

◆ snd_ctl_add_enumerated_elem_set()

int snd_ctl_add_enumerated_elem_set ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info,
unsigned int element_count,
unsigned int member_count,
unsigned int items,
const char *const labels[] )

Create and add some user-defined control elements of enumerated type.

Parameters
ctlA handle of backend module for control interface.
infoCommon information for a new element set, with ID of the first new element.
element_countThe number of elements added by this operation.
member_countThe number of members which a element has to represent its states.
itemsRange of possible values (0 ... items - 1).
labelsAn array containing items strings.
Returns
Zero on success, otherwise a negative error code.

This function creates some user elements with enumerated type. These elements are not controlled by device drivers in kernel. They can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify new control elements. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

All of members in the new elements are locked. The value of each member is initialized with the first entry of labels.

Errors:
-EBUSY
A control element with ID id already exists.
-EINVAL
Some arguments include invalid value; i.e. element_count is not between 1 to 127, or items is not at least one, or a string in labels is empty, or longer than 63 bytes, or total length of the labels requires more than 64 KiB 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:
This function is added in version 1.1.2.

◆ snd_ctl_add_integer64_elem_set()

int snd_ctl_add_integer64_elem_set ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info,
unsigned int element_count,
unsigned int member_count,
long long min,
long long max,
long long step )

Create and add some user-defined control elements of integer64 type.

Parameters
ctlA handle of backend module for control interface.
infoCommon information for a new element set, with ID of the first new element.
element_countThe number of elements added by this operation.
member_countThe number of members which a element has to represent its states.
minMinimum value for each member of the elements.
maxMaximum value for each member of the elements.
stepThe step of value for each member in the elements.
Returns
Zero on success, otherwise a negative error code.

This function creates some user elements with integer64 type. These elements are not controlled by device drivers in kernel. They can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify new control elements. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

All of members in the new elements are locked. The value of each member is initialized with the minimum value.

Errors:
-EBUSY
A element with ID id already exists.
-EINVAL
Some arguments include invalid value; i.e. ID has no name, or the number of members is not between 1 to 127.
-ENOMEM
Out of memory, or there are too many user elements.
-ENXIO
This backend module does not support user elements of integer64 type.
-ENODEV
Device unplugged.
Compatibility:
This function is added in version 1.1.2.

◆ snd_ctl_add_integer_elem_set()

int snd_ctl_add_integer_elem_set ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info,
unsigned int element_count,
unsigned int member_count,
long min,
long max,
long step )

Create and add some user-defined control elements of integer type.

Parameters
ctlA handle of backend module for control interface.
infoCommon information for a new element set, with ID of the first new element.
element_countThe number of elements added by this operation.
member_countThe number of members which a element has to represent its states.
minMinimum value for each member of the elements.
maxMaximum value for each member of the elements.
stepThe step of value for each member in the elements.
Returns
Zero on success, otherwise a negative error code.

This function creates some user elements with integer type. These elements are not controlled by device drivers in kernel. They can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify new control elements. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

All of members in the new elements are locked. The value of each member is initialized with the minimum value.

Errors:
-EBUSY
A element with ID id already exists.
-EINVAL
Some arguments include invalid value; i.e. ID field in info has no name, or the number of members is not between 1 to 127.
-ENOMEM
Out of memory, or there are too many user elements.
-ENXIO
This backend module does not support user elements of integer type.
-ENODEV
Device unplugged.
Compatibility:
This function is added in version 1.1.2.

◆ snd_ctl_card_info()

int snd_ctl_card_info ( snd_ctl_t * ctl,
snd_ctl_card_info_t * info )

Get information about the sound card.

Obtain information about the sound card previously opened using snd_ctl_open(). The object "info" must be allocated prior to calling this function. See snd_ctl_card_info_t for details.

Parameters
ctlThe CTL handle.
infoThe card information is stored here.
Returns
0 on success, otherwise a negative error code.

◆ snd_ctl_card_info_clear()

void snd_ctl_card_info_clear ( snd_ctl_card_info_t * obj)

Clear given card info object.

See snd_ctl_elem_value_t for details.

Parameters
objCard info object.

◆ snd_ctl_card_info_copy()

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

Bitwise copy of a #snd_ctl_card_info_t object.

Parameters
dstPointer to destination.
srcPointer to source.

◆ snd_ctl_card_info_free()

void snd_ctl_card_info_free ( snd_ctl_card_info_t * obj)

Free an #snd_ctl_card_info_t previously allocated using snd_ctl_card_info_malloc().

Parameters
objPointer to the snd_ctl_card_info_t.

◆ snd_ctl_card_info_get_card()

int snd_ctl_card_info_get_card ( const snd_ctl_card_info_t * obj)

Get the sound card index from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound card index.

◆ snd_ctl_card_info_get_components()

const char * snd_ctl_card_info_get_components ( const snd_ctl_card_info_t * obj)

Get the sound cards "components" property from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound cards "components" property.

◆ snd_ctl_card_info_get_driver()

const char * snd_ctl_card_info_get_driver ( const snd_ctl_card_info_t * obj)

Get the sound card driver from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
The sound card driver.

◆ snd_ctl_card_info_get_id()

const char * snd_ctl_card_info_get_id ( const snd_ctl_card_info_t * obj)

Get the sound card ID from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound card ID.

◆ snd_ctl_card_info_get_longname()

const char * snd_ctl_card_info_get_longname ( const snd_ctl_card_info_t * obj)

Get the sound cards long name from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound cards long name.

◆ snd_ctl_card_info_get_mixername()

const char * snd_ctl_card_info_get_mixername ( const snd_ctl_card_info_t * obj)

Get the sound card mixer name from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound card mixer name.

◆ snd_ctl_card_info_get_name()

const char * snd_ctl_card_info_get_name ( const snd_ctl_card_info_t * obj)

Get the sound card name from the given info object.

See snd_ctl_card_info_t for more details.

Parameters
objThe card info object.
Returns
Sound card name.

◆ snd_ctl_card_info_malloc()

int snd_ctl_card_info_malloc ( snd_ctl_card_info_t ** ptr)

Allocate an invalid #snd_ctl_card_info_t on the heap.

Allocate space for a card info object on the heap. The allocated memory must be freed using snd_ctl_card_info_free().

See snd_ctl_card_info_t for details.

Parameters
ptrPointer to a snd_ctl_card_info_t pointer. The address of the allocated space will be returned here.
Returns
0 on success, otherwise a negative error code.

◆ snd_ctl_card_info_sizeof()

size_t snd_ctl_card_info_sizeof ( )

get size of #snd_ctl_card_info_t.

Returns
Size in bytes.

◆ snd_ctl_close()

int snd_ctl_close ( snd_ctl_t * ctl)

close CTL handle

Parameters
ctlCTL handle
Returns
0 on success otherwise a negative error code

Closes the specified CTL handle and frees all associated resources.

◆ snd_ctl_elem_add_boolean()

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

Create and add an user-defined control element of boolean type.

This is a wrapper function to snd_ctl_add_boolean_elem_set() for a single control element. This doesn't fill the id data with full information, thus it's recommended to use snd_ctl_add_boolean_elem_set(), instead.

◆ snd_ctl_elem_add_enumerated()

int snd_ctl_elem_add_enumerated ( snd_ctl_t * ctl,
const snd_ctl_elem_id_t * id,
unsigned int member_count,
unsigned int items,
const char *const labels[] )

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

This is a wrapper function to snd_ctl_add_enumerated_elem_set() for a single control element. This doesn't fill the id data with full information, thus it's recommended to use snd_ctl_add_enumerated_elem_set(), instead.

This function is added in version 1.0.25.

◆ snd_ctl_elem_add_iec958()

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

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

Parameters
[in]ctlA handle of backend module for control interface.
[in,out]idID of the new control element.

This function creates an user element with IEC958 type. This element is not controlled by device drivers in kernel. It can be operated by the same way as usual elements added by the device drivers.

The name field of id must be set with unique value to identify a new control element. After returning, all fields of id are filled. A element can be identified by the combination of name and index, or by numid.

A member in the new element is locked and filled with zero.

Errors:
-EBUSY
A control element with ID id already exists.
-EINVAL
ID has no name.
-ENOMEM
Out of memory, or there are too many user elements.
-ENXIO
This backend module does not support user elements of IEC958 type.
-ENODEV
Device unplugged.

◆ snd_ctl_elem_add_integer()

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

Create and add an user-defined control element of integer type.

This is a wrapper function to snd_ctl_add_integer_elem_set() for a control element. This doesn't fill the id data with full information, thus it's recommended to use snd_ctl_add_integer_elem_set(), instead.

◆ snd_ctl_elem_add_integer64()

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

Create and add an user-defined control element of integer64 type.

This is a wrapper function to snd_ctl_add_integer64_elem_set() for a single control element. This doesn't fill the id data with full information, thus it's recommended to use snd_ctl_add_integer64_elem_set(), instead.

◆ snd_ctl_elem_id_clear()

void snd_ctl_elem_id_clear ( snd_ctl_elem_id_t * obj)

clear given #snd_ctl_elem_id_t object

Parameters
objpointer to object to clear

◆ snd_ctl_elem_id_compare_numid()

int snd_ctl_elem_id_compare_numid ( const snd_ctl_elem_id_t * id1,
const snd_ctl_elem_id_t * id2 )

compare one #snd_ctl_elem_id_t to another using numid

Parameters
id1pointer to first id
id2pointer to second id
Return values
zerowhen values are identical, other value on a difference (like strcmp)

This comparison ignores the set of fields part.

The return value can be used for sorting like qsort(). It gives persistent results.

◆ snd_ctl_elem_id_compare_set()

int snd_ctl_elem_id_compare_set ( const snd_ctl_elem_id_t * id1,
const snd_ctl_elem_id_t * id2 )

compare one #snd_ctl_elem_id_t to another

Parameters
id1pointer to first id
id2pointer to second id
Return values
zerowhen values are identical, other value on a difference (like strcmp)

This comparison ignores the numid part. The numid comparison can be easily implemented using snd_ctl_elem_id_get_numid() calls.

The identifier set fields are compared in this order: interface, device, subdevice, name, index.

The return value can be used for sorting like qsort(). It gives persistent results.

◆ snd_ctl_elem_id_copy()

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
dstpointer to destination
srcpointer to source

◆ snd_ctl_elem_id_free()

void snd_ctl_elem_id_free ( snd_ctl_elem_id_t * obj)

frees a previously allocated #snd_ctl_elem_id_t

Parameters
objpointer to object to free

◆ snd_ctl_elem_id_get_device()

unsigned int snd_ctl_elem_id_get_device ( const snd_ctl_elem_id_t * obj)

Get device part of a CTL element identifier.

Parameters
objCTL element identifier
Returns
CTL element related device

◆ snd_ctl_elem_id_get_index()

unsigned int snd_ctl_elem_id_get_index ( const snd_ctl_elem_id_t * obj)

Get index part of a CTL element identifier.

Parameters
objCTL element identifier
Returns
CTL element index

◆ snd_ctl_elem_id_get_interface()

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
objCTL element identifier
Returns
CTL element related interface

◆ snd_ctl_elem_id_get_name()

const char * snd_ctl_elem_id_get_name ( const snd_ctl_elem_id_t * obj)

Get name part of a CTL element identifier.

Parameters
objCTL element identifier
Returns
CTL element name

◆ snd_ctl_elem_id_get_numid()

unsigned int snd_ctl_elem_id_get_numid ( const snd_ctl_elem_id_t * obj)

Get numeric identifier from a CTL element identifier.

Parameters
objCTL element identifier
Returns
CTL element numeric identifier

◆ snd_ctl_elem_id_get_subdevice()

unsigned int snd_ctl_elem_id_get_subdevice ( const snd_ctl_elem_id_t * obj)

Get subdevice part of a CTL element identifier.

Parameters
objCTL element identifier
Returns
CTL element related subdevice

◆ snd_ctl_elem_id_malloc()

int snd_ctl_elem_id_malloc ( snd_ctl_elem_id_t ** ptr)

allocate an invalid #snd_ctl_elem_id_t using standard malloc

Parameters
ptrreturned pointer
Returns
0 on success otherwise negative error code

◆ snd_ctl_elem_id_set_device()

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
objCTL element identifier
valCTL element related device

◆ snd_ctl_elem_id_set_index()

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
objCTL element identifier
valCTL element index

◆ snd_ctl_elem_id_set_interface()

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
objCTL element identifier
valCTL element related interface

◆ snd_ctl_elem_id_set_name()

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
objCTL element identifier
valCTL element name

◆ snd_ctl_elem_id_set_numid()

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
objCTL element identifier
valCTL element numeric identifier

◆ snd_ctl_elem_id_set_subdevice()

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
objCTL element identifier
valCTL element related subdevice

◆ snd_ctl_elem_id_sizeof()

size_t snd_ctl_elem_id_sizeof ( )

get size of #snd_ctl_elem_id_t

Returns
size in bytes

◆ snd_ctl_elem_iface_name()

const char * snd_ctl_elem_iface_name ( snd_ctl_elem_iface_t iface)

get name of a CTL element related interface

Parameters
ifaceCTL element related interface
Returns
ascii name of CTL element related interface

◆ snd_ctl_elem_info()

int snd_ctl_elem_info ( snd_ctl_t * ctl,
snd_ctl_elem_info_t * info )

Get CTL element information.

Parameters
ctlCTL handle
infoCTL element id/information pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_elem_info_clear()

void snd_ctl_elem_info_clear ( snd_ctl_elem_info_t * obj)

clear given #snd_ctl_elem_info_t object

Parameters
objpointer to object to clear

◆ snd_ctl_elem_info_copy()

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
dstpointer to destination
srcpointer to source

◆ snd_ctl_elem_info_free()

void snd_ctl_elem_info_free ( snd_ctl_elem_info_t * obj)

frees a previously allocated #snd_ctl_elem_info_t

Parameters
objpointer to object to free

◆ snd_ctl_elem_info_get_count()

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
objCTL element id/info
Returns
value entries count

◆ snd_ctl_elem_info_get_device()

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
objCTL element id/info
Returns
device part of element identifier

◆ snd_ctl_elem_info_get_dimension()

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
objCTL element id/info
idxThe dimension index
Returns
zero value if no dimension width is defined, otherwise positive value with with of specified dimension
Deprecated
Since 1.1.5 snd_ctl_elem_info_get_dimension is deprecated without any replacement.

◆ snd_ctl_elem_info_get_dimensions()

int snd_ctl_elem_info_get_dimensions ( const snd_ctl_elem_info_t * obj)

Get count of dimensions for given element.

Parameters
objCTL element id/info
Returns
zero value if no dimensions are defined, otherwise positive value with count of dimensions
Deprecated
Since 1.1.5 snd_ctl_elem_info_get_dimensions is deprecated without any replacement.

◆ snd_ctl_elem_info_get_id()

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
objCTL element id/info
ptrPointer to returned CTL element identifier

◆ snd_ctl_elem_info_get_index()

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
objCTL element id/info
Returns
index part of element identifier

◆ snd_ctl_elem_info_get_interface()

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
objCTL element id/info
Returns
interface part of element identifier

◆ snd_ctl_elem_info_get_item_name()

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
objCTL element id/info
Returns
name of chosen item

◆ snd_ctl_elem_info_get_items()

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
objCTL element id/info
Returns
items count

◆ snd_ctl_elem_info_get_max()

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
objCTL element id/info
Returns
Maximum value

◆ snd_ctl_elem_info_get_max64()

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
objCTL element id/info
Returns
Maximum value

◆ snd_ctl_elem_info_get_min()

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
objCTL element id/info
Returns
Minimum value

◆ snd_ctl_elem_info_get_min64()

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
objCTL element id/info
Returns
Minimum value

◆ snd_ctl_elem_info_get_name()

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
objCTL element id/info
Returns
name part of element identifier

◆ snd_ctl_elem_info_get_numid()

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
objCTL element id/info
Returns
element numeric identifier

◆ snd_ctl_elem_info_get_owner()

pid_t snd_ctl_elem_info_get_owner ( const snd_ctl_elem_info_t * obj)

Get owner of a locked element.

Parameters
objCTL element id/info
Returns
value entries count

◆ snd_ctl_elem_info_get_step()

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
objCTL element id/info
Returns
Step

◆ snd_ctl_elem_info_get_step64()

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
objCTL element id/info
Returns
Step

◆ snd_ctl_elem_info_get_subdevice()

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
objCTL element id/info
Returns
subdevice part of element identifier

◆ snd_ctl_elem_info_get_type()

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
objCTL element id/info
Returns
CTL element content type

◆ snd_ctl_elem_info_is_inactive()

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
objCTL element id/info
Returns
0 if element value is not active, 1 if is active

◆ snd_ctl_elem_info_is_indirect()

int snd_ctl_elem_info_is_indirect ( const snd_ctl_elem_info_t * obj)

(DEPRECATED) Get info about values passing policy from a CTL element value

Parameters
objCTL element id/info
Returns
0 if element value need to be passed by contents, 1 if need to be passed with a pointer

◆ snd_ctl_elem_info_is_locked()

int snd_ctl_elem_info_is_locked ( const snd_ctl_elem_info_t * obj)

Get info whether an element is locked.

Parameters
objCTL element id/info
Returns
0 if element value is currently changeable, 1 if it's locked by another application

◆ snd_ctl_elem_info_is_owner()

int snd_ctl_elem_info_is_owner ( const snd_ctl_elem_info_t * obj)

Get info if I own an element.

Parameters
objCTL element id/info
Returns
0 if element value is currently changeable, 1 if it's locked by another application

◆ snd_ctl_elem_info_is_readable()

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
objCTL element id/info
Returns
0 if element is not readable, 1 if element is readable

◆ snd_ctl_elem_info_is_tlv_commandable()

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
objCTL element id/info
Returns
0 if element's TLV command is not possible, 1 if element's TLV command is supported

◆ snd_ctl_elem_info_is_tlv_readable()

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
objCTL element id/info
Returns
0 if element's TLV is not readable, 1 if element's TLV is readable

◆ snd_ctl_elem_info_is_tlv_writable()

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
objCTL element id/info
Returns
0 if element's TLV is not writable, 1 if element's TLV is writable

◆ snd_ctl_elem_info_is_user()

int snd_ctl_elem_info_is_user ( const snd_ctl_elem_info_t * obj)

Get info if it's a user element.

Parameters
objCTL element id/info
Returns
0 if element value is a system element, 1 if it's a user-created element

◆ snd_ctl_elem_info_is_volatile()

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
objCTL element id/info
Returns
0 if all element value changes are notified to subscribed applications, 1 otherwise

◆ snd_ctl_elem_info_is_writable()

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
objCTL element id/info
Returns
0 if element is not writable, 1 if element is not writable

◆ snd_ctl_elem_info_malloc()

int snd_ctl_elem_info_malloc ( snd_ctl_elem_info_t ** ptr)

allocate an invalid #snd_ctl_elem_info_t using standard malloc

Parameters
ptrreturned pointer
Returns
0 on success otherwise negative error code

◆ snd_ctl_elem_info_set_device()

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
objCTL element id/info
valdevice part of element identifier

◆ snd_ctl_elem_info_set_dimension()

int snd_ctl_elem_info_set_dimension ( snd_ctl_elem_info_t * info,
const int dimension[4] )

Set width to a specified dimension level of given element information.

Parameters
infoInformation of an element.
dimensionDimension width for each level by member unit.
Returns
Zero on success, otherwise a negative error code.
Errors:
-EINVAL
Invalid arguments are given as parameters.
Compatibility:
This function is added in version 1.1.2.
Deprecated
Since 1.1.5 snd_ctl_elem_info_set_dimension is deprecated without any replacement.

◆ snd_ctl_elem_info_set_id()

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
objCTL element id/info
ptrCTL element identifier

◆ snd_ctl_elem_info_set_inactive()

void snd_ctl_elem_info_set_inactive ( snd_ctl_elem_info_t * obj,
int val )

Set inactive parameter of a CTL element id/info.

Parameters
objCTL element id/info
valinactive part of element identifier

◆ snd_ctl_elem_info_set_index()

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
objCTL element id/info
valindex part of element identifier

◆ snd_ctl_elem_info_set_interface()

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
objCTL element id/info
valinterface part of element identifier

◆ snd_ctl_elem_info_set_item()

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
objCTL element id/info
valitem number

◆ snd_ctl_elem_info_set_name()

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
objCTL element id/info
valname part of element identifier

◆ snd_ctl_elem_info_set_numid()

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
objCTL element id/info
valelement numeric identifier

◆ snd_ctl_elem_info_set_read_write()

void snd_ctl_elem_info_set_read_write ( snd_ctl_elem_info_t * obj,
int rval,
int wval )

Set readability/writeability parameter of a CTL element id/info.

Parameters
objCTL element id/info
rvalreadability part of element identifier
wvalwriteability part of element identifier

◆ snd_ctl_elem_info_set_subdevice()

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
objCTL element id/info
valsubdevice part of element identifier

◆ snd_ctl_elem_info_set_tlv_read_write()

void snd_ctl_elem_info_set_tlv_read_write ( snd_ctl_elem_info_t * obj,
int rval,
int wval )

Set TLV readability/writeability parameter of a CTL element id/info.

Parameters
objCTL element id/info
rvalTLV readability part of element identifier
wvalTLV writeability part of element identifier

◆ snd_ctl_elem_info_sizeof()

size_t snd_ctl_elem_info_sizeof ( )

get size of #snd_ctl_elem_info_t

Returns
size in bytes

◆ snd_ctl_elem_list()

int snd_ctl_elem_list ( snd_ctl_t * ctl,
snd_ctl_elem_list_t * list )

Get a list of element identifiers.

Before calling this function, memoru must be allocated using snd_ctl_elem_list_malloc().

This function obtains data from the sound card driver and puts it into the list.

If there was space allocated for the element identifiers (using snd_ctl_elem_list_alloc_space()), information will be filled in. If too little space was allocated, only a part of the elements will be queried. If there was too much space allocated, some of it remains unused. Use snd_ctl_elem_list_get_count() and snd_ctl_elem_list_get_used() to obtain information about space usage. See #snd_ctl_elem_list_t to learn more.

Parameters
ctlCTL handle
listCTL element identifiers list pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_elem_list_alloc_space()

int snd_ctl_elem_list_alloc_space ( snd_ctl_elem_list_t * obj,
unsigned int entries )

allocate space for CTL element identifiers list

The space can be released with snd_ctl_elem_list_free_space().

Parameters
objCTL element identifiers list.
entriesHow many entries to allocate. See #snd_ctl_elem_list_t to learn how to obtain this number in advance.
Returns
0 on success otherwise a negative error code.

◆ snd_ctl_elem_list_clear()

void snd_ctl_elem_list_clear ( snd_ctl_elem_list_t * obj)

Clear given #snd_ctl_elem_list_t object.

This will make the stored identifiers inaccessible without freeing their space.

Warning
The element identifier space cannot be freed after calling this function. Therefore, snd_ctl_elem_list_free_space() must be called in advance.
Parameters
objpointer to object to clear

◆ snd_ctl_elem_list_copy()

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.

This performs a shallow copy. That means the both lists will share the same space for the elements. The elements will not be copied.

Parameters
dstpointer to destination
srcpointer to source

◆ snd_ctl_elem_list_free()

void snd_ctl_elem_list_free ( snd_ctl_elem_list_t * obj)

frees a previously allocated #snd_ctl_elem_list_t.

Release memory previously allocated using snd_ctl_elem_list_malloc().

If you used snd_ctl_elem_list_alloc_space() on the list, you must use snd_ctl_elem_list_free_space() before calling this function.

Parameters
objpointer to object to free

◆ snd_ctl_elem_list_free_space()

void snd_ctl_elem_list_free_space ( snd_ctl_elem_list_t * obj)

free previously allocated space for CTL element identifiers list

Releases space previously allocated using snd_ctl_elem_list_alloc_space().

Parameters
objCTL element identifiers list

◆ snd_ctl_elem_list_get_count()

unsigned int snd_ctl_elem_list_get_count ( const snd_ctl_elem_list_t * obj)

Get total count of elements present in CTL device.

This function returns how many entries were allocated using snd_ctl_elem_list_alloc_space(). This information is present after snd_ctl_elem_list() was called.

See also snd_ctl_elem_list_get_used().

Parameters
objCTL element identifier list
Returns
total number of elements

◆ snd_ctl_elem_list_get_device()

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

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

Parameters
objCTL element identifier list
idxIndex of entry
Returns
CTL element related device

◆ snd_ctl_elem_list_get_id()

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
objCTL element identifier list
idxIndex of entry
ptrPointer to returned CTL element identifier

◆ snd_ctl_elem_list_get_index()

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
objCTL element identifier list
idxIndex of entry
Returns
CTL element index

◆ snd_ctl_elem_list_get_interface()

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
objCTL element identifier list
idxIndex of entry
Returns
CTL element related interface

◆ snd_ctl_elem_list_get_name()

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
objCTL element identifier list
idxIndex of entry
Returns
CTL element name

◆ snd_ctl_elem_list_get_numid()

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
objCTL element identifier list
idxIndex of entry
Returns
CTL element numeric identifier

◆ snd_ctl_elem_list_get_subdevice()

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
objCTL element identifier list
idxIndex of entry
Returns
CTL element related subdevice

◆ snd_ctl_elem_list_get_used()

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.

This function returns how many entries are actually filled with useful information.

See also snd_ctl_elem_list_get_count().

Parameters
objCTL element identifier list
Returns
number of used entries

◆ snd_ctl_elem_list_malloc()

int snd_ctl_elem_list_malloc ( snd_ctl_elem_list_t ** ptr)

allocate a #snd_ctl_elem_list_t using standard malloc.

The memory can be released using snd_ctl_elem_list_free().

Parameters
ptrreturned pointer
Returns
0 on success otherwise negative error code

◆ snd_ctl_elem_list_set_offset()

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
objCTL element identifiers list
valindex of CTL element to put at position 0 of list

◆ snd_ctl_elem_list_sizeof()

size_t snd_ctl_elem_list_sizeof ( )

get size of #snd_ctl_elem_list_t.

Returns
size in bytes

◆ snd_ctl_elem_lock()

int snd_ctl_elem_lock ( snd_ctl_t * ctl,
snd_ctl_elem_id_t * id )

Lock CTL element.

Parameters
ctlCTL handle
idCTL element id pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_elem_read()

int snd_ctl_elem_read ( snd_ctl_t * ctl,
snd_ctl_elem_value_t * data )

Get CTL element value.

Read information from sound card. You must set the ID of the element before calling this function.

See snd_ctl_elem_value_t for details.

Parameters
ctlCTL handle.
dataThe element value. The ID must be set before calling the function, and the actual value will be returned here.
Returns
0 on success otherwise a negative error code.

◆ snd_ctl_elem_remove()

int snd_ctl_elem_remove ( snd_ctl_t * ctl,
snd_ctl_elem_id_t * id )

Remove an user CTL element.

Parameters
ctlCTL handle
idCTL element identification
Returns
0 on success otherwise a negative error code

◆ snd_ctl_elem_set_bytes()

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

Replace the data stored within the element.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BYTES. It replaces the data stored in the element. Note that "bytes" elements don't have members. They have only one single block of data.

See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
dataPointer to the new data.
sizeThe size of the new data, in bytes.

◆ snd_ctl_elem_tlv_command()

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

Process structured data from given buffer for an element set.

Parameters
ctlA handle of backend module for control interface.
idID of an element.
tlvAn array with members of unsigned int type. The second member must represent total bytes of the rest of array.
Return values
0on success
>0on success when value was changed
<0a negative error code

The format of an array of tlv argument is: tlv[0]: Type. One of SND_CTL_TLVT_XXX. tlv[1]: Length. The length of value in units of byte. tlv[2..]: Value. Depending on the type.

Details are described in <sound/tlv.h>.

◆ snd_ctl_elem_tlv_read()

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

Read structured data from an element set to given buffer.

Parameters
ctlA handle of backend module for control interface.
idID of an element.
tlvAn array with members of unsigned int type.
tlv_sizeThe length of the array.
Returns
0 on success otherwise a negative error code

The format of an array of tlv argument is: tlv[0]: Type. One of SND_CTL_TLVT_XXX. tlv[1]: Length. The length of value in units of byte. tlv[2..]: Value. Depending on the type.

Details are described in <sound/tlv.h>.

◆ snd_ctl_elem_tlv_write()

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

Write structured data from given buffer to an element set.

Parameters
ctlA handle of backend module for control interface.
idID of an element.
tlvAn array with members of unsigned int type. The second member must represent total bytes of the rest of array.
Return values
0on success
>0on success when value was changed
<0a negative error code

The format of an array of tlv argument is: tlv[0]: Type. One of SND_CTL_TLVT_XXX. tlv[1]: Length. The length of value in units of byte. tlv[2..]: Value. Depending on the type.

Details are described in <sound/tlv.h>.

◆ snd_ctl_elem_type_name()

const char * snd_ctl_elem_type_name ( snd_ctl_elem_type_t type)

get name of a CTL element type

Parameters
typeCTL element type
Returns
ascii name of CTL element type

◆ snd_ctl_elem_unlock()

int snd_ctl_elem_unlock ( snd_ctl_t * ctl,
snd_ctl_elem_id_t * id )

Unlock CTL element.

Parameters
ctlCTL handle
idCTL element id pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_elem_value_clear()

void snd_ctl_elem_value_clear ( snd_ctl_elem_value_t * obj)

Clear given data of an element.

See snd_ctl_elem_value_t for details.

Parameters
objData of an element.

◆ snd_ctl_elem_value_compare()

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

Compare two snd_ctl_elem_value_t values, bytewise.

Parameters
leftFirst value.
rightSecond value.
Returns
0 on match, less than or greater than otherwise, see memcmp(3).

◆ snd_ctl_elem_value_copy()

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

Bitwise copy of a snd_ctl_elem_value_t value.

Parameters
dstPointer to destination.
srcPointer to source.

◆ snd_ctl_elem_value_free()

void snd_ctl_elem_value_free ( snd_ctl_elem_value_t * obj)

Free an #snd_ctl_elem_value_t previously allocated using snd_ctl_elem_value_malloc().

Parameters
objPointer to the snd_ctl_elem_value_t.

◆ snd_ctl_elem_value_get_boolean()

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

Get an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BOOLEAN. It returns the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object
idxThe index of the member.
Returns
The members value.

◆ snd_ctl_elem_value_get_byte()

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

Get an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BYTE. It returns the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
Returns
The members value.

◆ snd_ctl_elem_value_get_bytes()

const void * snd_ctl_elem_value_get_bytes ( const snd_ctl_elem_value_t * obj)

Get the data stored within the element.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BYTES. It returns the data stored in the element. Note that "bytes" elements don't have members. They have only one single block of data.

See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
Returns
Pointer to the elements data.

◆ snd_ctl_elem_value_get_device()

unsigned int snd_ctl_elem_value_get_device ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'device' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The device part of element identifier.

◆ snd_ctl_elem_value_get_enumerated()

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

Get an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_ENUMERATED. It returns the index of the active item. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the requested member.
Returns
The index of the active item.

◆ snd_ctl_elem_value_get_id()

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

Get the element identifier from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
ptrPointer to an identifier object. The identifier is stored there.

◆ snd_ctl_elem_value_get_iec958()

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

Get an elements IEC958 data.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_IEC958. Note that "IEC958" elements don't have members. They have only one single IEC958 information block.

See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
ptrPointer to an IEC958 structure. The data is stored there.

◆ snd_ctl_elem_value_get_index()

unsigned int snd_ctl_elem_value_get_index ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'index' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The index part of element identifier.

◆ snd_ctl_elem_value_get_integer()

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

Get an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_INTEGER. It returns the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
Returns
The members value.

◆ snd_ctl_elem_value_get_integer64()

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

Get an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_INTEGER64. It returns the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
Returns
The members value.

◆ snd_ctl_elem_value_get_interface()

snd_ctl_elem_iface_t snd_ctl_elem_value_get_interface ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'interface' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The interface part of element identifier.

◆ snd_ctl_elem_value_get_name()

const char * snd_ctl_elem_value_get_name ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'name' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The "name" part of element identifier.

◆ snd_ctl_elem_value_get_numid()

unsigned int snd_ctl_elem_value_get_numid ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'numid' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The numid.

◆ snd_ctl_elem_value_get_subdevice()

unsigned int snd_ctl_elem_value_get_subdevice ( const snd_ctl_elem_value_t * obj)

Get the identifiers 'subdevice' part from the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
Returns
The subdevice part of element identifier.

◆ snd_ctl_elem_value_malloc()

int snd_ctl_elem_value_malloc ( snd_ctl_elem_value_t ** ptr)

Allocate an invalid #snd_ctl_elem_value_t on the heap.

Allocate space for a value object on the heap. The allocated memory must be freed using snd_ctl_elem_value_free().

See snd_ctl_elem_value_t for details.

Parameters
ptrPointer to a snd_ctl_elem_value_t pointer. The address of the allocated space will be returned here.
Returns
0 on success, otherwise a negative error code.

◆ snd_ctl_elem_value_set_boolean()

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

Set an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BOOLEAN. It sets the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
valThe new value.

◆ snd_ctl_elem_value_set_byte()

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

Set an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_BYTE. It sets the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
valThe new value.

◆ snd_ctl_elem_value_set_device()

void snd_ctl_elem_value_set_device ( snd_ctl_elem_value_t * obj,
unsigned int val )

Set the identifiers 'device' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new device.

◆ snd_ctl_elem_value_set_enumerated()

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

Set an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_ENUMERATED. It activates the specified item. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the requested member.
valThe new index of the item to be activated.

◆ snd_ctl_elem_value_set_id()

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

Set the element identifier within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
ptrThe new identifier.

◆ snd_ctl_elem_value_set_iec958()

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

Set an elements IEC958 data.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_IEC958. Note that "IEC958" elements don't have members. They have only one single IEC958 information block.

See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
ptrPointer to the new IEC958 data.

◆ snd_ctl_elem_value_set_index()

void snd_ctl_elem_value_set_index ( snd_ctl_elem_value_t * obj,
unsigned int val )

Set the identifiers 'index' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new index.

◆ snd_ctl_elem_value_set_integer()

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

Set an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_INTEGER. It sets the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
valThe new value.

◆ snd_ctl_elem_value_set_integer64()

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

Set an element members value.

Use this function if the element is of type SNDRV_CTL_ELEM_TYPE_INTEGER64. It sets the value of one member. See snd_ctl_elem_value_t and Control interface for more details.

Parameters
objThe element value object.
idxThe index of the member.
valThe new value.

◆ snd_ctl_elem_value_set_interface()

void snd_ctl_elem_value_set_interface ( snd_ctl_elem_value_t * obj,
snd_ctl_elem_iface_t val )

Set the identifiers 'interface' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new interface.

◆ snd_ctl_elem_value_set_name()

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

Set the identifiers 'name' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new name.

◆ snd_ctl_elem_value_set_numid()

void snd_ctl_elem_value_set_numid ( snd_ctl_elem_value_t * obj,
unsigned int val )

Set the identifiers 'numid' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new numid.

◆ snd_ctl_elem_value_set_subdevice()

void snd_ctl_elem_value_set_subdevice ( snd_ctl_elem_value_t * obj,
unsigned int val )

Set the identifiers 'subdevice' part within the given element value.

See snd_ctl_elem_value_t for more details.

Parameters
objThe element value.
valThe new subdevice.

◆ snd_ctl_elem_value_sizeof()

size_t snd_ctl_elem_value_sizeof ( )

Get size of data structure for an element.

Returns
Size in bytes.

◆ snd_ctl_elem_write()

int snd_ctl_elem_write ( snd_ctl_t * ctl,
snd_ctl_elem_value_t * data )

Set CTL element value.

Write new value(s) to the sound card. You must set the ID and the value of the element before calling this function.

See snd_ctl_elem_value_t for details.

Parameters
ctlCTL handle.
dataThe new value.
Return values
0on success
>0on success when value was changed
<0a negative error code

◆ snd_ctl_event_clear()

void snd_ctl_event_clear ( snd_ctl_event_t * obj)

clear given #snd_ctl_event_t object

Parameters
objpointer to object to clear

◆ snd_ctl_event_copy()

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
dstpointer to destination
srcpointer to source

◆ snd_ctl_event_elem_get_device()

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
objCTL event
Returns
device part of element identifier

◆ snd_ctl_event_elem_get_id()

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
objCTL event
ptrPointer to returned CTL element identifier

◆ snd_ctl_event_elem_get_index()

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
objCTL event
Returns
index part of element identifier

◆ snd_ctl_event_elem_get_interface()

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
objCTL event
Returns
interface part of element identifier

◆ snd_ctl_event_elem_get_mask()

unsigned int snd_ctl_event_elem_get_mask ( const snd_ctl_event_t * obj)

Get event mask for an element related event.

Parameters
objCTL event
Returns
event mask for element related event

◆ snd_ctl_event_elem_get_name()

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
objCTL event
Returns
name part of element identifier

◆ snd_ctl_event_elem_get_numid()

unsigned int snd_ctl_event_elem_get_numid ( const snd_ctl_event_t * obj)

Get element numeric identifier for an element related event.

Parameters
objCTL event
Returns
element numeric identifier

◆ snd_ctl_event_elem_get_subdevice()

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
objCTL event
Returns
subdevice part of element identifier

◆ snd_ctl_event_free()

void snd_ctl_event_free ( snd_ctl_event_t * obj)

frees a previously allocated #snd_ctl_event_t

Parameters
objpointer to object to free

◆ snd_ctl_event_get_type()

snd_ctl_event_type_t snd_ctl_event_get_type ( const snd_ctl_event_t * obj)

Get type of a CTL event.

Parameters
objCTL event
Returns
CTL event type

◆ snd_ctl_event_malloc()

int snd_ctl_event_malloc ( snd_ctl_event_t ** ptr)

allocate an invalid #snd_ctl_event_t using standard malloc

Parameters
ptrreturned pointer
Returns
0 on success otherwise negative error code

◆ snd_ctl_event_sizeof()

size_t snd_ctl_event_sizeof ( )

get size of #snd_ctl_event_t

Returns
size in bytes

◆ snd_ctl_event_type_name()

const char * snd_ctl_event_type_name ( snd_ctl_event_type_t type)

get name of a CTL event type

Parameters
typeCTL event type
Returns
ascii name of CTL event type

◆ snd_ctl_get_power_state()

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

Get actual Power State.

Parameters
ctlCTL handle
stateDestination value
Returns
0 on success otherwise a negative error code

◆ snd_ctl_hwdep_info()

int snd_ctl_hwdep_info ( snd_ctl_t * ctl,
snd_hwdep_info_t * info )

Get info about a hardware dependent device.

Parameters
ctlCTL handle
infoHardware dependent device id/info pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_hwdep_next_device()

int snd_ctl_hwdep_next_device ( snd_ctl_t * ctl,
int * device )

Get next hardware dependent device number.

Parameters
ctlCTL handle
devicecurrent device on entry and next device on return
Returns
0 on success otherwise a negative error code

◆ snd_ctl_name()

const char * snd_ctl_name ( snd_ctl_t * ctl)

get identifier of CTL handle

Parameters
ctlCTL 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().

◆ snd_ctl_nonblock()

int snd_ctl_nonblock ( snd_ctl_t * ctl,
int nonblock )

set nonblock mode

Parameters
ctlCTL handle
nonblock0 = block, 1 = nonblock mode, 2 = abort
Returns
0 on success otherwise a negative error code

◆ snd_ctl_open()

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

Opens a sound card.

Parameters
ctlpReturned CTL handle.
nameA string identifying the card (See Identifying and Opening Control Interfaces).
modeOpen mode (see #SND_CTL_NONBLOCK, #SND_CTL_ASYNC).
Returns
0 on success otherwise a negative error code.

◆ snd_ctl_open_fallback()

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
ctlpReturned CTL handle
rootConfiguration root
nameASCII identifier of the CTL handle used as fallback
orig_nameThe original ASCII name
modeOpen mode (see #SND_CTL_NONBLOCK, #SND_CTL_ASYNC)
Returns
0 on success otherwise a negative error code

◆ snd_ctl_open_lconf()

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
ctlpReturned CTL handle
nameASCII identifier of the CTL handle
modeOpen mode (see #SND_CTL_NONBLOCK, #SND_CTL_ASYNC)
lconfLocal configuration
Returns
0 on success otherwise a negative error code

◆ snd_ctl_pcm_info()

int snd_ctl_pcm_info ( snd_ctl_t * ctl,
snd_pcm_info_t * info )

Get info about a PCM device.

Parameters
ctlCTL handle
infoPCM device id/info pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_pcm_next_device()

int snd_ctl_pcm_next_device ( snd_ctl_t * ctl,
int * device )

Get next PCM device number.

Parameters
ctlCTL handle
devicecurrent device on entry and next device on return
Returns
0 on success otherwise a negative error code

◆ snd_ctl_pcm_prefer_subdevice()

int snd_ctl_pcm_prefer_subdevice ( snd_ctl_t * ctl,
int subdev )

Set preferred PCM subdevice number of successive PCM open.

Parameters
ctlCTL handle
subdevPreferred PCM subdevice number
Returns
0 on success otherwise a negative error code

◆ snd_ctl_poll_descriptors()

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

get poll descriptors

Parameters
ctlCTL handle
pfdsarray of poll descriptors
spacespace in the poll descriptor array
Returns
count of filled descriptors

◆ snd_ctl_poll_descriptors_count()

int snd_ctl_poll_descriptors_count ( snd_ctl_t * ctl)

get count of poll descriptors for CTL handle

Parameters
ctlCTL handle
Returns
count of poll descriptors

◆ snd_ctl_poll_descriptors_revents()

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
ctlCTL handle
pfdsarray of poll descriptors
nfdscount of poll descriptors
reventsreturned events
Returns
zero if success, otherwise a negative error code

◆ snd_ctl_rawmidi_info()

int snd_ctl_rawmidi_info ( snd_ctl_t * ctl,
snd_rawmidi_info_t * info )

Get info about a RawMidi device.

Parameters
ctlCTL handle
infoRawMidi device id/info pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_rawmidi_next_device()

int snd_ctl_rawmidi_next_device ( snd_ctl_t * ctl,
int * device )

Get next RawMidi device number.

Parameters
ctlCTL handle
devicecurrent device on entry and next device on return
Returns
0 on success otherwise a negative error code

◆ snd_ctl_rawmidi_prefer_subdevice()

int snd_ctl_rawmidi_prefer_subdevice ( snd_ctl_t * ctl,
int subdev )

Set preferred RawMidi subdevice number of successive RawMidi open.

Parameters
ctlCTL handle
subdevPreferred RawMidi subdevice number
Returns
0 on success otherwise a negative error code

◆ snd_ctl_read()

int snd_ctl_read ( snd_ctl_t * ctl,
snd_ctl_event_t * event )

Read an event.

Parameters
ctlCTL handle
eventEvent pointer
Returns
number of events read otherwise a negative error code on failure

◆ snd_ctl_set_power_state()

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
ctlCTL handle
stateDesired Power State
Returns
0 on success otherwise a negative error code

◆ snd_ctl_subscribe_events()

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
ctlCTL handle
subscribe0 = unsubscribe, 1 = subscribe, -1 = check subscribe or not
Returns
0 on success otherwise a negative error code

◆ snd_ctl_type()

snd_ctl_type_t snd_ctl_type ( snd_ctl_t * ctl)

get type of CTL handle

Parameters
ctlCTL handle
Returns
type of CTL handle

Returns the type #snd_ctl_type_t of given CTL handle.

◆ snd_ctl_ump_block_info()

int snd_ctl_ump_block_info ( snd_ctl_t * ctl,
snd_ump_block_info_t * info )

Get UMP Block info about a UMP RawMidi device.

Parameters
ctlCTL handle
infoUMP Block info pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_ump_endpoint_info()

int snd_ctl_ump_endpoint_info ( snd_ctl_t * ctl,
snd_ump_endpoint_info_t * info )

Get UMP Endpoint info about a UMP RawMidi device.

Parameters
ctlCTL handle
infoUMP Endpoint info pointer
Returns
0 on success otherwise a negative error code

◆ snd_ctl_ump_next_device()

int snd_ctl_ump_next_device ( snd_ctl_t * ctl,
int * device )

Get next UMP device number.

Parameters
ctlCTL handle
devicecurrent device on entry and next device on return
Returns
0 on success otherwise a negative error code

◆ snd_ctl_wait()

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
ctlCTL handle
timeoutmaximum time in milliseconds to wait
Returns
0 otherwise a negative error code on failure