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_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)
 Return string list with device name hints.
int snd_device_name_free_hint (void **hints)
 Free a string list with device name hints.
char * snd_device_name_get_hint (const void *hint, const char *id)
 Get a hint Free a string list with device name hints.
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_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_tsnd_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
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_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
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_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

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

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

Event class

Enumerator:
SND_CTL_EVENT_ELEM 

Elements related event

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
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
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.

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_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
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
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_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
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 string list with device name hints.

Parameters:
hints A string list to free
Returns:
zero if success, otherwise a negative error code
char* snd_device_name_get_hint ( const void *  hint,
const char *  id 
)

Get a hint Free a string list with device name hints.

Parameters:
hint A pointer to hint
id Hint ID (see bellow)
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 strings), not present (NULL) means both

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

Return string list with device name hints.

Parameters:
card Card number or -1 (means all cards)
iface Interface identification (like "pcm", "rawmidi", "timer", "seq")
hints Result - array of string with device name hints
Returns:
zero if success, otherwise a negative error code

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

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"
}

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

Generated for ALSA project - the C library reference by doxygen 1.6.1