ALSA project - the C library reference
|
Modules | |
High level Control Interface | |
Setup Control Interface | |
Files | |
file | control_plugin.c |
Control Interface. | |
Data Structures | |
struct | snd_aes_iec958_t |
Typedefs | |
typedef struct _snd_ctl_card_info | snd_ctl_card_info_t |
CTL card info container. More... | |
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 , SND_CTL_TYPE_REMAP } |
Functions | |
int | snd_card_load (int card) |
Try to load the driver for a card. More... | |
int | snd_card_next (int *card) |
Iterate over physical sound cards. More... | |
int | snd_card_get_index (const char *name) |
Convert a card string to the card index. More... | |
int | snd_card_get_name (int card, char **name) |
Obtain the card name. More... | |
int | snd_card_get_longname (int card, char **name) |
Obtain the card long name. More... | |
int | snd_device_name_hint (int card, const char *iface, void ***hints) |
int | snd_device_name_free_hint (void **hints) |
char * | snd_device_name_get_hint (const void *hint, const char *id) |
int | snd_ctl_open (snd_ctl_t **ctl, const char *name, int mode) |
Opens a sound card. More... | |
int | snd_ctl_open_lconf (snd_ctl_t **ctl, const char *name, int mode, snd_config_t *lconf) |
Opens a CTL using local configuration. More... | |
int | snd_ctl_open_fallback (snd_ctl_t **ctl, snd_config_t *root, const char *name, const char *orig_name, int mode) |
Opens a fallback CTL. More... | |
int | snd_ctl_close (snd_ctl_t *ctl) |
close CTL handle More... | |
int | snd_ctl_nonblock (snd_ctl_t *ctl, int nonblock) |
set nonblock mode More... | |
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. More... | |
snd_ctl_t * | snd_async_handler_get_ctl (snd_async_handler_t *handler) |
Return CTL handle related to an async handler. More... | |
int | snd_ctl_poll_descriptors_count (snd_ctl_t *ctl) |
get count of poll descriptors for CTL handle More... | |
int | snd_ctl_poll_descriptors (snd_ctl_t *ctl, struct pollfd *pfds, unsigned int space) |
get poll descriptors More... | |
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 More... | |
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) More... | |
int | snd_ctl_card_info (snd_ctl_t *ctl, snd_ctl_card_info_t *info) |
Get information about the sound card. More... | |
int | snd_ctl_elem_list (snd_ctl_t *ctl, snd_ctl_elem_list_t *list) |
Get a list of element identifiers. More... | |
int | snd_ctl_elem_info (snd_ctl_t *ctl, snd_ctl_elem_info_t *info) |
Get CTL element information. More... | |
int | snd_ctl_elem_read (snd_ctl_t *ctl, snd_ctl_elem_value_t *data) |
Get CTL element value. More... | |
int | snd_ctl_elem_write (snd_ctl_t *ctl, snd_ctl_elem_value_t *data) |
Set CTL element value. More... | |
int | snd_ctl_elem_lock (snd_ctl_t *ctl, snd_ctl_elem_id_t *id) |
Lock CTL element. More... | |
int | snd_ctl_elem_unlock (snd_ctl_t *ctl, snd_ctl_elem_id_t *id) |
Unlock CTL element. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | snd_ctl_get_power_state (snd_ctl_t *ctl, unsigned int *state) |
Get actual Power State. More... | |
int | snd_ctl_read (snd_ctl_t *ctl, snd_ctl_event_t *event) |
Read an event. More... | |
int | snd_ctl_wait (snd_ctl_t *ctl, int timeout) |
Wait for a CTL to become ready (i.e. at least one event pending) More... | |
const char * | snd_ctl_name (snd_ctl_t *ctl) |
get identifier of CTL handle More... | |
snd_ctl_type_t | snd_ctl_type (snd_ctl_t *ctl) |
get type of CTL handle More... | |
const char * | snd_ctl_elem_type_name (snd_ctl_elem_type_t type) |
get name of a CTL element type More... | |
const char * | snd_ctl_elem_iface_name (snd_ctl_elem_iface_t iface) |
get name of a CTL element related interface More... | |
const char * | snd_ctl_event_type_name (snd_ctl_event_type_t type) |
get name of a CTL event type More... | |
unsigned int | snd_ctl_event_elem_get_mask (const snd_ctl_event_t *obj) |
Get event mask for an element related event. More... | |
unsigned int | snd_ctl_event_elem_get_numid (const snd_ctl_event_t *obj) |
Get element numeric identifier for an element related event. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | snd_ctl_elem_list_alloc_space (snd_ctl_elem_list_t *obj, unsigned int entries) |
allocate space for CTL element identifiers list More... | |
void | snd_ctl_elem_list_free_space (snd_ctl_elem_list_t *obj) |
free previously allocated space for CTL element identifiers list More... | |
char * | snd_ctl_ascii_elem_id_get (snd_ctl_elem_id_t *id) |
return ASCII CTL element identifier name More... | |
int | snd_ctl_ascii_elem_id_parse (snd_ctl_elem_id_t *dst, const char *str) |
parse ASCII string as CTL element identifier More... | |
int | snd_ctl_ascii_value_parse (snd_ctl_t *handle, snd_ctl_elem_value_t *dst, snd_ctl_elem_info_t *info, const char *value) |
parse ASCII string as CTL element value More... | |
size_t | snd_ctl_elem_id_sizeof (void) |
get size of snd_ctl_elem_id_t More... | |
int | snd_ctl_elem_id_malloc (snd_ctl_elem_id_t **ptr) |
allocate an invalid snd_ctl_elem_id_t using standard malloc More... | |
void | snd_ctl_elem_id_free (snd_ctl_elem_id_t *obj) |
frees a previously allocated snd_ctl_elem_id_t More... | |
void | snd_ctl_elem_id_clear (snd_ctl_elem_id_t *obj) |
clear given snd_ctl_elem_id_t object More... | |
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 More... | |
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 More... | |
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 More... | |
unsigned int | snd_ctl_elem_id_get_numid (const snd_ctl_elem_id_t *obj) |
Get numeric identifier from a CTL element identifier. More... | |
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. More... | |
unsigned int | snd_ctl_elem_id_get_device (const snd_ctl_elem_id_t *obj) |
Get device part of a CTL element identifier. More... | |
unsigned int | snd_ctl_elem_id_get_subdevice (const snd_ctl_elem_id_t *obj) |
Get subdevice part of a CTL element identifier. More... | |
const char * | snd_ctl_elem_id_get_name (const snd_ctl_elem_id_t *obj) |
Get name part of a CTL element identifier. More... | |
unsigned int | snd_ctl_elem_id_get_index (const snd_ctl_elem_id_t *obj) |
Get index part of a CTL element identifier. More... | |
void | snd_ctl_elem_id_set_numid (snd_ctl_elem_id_t *obj, unsigned int val) |
Set numeric identifier for a CTL element identifier. More... | |
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. More... | |
void | snd_ctl_elem_id_set_device (snd_ctl_elem_id_t *obj, unsigned int val) |
Set device part for a CTL element identifier. More... | |
void | snd_ctl_elem_id_set_subdevice (snd_ctl_elem_id_t *obj, unsigned int val) |
Set subdevice part for a CTL element identifier. More... | |
void | snd_ctl_elem_id_set_name (snd_ctl_elem_id_t *obj, const char *val) |
Set name part for a CTL element identifier. More... | |
void | snd_ctl_elem_id_set_index (snd_ctl_elem_id_t *obj, unsigned int val) |
Set index part for a CTL element identifier. More... | |
size_t | snd_ctl_card_info_sizeof (void) |
get size of snd_ctl_card_info_t. More... | |
int | snd_ctl_card_info_malloc (snd_ctl_card_info_t **ptr) |
Allocate an invalid snd_ctl_card_info_t on the heap. More... | |
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(). More... | |
void | snd_ctl_card_info_clear (snd_ctl_card_info_t *obj) |
Clear given card info object. More... | |
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. More... | |
int | snd_ctl_card_info_get_card (const snd_ctl_card_info_t *obj) |
Get the sound card index from the given info object. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
size_t | snd_ctl_event_sizeof (void) |
get size of snd_ctl_event_t More... | |
int | snd_ctl_event_malloc (snd_ctl_event_t **ptr) |
allocate an invalid snd_ctl_event_t using standard malloc More... | |
void | snd_ctl_event_free (snd_ctl_event_t *obj) |
frees a previously allocated snd_ctl_event_t More... | |
void | snd_ctl_event_clear (snd_ctl_event_t *obj) |
clear given snd_ctl_event_t object More... | |
void | snd_ctl_event_copy (snd_ctl_event_t *dst, const snd_ctl_event_t *src) |
copy one snd_ctl_event_t to another More... | |
snd_ctl_event_type_t | snd_ctl_event_get_type (const snd_ctl_event_t *obj) |
Get type of a CTL event. More... | |
size_t | snd_ctl_elem_list_sizeof (void) |
get size of snd_ctl_elem_list_t. More... | |
int | snd_ctl_elem_list_malloc (snd_ctl_elem_list_t **ptr) |
allocate a snd_ctl_elem_list_t using standard malloc. More... | |
void | snd_ctl_elem_list_free (snd_ctl_elem_list_t *obj) |
frees a previously allocated snd_ctl_elem_list_t. More... | |
void | snd_ctl_elem_list_clear (snd_ctl_elem_list_t *obj) |
Clear given snd_ctl_elem_list_t object. More... | |
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. More... | |
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. More... | |
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. More... | |
unsigned int | snd_ctl_elem_list_get_count (const snd_ctl_elem_list_t *obj) |
Get total count of elements present in CTL device. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
size_t | snd_ctl_elem_info_sizeof (void) |
get size of snd_ctl_elem_info_t More... | |
int | snd_ctl_elem_info_malloc (snd_ctl_elem_info_t **ptr) |
allocate an invalid snd_ctl_elem_info_t using standard malloc More... | |
void | snd_ctl_elem_info_free (snd_ctl_elem_info_t *obj) |
frees a previously allocated snd_ctl_elem_info_t More... | |
void | snd_ctl_elem_info_clear (snd_ctl_elem_info_t *obj) |
clear given snd_ctl_elem_info_t object More... | |
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 More... | |
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. More... | |
int | snd_ctl_elem_info_is_readable (const snd_ctl_elem_info_t *obj) |
Get info about readability from a CTL element id/info. More... | |
int | snd_ctl_elem_info_is_writable (const snd_ctl_elem_info_t *obj) |
Get info about writability from a CTL element id/info. More... | |
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. More... | |
int | snd_ctl_elem_info_is_inactive (const snd_ctl_elem_info_t *obj) |
Get info about status from a CTL element id/info. More... | |
int | snd_ctl_elem_info_is_locked (const snd_ctl_elem_info_t *obj) |
Get info whether an element is locked. More... | |
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. More... | |
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. More... | |
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. More... | |
int | snd_ctl_elem_info_is_owner (const snd_ctl_elem_info_t *obj) |
Get info if I own an element. More... | |
int | snd_ctl_elem_info_is_user (const snd_ctl_elem_info_t *obj) |
Get info if it's a user element. More... | |
pid_t | snd_ctl_elem_info_get_owner (const snd_ctl_elem_info_t *obj) |
Get owner of a locked element. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | snd_ctl_elem_info_get_dimensions (const snd_ctl_elem_info_t *obj) |
Get count of dimensions for given element. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
void | snd_ctl_elem_info_set_inactive (snd_ctl_elem_info_t *obj, int val) |
Set inactive parameter of a CTL element id/info. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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-defined control element of integer type. More... | |
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-defined control element of integer64 type. More... | |
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-defined control element of boolean type. More... | |
int | snd_ctl_elem_add_enumerated (snd_ctl_t *ctl, const snd_ctl_elem_id_t *id, unsigned int count, unsigned int items, const char *const names[]) |
Create and add a user-defined control element of enumerated type. More... | |
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. More... | |
int | snd_ctl_elem_remove (snd_ctl_t *ctl, snd_ctl_elem_id_t *id) |
Remove an user CTL element. More... | |
size_t | snd_ctl_elem_value_sizeof (void) |
Get size of data structure for an element. More... | |
int | snd_ctl_elem_value_malloc (snd_ctl_elem_value_t **ptr) |
Allocate an invalid snd_ctl_elem_value_t on the heap. More... | |
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(). More... | |
void | snd_ctl_elem_value_clear (snd_ctl_elem_value_t *obj) |
Clear given data of an element. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
int | snd_ctl_elem_value_get_boolean (const snd_ctl_elem_value_t *obj, unsigned int idx) |
Get an element members value. More... | |
long | snd_ctl_elem_value_get_integer (const snd_ctl_elem_value_t *obj, unsigned int idx) |
Get an element members value. More... | |
long long | snd_ctl_elem_value_get_integer64 (const snd_ctl_elem_value_t *obj, unsigned int idx) |
Get an element members value. More... | |
unsigned int | snd_ctl_elem_value_get_enumerated (const snd_ctl_elem_value_t *obj, unsigned int idx) |
Get an element members value. More... | |
unsigned char | snd_ctl_elem_value_get_byte (const snd_ctl_elem_value_t *obj, unsigned int idx) |
Get an element members value. More... | |
void | snd_ctl_elem_value_set_boolean (snd_ctl_elem_value_t *obj, unsigned int idx, long val) |
Set an element members value. More... | |
void | snd_ctl_elem_value_set_integer (snd_ctl_elem_value_t *obj, unsigned int idx, long val) |
Set an element members value. More... | |
void | snd_ctl_elem_value_set_integer64 (snd_ctl_elem_value_t *obj, unsigned int idx, long long val) |
Set an element members value. More... | |
void | snd_ctl_elem_value_set_enumerated (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned int val) |
Set an element members value. More... | |
void | snd_ctl_elem_value_set_byte (snd_ctl_elem_value_t *obj, unsigned int idx, unsigned char val) |
Set an element members value. More... | |
void | snd_ctl_elem_set_bytes (snd_ctl_elem_value_t *obj, void *data, size_t size) |
Replace the data stored within the element. More... | |
const void * | snd_ctl_elem_value_get_bytes (const snd_ctl_elem_value_t *obj) |
Get the data stored within the element. More... | |
void | snd_ctl_elem_value_get_iec958 (const snd_ctl_elem_value_t *obj, snd_aes_iec958_t *ptr) |
Get an elements IEC958 data. More... | |
void | snd_ctl_elem_value_set_iec958 (snd_ctl_elem_value_t *obj, const snd_aes_iec958_t *ptr) |
Set an elements IEC958 data. More... | |
int | snd_tlv_parse_dB_info (unsigned int *tlv, unsigned int tlv_size, unsigned int **db_tlvp) |
Parse TLV stream and retrieve dB information. More... | |
int | snd_tlv_get_dB_range (unsigned int *tlv, long rangemin, long rangemax, long *min, long *max) |
Get the dB min/max values. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
The control interface. See Control interface page for more details.
#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 on the stack.
Allocate space for a card info object on the stack. The allocated memory need not be freed, because it is on the stack.
See snd_ctl_card_info_t for details.
ptr | Pointer to a snd_ctl_elem_value_t pointer. The address of the allocated space will returned here. |
#define snd_ctl_elem_id_alloca | ( | ptr | ) |
allocate an invalid snd_ctl_elem_id_t using standard alloca
ptr | returned pointer |
#define snd_ctl_elem_info_alloca | ( | ptr | ) |
allocate an invalid snd_ctl_elem_info_t using standard alloca
ptr | returned pointer |
#define snd_ctl_elem_list_alloca | ( | ptr | ) |
Allocate a snd_ctl_elem_list_t using standard alloca.
The memory is allocated on the stack and will automatically be released when the stack unwinds (i.e. no free() is needed).
ptr | Pointer to allocated memory. |
#define snd_ctl_elem_value_alloca | ( | ptr | ) |
Allocate an invalid snd_ctl_elem_value_t on the stack.
Allocate space for a value object on the stack. The allocated memory need not be freed, because it is on the stack.
See snd_ctl_elem_value_t for details.
ptr | Pointer to a snd_ctl_elem_value_t pointer. The address of the allocated space will returned here. |
#define snd_ctl_event_alloca | ( | ptr | ) |
allocate an invalid snd_ctl_event_t using standard alloca
ptr | returned pointer |
#define SND_CTL_EVENT_MASK_ADD |
Element has been added
#define SND_CTL_EVENT_MASK_INFO |
Element info has been changed
#define SND_CTL_EVENT_MASK_REMOVE |
Element has been removed (Warning: test this first and if set don't test the other masks)
#define SND_CTL_EVENT_MASK_TLV |
Element's TLV value has been changed
#define SND_CTL_EVENT_MASK_VALUE |
Element value has been changed
#define SND_CTL_NAME_CAPTURE "Capture " |
CTL name helper
#define SND_CTL_NAME_IEC958 | ( | expl, | |
direction, | |||
what | |||
) | "IEC958 " expl SND_CTL_NAME_##direction SND_CTL_NAME_IEC958_##what |
Element name for IEC958 (S/PDIF)
#define SND_CTL_NAME_IEC958_CON_MASK "Con Mask" |
CTL name helper
#define SND_CTL_NAME_IEC958_DEFAULT "Default" |
CTL name helper
#define SND_CTL_NAME_IEC958_MASK "Mask" |
CTL name helper
#define SND_CTL_NAME_IEC958_NONE "" |
CTL name helper
#define SND_CTL_NAME_IEC958_PCM_STREAM "PCM Stream" |
CTL name helper
#define SND_CTL_NAME_IEC958_PRO_MASK "Pro Mask" |
CTL name helper
#define SND_CTL_NAME_IEC958_SWITCH "Switch" |
CTL name helper
#define SND_CTL_NAME_IEC958_VOLUME "Volume" |
CTL name helper
#define SND_CTL_NAME_NONE "" |
CTL name helper
#define SND_CTL_NAME_PLAYBACK "Playback " |
CTL name helper
#define SND_CTL_NONBLOCK |
Non blocking mode (flag for open mode)
#define SND_CTL_POWER_D0 0x0000 |
ACPI/PCI Power State D0
#define SND_CTL_POWER_D1 0x0100 |
ACPI/PCI Power State D1
#define SND_CTL_POWER_D2 0x0200 |
ACPI/PCI Power State D2
#define SND_CTL_POWER_D3 0x0300 |
ACPI/PCI Power State D3
#define SND_CTL_POWER_D3cold (SND_CTL_POWER_D3|0x0001) |
ACPI/PCI Power State D3cold
#define SND_CTL_POWER_D3hot (SND_CTL_POWER_D3|0x0000) |
ACPI/PCI Power State D3hot
#define SND_CTL_POWER_MASK 0xff00 |
Mask for the major Power State identifier
#define SND_CTL_READONLY |
Read only (flag for open mode)
#define SND_CTL_TLV_DB_GAIN_MUTE -9999999 |
Mute state
#define SND_CTL_TLVT_CHMAP_FIXED 0x00101 |
TLV type - fixed channel map positions
#define SND_CTL_TLVT_CHMAP_PAIRED 0x00103 |
TLV type - pair-wise swappable channel map positions
#define SND_CTL_TLVT_CHMAP_VAR 0x00102 |
TLV type - freely swappable channel map positions
#define SND_CTL_TLVT_CONTAINER 0x0000 |
TLV type - Container
#define SND_CTL_TLVT_DB_LINEAR 0x0002 |
TLV type - linear volume
#define SND_CTL_TLVT_DB_MINMAX 0x0004 |
TLV type - dB scale specified by min/max values
#define SND_CTL_TLVT_DB_MINMAX_MUTE 0x0005 |
TLV type - dB scale specified by min/max values (with mute)
#define SND_CTL_TLVT_DB_RANGE 0x0003 |
TLV type - dB range container
#define SND_CTL_TLVT_DB_SCALE 0x0001 |
TLV type - basic dB scale
#define SND_SCTL_NOFREE 0x0001 |
Don't destroy the ctl handle when close
typedef struct _snd_ctl_card_info snd_ctl_card_info_t |
CTL card info container.
This type contains meta information about a sound card, such as the index, name, longname, etc.
Before using a snd_ctl_card_info_t object, it must be allocated using snd_ctl_card_info_alloca() or snd_ctl_card_info_malloc(). When using the latter, it must be freed again using snd_ctl_card_info_free().
A card info object can be zeroed out using snd_ctl_card_info_clear().
A card info object can be copied to another one using snd_ctl_card_info_copy().
To obtain the card information, it must first be opened using snd_ctl_open(), and a snd_ctl_card_info_t container must be allocated. Then, the information can be read using snd_ctl_card_info_get_card().
Thereafter, the card properties can be read using the snd_ctl_card_info_get_*() functions.
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 list container
This is a list of CTL elements. The list contains management information (e.g. how many elements the sound card has) as well as the element identifiers. All functions which operate on the list are named snd_ctl_elem_list_*().
There are two memory areas to deal with: The list container itself and the memory for the element identifiers.
To manage the area for the list container, the following functions are used:
To manage the space for the element identifiers, the snd_ctl_elem_list_alloc_space() and snd_ctl_elem_list_free_space() are used. Allocating the right amount of space can be achieved by first obtaining the number of elements and then calling snd_ctl_elem_list_alloc_space():
The elements in the list are accessed using an index. This index is the location in the list; Don't confuse it with the 'index' of the element identifier. For example:
This will access the 3rd element in the list (index=2) and get the elements index from the driver (which might be 13, for example).
typedef struct _snd_ctl_elem_value snd_ctl_elem_value_t |
CTL element value container.
Contains the value(s) (i.e. members) of a single element. All values of a given element are of the same type.
To access a value, a snd_ctl_elem_value_t must be allocated using snd_ctl_elem_value_alloca() or snd_ctl_elem_value_malloc(). When using the latter, it must be freed again using snd_ctl_elem_value_free().
A value object can be zeroed out using snd_ctl_elem_value_clear().
A value object can be copied to another one using snd_ctl_elem_value_copy().
Then, the ID must be filled. It is sufficient to fill only the numid, if known. Otherwise, interface type, device, subdevice, name, index must all be given. The following functions can be used to fill the ID:
When communicating with the driver (snd_ctl_elem_read(), snd_ctl_elem_write()), and the numid was given, the interface, device, ... are filled (even if you set the before). When the numid is unset (i.e. it is 0), it is filled.
After the value container was created and filled with the ID of the desired element, the value(s) can be fetched from the driver (and thus from the hardware) or written to the driver.
To fetch a value, use snd_ctl_elem_read(). Thereafter, use the snd_ctl_elem_value_get_*() functions to obtain the actual value.
To write a new value, first use a snd_ctl_elem_value_set_*() to set it, then call snd_ctl_elem_write() to write it to the driver.
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
enum snd_ctl_elem_iface_t |
enum snd_ctl_elem_type_t |
CTL element type
enum snd_ctl_event_type_t |
enum snd_ctl_type_t |
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.
handler | Returned handler handle |
ctl | CTL handle |
callback | Callback function |
private_data | Callback private data |
snd_ctl_t * snd_async_handler_get_ctl | ( | snd_async_handler_t * | handler | ) |
Return CTL handle related to an async handler.
handler | Async handler handle |
int snd_card_get_index | ( | const char * | string | ) |
Convert a card string to the card index.
This works only for physical sound cards, not for virtual cards.
string | A string identifying the card. |
The accepted formats for "string" are:
int snd_card_get_longname | ( | int | card, |
char ** | name | ||
) |
Obtain the card long name.
card | Index of the card. |
name | Result - card long name corresponding to card index. |
The value returned in name is allocated with strdup and should be freed when no longer used.
int snd_card_get_name | ( | int | card, |
char ** | name | ||
) |
Obtain the card name.
card | The index of the card. |
name | Result - card name corresponding to card index. |
The value returned in name is allocated with strdup and should be freed when no longer used.
int snd_card_load | ( | int | card | ) |
Try to load the driver for a card.
card | Card index. |
int snd_card_next | ( | int * | rcard | ) |
Iterate over physical sound cards.
This function takes the index of a physical sound card and sets it to the index of the next card. If index is -1, it is set to the index of the first card. After the last card, the index is set to -1.
For example, if you have 2 sound cards (with index 0 and 1), the index will be modified as follows:
This does not work for virtual sound cards.
rcard | Index of current card. The index of the next card is stored here. |
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.
ctl | A handle of backend module for control interface. |
info | Common information for a new element set, with ID of the first new element. |
element_count | The number of elements added by this operation. |
member_count | The 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.
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.
ctl | A handle of backend module for control interface. |
info | Common information for a new element set, with ID of the first new element. |
element_count | The number of elements added by this operation. |
member_count | The number of members which a element has to represent its states. |
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.
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.
ctl | A handle of backend module for control interface. |
info | Common information for a new element set, with ID of the first new element. |
element_count | The number of elements added by this operation. |
member_count | The number of members which a element has to represent its states. |
items | Range of possible values (0 ... items - 1). |
labels | An array containing items strings. |
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.
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.
ctl | A handle of backend module for control interface. |
info | Common information for a new element set, with ID of the first new element. |
element_count | The number of elements added by this operation. |
member_count | The number of members which a element has to represent its states. |
min | Minimum value for each member of the elements. |
max | Maximum value for each member of the elements. |
step | The step of value for each member in the elements. |
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.
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.
ctl | A handle of backend module for control interface. |
info | Common information for a new element set, with ID of the first new element. |
element_count | The number of elements added by this operation. |
member_count | The number of members which a element has to represent its states. |
min | Minimum value for each member of the elements. |
max | Maximum value for each member of the elements. |
step | The step of value for each member in the elements. |
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.
char * snd_ctl_ascii_elem_id_get | ( | snd_ctl_elem_id_t * | id | ) |
return ASCII CTL element identifier name
id | CTL identifier |
The string is allocated using strdup().
int snd_ctl_ascii_elem_id_parse | ( | snd_ctl_elem_id_t * | dst, |
const char * | str | ||
) |
parse ASCII string as CTL element identifier
dst | destination CTL identifier |
str | source ASCII string |
int snd_ctl_ascii_value_parse | ( | snd_ctl_t * | handle, |
snd_ctl_elem_value_t * | dst, | ||
snd_ctl_elem_info_t * | info, | ||
const char * | value | ||
) |
parse ASCII string as CTL element value
handle | CTL handle |
dst | destination CTL element value |
info | CTL element info structure |
value | source ASCII string |
Note: For toggle command, the dst must contain previous (current) state (do the snd_ctl_elem_read call to obtain it).
int snd_ctl_card_info | ( | snd_ctl_t * | ctl, |
snd_ctl_card_info_t * | info | ||
) |
Get 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.
ctl | The CTL handle. |
info | The card information is stored here. |
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.
obj | 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.
dst | Pointer to destination. |
src | Pointer to source. |
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().
obj | Pointer to the snd_ctl_card_info_t. |
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.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card 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.
See snd_ctl_card_info_t for more details.
obj | The card info object. |
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.
ptr | Pointer to a snd_ctl_card_info_t pointer. The address of the allocated space will be returned here. |
size_t snd_ctl_card_info_sizeof | ( | void | ) |
get size of snd_ctl_card_info_t.
int snd_ctl_close | ( | snd_ctl_t * | ctl | ) |
close CTL handle
ctl | CTL handle |
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.
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. |
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.
ctl | the control handler |
id | the element id |
volume | the raw volume value to convert |
db_gain | the dB gain (in 0.01dB unit) |
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.
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.
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.
[in] | ctl | A handle of backend module for control interface. |
[in,out] | id | ID 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.
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.
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.
void snd_ctl_elem_id_clear | ( | snd_ctl_elem_id_t * | obj | ) |
clear given snd_ctl_elem_id_t object
obj | pointer to object to clear |
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
id1 | pointer to first id |
id2 | pointer to second id |
zero | when 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.
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
id1 | pointer to first id |
id2 | pointer to second id |
zero | when 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.
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
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
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.
obj | 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.
obj | 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.
obj | 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.
obj | CTL element identifier |
unsigned int snd_ctl_elem_id_get_numid | ( | const snd_ctl_elem_id_t * | obj | ) |
Get numeric identifier from a CTL element identifier.
obj | 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.
obj | CTL element identifier |
int snd_ctl_elem_id_malloc | ( | snd_ctl_elem_id_t ** | ptr | ) |
allocate an invalid snd_ctl_elem_id_t using standard malloc
ptr | returned pointer |
void snd_ctl_elem_id_set_device | ( | snd_ctl_elem_id_t * | obj, |
unsigned int | val | ||
) |
Set device part for a CTL element identifier.
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.
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.
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.
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.
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.
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
const char * snd_ctl_elem_iface_name | ( | snd_ctl_elem_iface_t | iface | ) |
get name of a CTL element related interface
iface | CTL element related interface |
int snd_ctl_elem_info | ( | snd_ctl_t * | ctl, |
snd_ctl_elem_info_t * | info | ||
) |
Get CTL element information.
ctl | CTL handle |
info | CTL element id/information pointer |
void snd_ctl_elem_info_clear | ( | snd_ctl_elem_info_t * | obj | ) |
clear given snd_ctl_elem_info_t object
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
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
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.
obj | 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.
obj | CTL element id/info |
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.
obj | CTL element id/info |
idx | The dimension index |
int snd_ctl_elem_info_get_dimensions | ( | const snd_ctl_elem_info_t * | obj | ) |
Get count of dimensions for given element.
obj | CTL element id/info |
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.
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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | CTL element id/info |
pid_t snd_ctl_elem_info_get_owner | ( | const snd_ctl_elem_info_t * | obj | ) |
Get owner of a locked element.
obj | 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.
obj | 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.
obj | 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.
obj | CTL element id/info |
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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | 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.
obj | CTL element id/info |
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.
obj | 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.
obj | CTL element id/info |
int snd_ctl_elem_info_is_user | ( | const snd_ctl_elem_info_t * | obj | ) |
Get info if it's a user element.
obj | 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.
obj | 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.
obj | CTL element id/info |
int snd_ctl_elem_info_malloc | ( | snd_ctl_elem_info_t ** | ptr | ) |
allocate an invalid snd_ctl_elem_info_t using standard malloc
ptr | returned pointer |
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.
obj | CTL element id/info |
val | device part of element identifier |
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.
info | Information of an element. |
dimension | Dimension width for each level by member unit. |
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.
obj | CTL element id/info |
ptr | CTL element identifier |
void snd_ctl_elem_info_set_inactive | ( | snd_ctl_elem_info_t * | obj, |
int | val | ||
) |
Set inactive parameter of a CTL element id/info.
obj | CTL element id/info |
val | inactive part of 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.
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.
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.
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.
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.
obj | CTL element id/info |
val | element numeric identifier |
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.
obj | CTL element id/info |
rval | readability part of element identifier |
wval | writeability part of element 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.
obj | CTL element id/info |
val | subdevice part of element identifier |
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.
obj | CTL element id/info |
rval | TLV readability part of element identifier |
wval | TLV writeability part of element identifier |
size_t snd_ctl_elem_info_sizeof | ( | void | ) |
get size of snd_ctl_elem_info_t
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.
ctl | CTL handle |
list | CTL element identifiers list pointer |
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().
obj | CTL element identifiers list. |
entries | How many entries to allocate. See snd_ctl_elem_list_t to learn how to obtain this number in advance. |
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.
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.
This performs a shallow copy. That means the both lists will share the same space for the elements. The elements will not be copied.
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.
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.
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
Releases space previously allocated using snd_ctl_elem_list_alloc_space().
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.
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().
obj | CTL element identifier 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.
obj | CTL element identifier list |
idx | Index of entry |
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.
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.
obj | CTL element identifier list |
idx | Index of entry |
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.
obj | CTL element identifier list |
idx | Index of entry |
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.
obj | CTL element identifier list |
idx | Index of entry |
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.
obj | CTL element identifier list |
idx | Index of entry |
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.
obj | CTL element identifier list |
idx | Index of entry |
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().
obj | CTL element identifier list |
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().
ptr | returned pointer |
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.
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.
int snd_ctl_elem_lock | ( | snd_ctl_t * | ctl, |
snd_ctl_elem_id_t * | id | ||
) |
Lock CTL element.
ctl | CTL handle |
id | CTL element id pointer |
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.
ctl | CTL handle. |
data | The element value. The ID must be set before calling the function, and the actual value will be returned here. |
int snd_ctl_elem_remove | ( | snd_ctl_t * | ctl, |
snd_ctl_elem_id_t * | id | ||
) |
Remove an user CTL element.
ctl | CTL handle |
id | CTL element identification |
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.
obj | The element value object. |
data | Pointer to the new data. |
size | The size of the new data, in bytes. |
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.
ctl | A handle of backend module for control interface. |
id | ID of an element. |
tlv | An array with members of unsigned int type. The second member must represent total bytes of the rest of array. |
0 | on success |
>0 | on success when value was changed |
<0 | 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>.
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.
ctl | A handle of backend module for control interface. |
id | ID of an element. |
tlv | An array with members of unsigned int type. |
tlv_size | The length of the array. |
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>.
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.
ctl | A handle of backend module for control interface. |
id | ID of an element. |
tlv | An array with members of unsigned int type. The second member must represent total bytes of the rest of array. |
0 | on success |
>0 | on success when value was changed |
<0 | 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>.
const char * snd_ctl_elem_type_name | ( | snd_ctl_elem_type_t | type | ) |
get name of a CTL element type
type | CTL element type |
int snd_ctl_elem_unlock | ( | snd_ctl_t * | ctl, |
snd_ctl_elem_id_t * | id | ||
) |
Unlock CTL element.
ctl | CTL handle |
id | CTL element id pointer |
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.
obj | Data of an element. |
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.
left | First value. |
right | Second value. |
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.
dst | Pointer to destination. |
src | Pointer to source. |
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().
obj | Pointer to the snd_ctl_elem_value_t. |
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.
obj | The element value object |
idx | The index of the member. |
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.
obj | The element value object. |
idx | The index of the member. |
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.
obj | The element value object. |
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.
obj | The element value. |
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.
obj | The element value object. |
idx | The index of the requested member. |
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.
obj | The element value. |
ptr | Pointer to an identifier object. The identifier is stored there. |
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.
obj | The element value object. |
ptr | Pointer to an IEC958 structure. The data is stored there. |
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.
obj | The element value. |
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.
obj | The element value object. |
idx | The index of the member. |
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.
obj | The element value object. |
idx | The index of the member. |
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.
obj | The 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.
See snd_ctl_elem_value_t for more details.
obj | The 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.
See snd_ctl_elem_value_t for more details.
obj | The 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.
See snd_ctl_elem_value_t for more details.
obj | The element value. |
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.
ptr | Pointer to a snd_ctl_elem_value_t pointer. The address of the allocated space will be returned here. |
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.
obj | The element value object. |
idx | The index of the member. |
val | The new 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.
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.
obj | The element value object. |
idx | The index of the member. |
val | The new 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.
See snd_ctl_elem_value_t for more details.
obj | The element value. |
val | The new device. |
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.
obj | The element value object. |
idx | The index of the requested member. |
val | The new index of the item to be activated. |
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.
obj | The element value. |
ptr | The new identifier. |
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.
obj | The element value object. |
ptr | Pointer to the new IEC958 data. |
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.
obj | The element value. |
val | The new index. |
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.
obj | The element value object. |
idx | The index of the member. |
val | The new 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.
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.
obj | The element value object. |
idx | The index of the member. |
val | The new 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.
See snd_ctl_elem_value_t for more details.
obj | The element value. |
val | The new interface. |
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.
obj | The element value. |
val | The new name. |
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.
obj | The element value. |
val | The new numid. |
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.
obj | The element value. |
val | The new subdevice. |
size_t snd_ctl_elem_value_sizeof | ( | void | ) |
Get size of data structure for an element.
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.
ctl | CTL handle. |
data | The new value. |
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
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
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.
obj | CTL 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.
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.
obj | CTL 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.
obj | CTL event |
unsigned int snd_ctl_event_elem_get_mask | ( | const snd_ctl_event_t * | obj | ) |
Get event mask for an element related event.
obj | CTL 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.
obj | CTL event |
unsigned int snd_ctl_event_elem_get_numid | ( | const snd_ctl_event_t * | obj | ) |
Get element numeric identifier for an element related event.
obj | CTL 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.
obj | CTL event |
void snd_ctl_event_free | ( | snd_ctl_event_t * | obj | ) |
frees a previously allocated snd_ctl_event_t
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.
obj | CTL event |
int snd_ctl_event_malloc | ( | snd_ctl_event_t ** | ptr | ) |
allocate an invalid snd_ctl_event_t using standard malloc
ptr | returned pointer |
size_t snd_ctl_event_sizeof | ( | void | ) |
get size of snd_ctl_event_t
const char * snd_ctl_event_type_name | ( | snd_ctl_event_type_t | type | ) |
get name of a CTL event type
type | 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.
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) |
int snd_ctl_get_power_state | ( | snd_ctl_t * | ctl, |
unsigned int * | state | ||
) |
Get actual Power State.
ctl | CTL handle |
state | Destination value |
const char * snd_ctl_name | ( | snd_ctl_t * | ctl | ) |
get identifier of CTL handle
ctl | 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
ctl | CTL handle |
nonblock | 0 = block, 1 = nonblock mode, 2 = abort |
int snd_ctl_open | ( | snd_ctl_t ** | ctlp, |
const char * | name, | ||
int | mode | ||
) |
Opens a sound card.
ctlp | Returned CTL handle. |
name | A string identifying the card (See Identifying and Opening Control Interfaces). |
mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC). |
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.
ctlp | Returned CTL handle |
root | Configuration root |
name | ASCII identifier of the CTL handle used as fallback |
orig_name | The original ASCII name |
mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC) |
int snd_ctl_open_lconf | ( | snd_ctl_t ** | ctlp, |
const char * | name, | ||
int | mode, | ||
snd_config_t * | lconf | ||
) |
Opens a CTL using local configuration.
ctlp | Returned CTL handle |
name | ASCII identifier of the CTL handle |
mode | Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC) |
lconf | Local configuration |
int snd_ctl_poll_descriptors | ( | snd_ctl_t * | ctl, |
struct pollfd * | pfds, | ||
unsigned int | space | ||
) |
get poll descriptors
ctl | CTL handle |
pfds | array of poll descriptors |
space | space in the poll descriptor array |
int snd_ctl_poll_descriptors_count | ( | snd_ctl_t * | ctl | ) |
get count of poll descriptors for CTL handle
ctl | CTL handle |
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
ctl | CTL handle |
pfds | array of poll descriptors |
nfds | count of poll descriptors |
revents | returned events |
int snd_ctl_read | ( | snd_ctl_t * | ctl, |
snd_ctl_event_t * | event | ||
) |
Read an event.
ctl | CTL handle |
event | Event pointer |
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.
ctl | CTL handle |
state | Desired Power State |
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)
ctl | CTL handle |
subscribe | 0 = unsubscribe, 1 = subscribe, -1 = check subscribe or not |
snd_ctl_type_t snd_ctl_type | ( | snd_ctl_t * | ctl | ) |
get type of CTL handle
ctl | 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)
ctl | CTL handle |
timeout | maximum time in milliseconds to wait |
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.
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. A negative value means round down. Zero means round-up to nearest. |
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.
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) |
int snd_tlv_get_dB_range | ( | unsigned int * | tlv, |
long | rangemin, | ||
long | rangemax, | ||
long * | min, | ||
long * | max | ||
) |
Get the dB min/max values.
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) |
int snd_tlv_parse_dB_info | ( | unsigned int * | tlv, |
unsigned int | tlv_size, | ||
unsigned int ** | db_tlvp | ||
) |
Parse TLV stream and retrieve dB information.
tlv | the TLV source |
tlv_size | the byte size of TLV source |
db_tlvp | the pointer stored the dB TLV information |
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().