|
ALSA project - the C library reference
|
Mixer Interface. More...
Functions | |
| int | snd_mixer_open (snd_mixer_t **mixerp, int mode) |
| Opens an empty mixer. | |
| int | snd_mixer_elem_attach (snd_mixer_elem_t *melem, snd_hctl_elem_t *helem) |
| Attach an HCTL element to a mixer element. | |
| int | snd_mixer_elem_detach (snd_mixer_elem_t *melem, snd_hctl_elem_t *helem) |
| Detach an HCTL element from a mixer element. | |
| int | snd_mixer_elem_empty (snd_mixer_elem_t *melem) |
| Return true if a mixer element does not contain any HCTL elements. | |
| int | snd_mixer_attach (snd_mixer_t *mixer, const char *name) |
| Attach an HCTL specified with the CTL device name to an opened mixer. | |
| int | snd_mixer_attach_hctl (snd_mixer_t *mixer, snd_hctl_t *hctl) |
| Attach an HCTL to an opened mixer. | |
| int | snd_mixer_detach (snd_mixer_t *mixer, const char *name) |
| Detach a previously attached HCTL to an opened mixer freeing all related resources. | |
| int | snd_mixer_detach_hctl (snd_mixer_t *mixer, snd_hctl_t *hctl) |
| Detach a previously attached HCTL to an opened mixer freeing all related resources. | |
| int | snd_mixer_get_hctl (snd_mixer_t *mixer, const char *name, snd_hctl_t **hctl) |
| Obtain a HCTL pointer associated to given name. | |
| void * | snd_mixer_elem_get_private (const snd_mixer_elem_t *elem) |
| Get private data associated to give mixer element. | |
| int | snd_mixer_elem_new (snd_mixer_elem_t **elem, snd_mixer_elem_type_t type, int compare_weight, void *private_data, void(*private_free)(snd_mixer_elem_t *elem)) |
| Allocate a new mixer element. | |
| int | snd_mixer_elem_add (snd_mixer_elem_t *elem, snd_mixer_class_t *class) |
| Add an element for a registered mixer element class. | |
| int | snd_mixer_elem_remove (snd_mixer_elem_t *elem) |
| Remove a mixer element. | |
| void | snd_mixer_elem_free (snd_mixer_elem_t *elem) |
| Free a mixer element. | |
| int | snd_mixer_elem_info (snd_mixer_elem_t *elem) |
| Mixer element informations are changed. | |
| int | snd_mixer_elem_value (snd_mixer_elem_t *elem) |
| Mixer element values is changed. | |
| int | snd_mixer_class_register (snd_mixer_class_t *class, snd_mixer_t *mixer) |
| Register mixer element class. | |
| int | snd_mixer_class_unregister (snd_mixer_class_t *class) |
| Unregister mixer element class and remove all its elements. | |
| int | snd_mixer_load (snd_mixer_t *mixer) |
| Load a mixer elements. | |
| void | snd_mixer_free (snd_mixer_t *mixer) |
| Unload all mixer elements and free all related resources. | |
| int | snd_mixer_close (snd_mixer_t *mixer) |
| Close a mixer and free all related resources. | |
| int | snd_mixer_set_compare (snd_mixer_t *mixer, snd_mixer_compare_t compare) |
| Change mixer compare function and reorder elements. | |
| int | snd_mixer_poll_descriptors_count (snd_mixer_t *mixer) |
| get count of poll descriptors for mixer handle | |
| int | snd_mixer_poll_descriptors (snd_mixer_t *mixer, struct pollfd *pfds, unsigned int space) |
| get poll descriptors | |
| int | snd_mixer_poll_descriptors_revents (snd_mixer_t *mixer, struct pollfd *pfds, unsigned int nfds, unsigned short *revents) |
| get returned events from poll descriptors | |
| int | snd_mixer_wait (snd_mixer_t *mixer, int timeout) |
| Wait for a mixer to become ready (i.e. at least one event pending) | |
| snd_mixer_elem_t * | snd_mixer_first_elem (snd_mixer_t *mixer) |
| get first element for a mixer | |
| snd_mixer_elem_t * | snd_mixer_last_elem (snd_mixer_t *mixer) |
| get last element for a mixer | |
| snd_mixer_elem_t * | snd_mixer_elem_next (snd_mixer_elem_t *elem) |
| get next mixer element | |
| snd_mixer_elem_t * | snd_mixer_elem_prev (snd_mixer_elem_t *elem) |
| get previous mixer element | |
| int | snd_mixer_handle_events (snd_mixer_t *mixer) |
| Handle pending mixer events invoking callbacks. | |
| void | snd_mixer_set_callback (snd_mixer_t *obj, snd_mixer_callback_t val) |
| Set callback function for a mixer. | |
| void | snd_mixer_set_callback_private (snd_mixer_t *mixer, void *val) |
| Set callback private value for a mixer. | |
| void * | snd_mixer_get_callback_private (const snd_mixer_t *mixer) |
| Get callback private value for a mixer. | |
| unsigned int | snd_mixer_get_count (const snd_mixer_t *mixer) |
| Get elements count for a mixer. | |
| void | snd_mixer_elem_set_callback (snd_mixer_elem_t *mixer, snd_mixer_elem_callback_t val) |
| Set callback function for a mixer element. | |
| void | snd_mixer_elem_set_callback_private (snd_mixer_elem_t *mixer, void *val) |
| Set callback private value for a mixer element. | |
| void * | snd_mixer_elem_get_callback_private (const snd_mixer_elem_t *mixer) |
| Get callback private value for a mixer element. | |
| snd_mixer_elem_type_t | snd_mixer_elem_get_type (const snd_mixer_elem_t *mixer) |
| Get type for a mixer element. | |
| size_t | snd_mixer_class_sizeof () |
| get size of #snd_mixer_class_t | |
| int | snd_mixer_class_malloc (snd_mixer_class_t **ptr) |
| allocate an invalid #snd_mixer_class_t using standard malloc | |
| void | snd_mixer_class_free (snd_mixer_class_t *obj) |
| frees a previously allocated #snd_mixer_class_t | |
| void | snd_mixer_class_copy (snd_mixer_class_t *dst, const snd_mixer_class_t *src) |
| copy one #snd_mixer_class_t to another | |
| snd_mixer_t * | snd_mixer_class_get_mixer (const snd_mixer_class_t *obj) |
| Get a mixer associated to given mixer class. | |
| snd_mixer_event_t | snd_mixer_class_get_event (const snd_mixer_class_t *obj) |
| Get mixer event callback associated to given mixer class. | |
| void * | snd_mixer_class_get_private (const snd_mixer_class_t *obj) |
| Get mixer private data associated to given mixer class. | |
| snd_mixer_compare_t | snd_mixer_class_get_compare (const snd_mixer_class_t *obj) |
| Get mixer compare callback associated to given mixer class. | |
| int | snd_mixer_class_set_event (snd_mixer_class_t *obj, snd_mixer_event_t event) |
| Set mixer event callback to given mixer class. | |
| int | snd_mixer_class_set_private (snd_mixer_class_t *obj, void *private_data) |
| Set mixer private data to given mixer class. | |
| int | snd_mixer_class_set_private_free (snd_mixer_class_t *obj, void(*private_free)(snd_mixer_class_t *)) |
| Set mixer private data free callback to given mixer class. | |
| int | snd_mixer_class_set_compare (snd_mixer_class_t *obj, snd_mixer_compare_t compare) |
| Set mixer compare callback to given mixer class. | |
Mixer Interface.
Mixer interface is designed to access mixer elements. Callbacks may be used for event handling.
| int snd_mixer_attach | ( | snd_mixer_t * | mixer, |
| const char * | name ) |
Attach an HCTL specified with the CTL device name to an opened mixer.
| mixer | Mixer handle |
| name | HCTL name (see snd_hctl_open) |
| int snd_mixer_attach_hctl | ( | snd_mixer_t * | mixer, |
| snd_hctl_t * | hctl ) |
Attach an HCTL to an opened mixer.
| mixer | Mixer handle |
| hctl | the HCTL to be attached |
Upon error, this function closes the given hctl handle automatically.
| void snd_mixer_class_copy | ( | snd_mixer_class_t * | dst, |
| const snd_mixer_class_t * | src ) |
copy one #snd_mixer_class_t to another
| dst | pointer to destination |
| src | pointer to source |
| void snd_mixer_class_free | ( | snd_mixer_class_t * | obj | ) |
frees a previously allocated #snd_mixer_class_t
| obj | pointer to object to free |
| snd_mixer_compare_t snd_mixer_class_get_compare | ( | const snd_mixer_class_t * | obj | ) |
Get mixer compare callback associated to given mixer class.
| obj | Mixer simple class identifier |
| snd_mixer_event_t snd_mixer_class_get_event | ( | const snd_mixer_class_t * | obj | ) |
Get mixer event callback associated to given mixer class.
| obj | Mixer simple class identifier |
| snd_mixer_t * snd_mixer_class_get_mixer | ( | const snd_mixer_class_t * | obj | ) |
Get a mixer associated to given mixer class.
| obj | Mixer simple class identifier |
| void * snd_mixer_class_get_private | ( | const snd_mixer_class_t * | obj | ) |
Get mixer private data associated to given mixer class.
| obj | Mixer simple class identifier |
| int snd_mixer_class_malloc | ( | snd_mixer_class_t ** | ptr | ) |
allocate an invalid #snd_mixer_class_t using standard malloc
| ptr | returned pointer |
| int snd_mixer_class_register | ( | snd_mixer_class_t * | class, |
| snd_mixer_t * | mixer ) |
Register mixer element class.
| class | Mixer element class |
| mixer | Mixer handle |
For use by mixer element class specific code.
| int snd_mixer_class_set_compare | ( | snd_mixer_class_t * | obj, |
| snd_mixer_compare_t | compare ) |
Set mixer compare callback to given mixer class.
| obj | Mixer simple class identifier |
| compare | the compare callback to be used |
| int snd_mixer_class_set_event | ( | snd_mixer_class_t * | obj, |
| snd_mixer_event_t | event ) |
Set mixer event callback to given mixer class.
| obj | Mixer simple class identifier |
| event | Event callback |
| int snd_mixer_class_set_private | ( | snd_mixer_class_t * | obj, |
| void * | private_data ) |
Set mixer private data to given mixer class.
| obj | Mixer simple class identifier |
| private_data | class private data |
| int snd_mixer_class_set_private_free | ( | snd_mixer_class_t * | obj, |
| void(* | private_free )(snd_mixer_class_t *) ) |
Set mixer private data free callback to given mixer class.
| obj | Mixer simple class identifier |
| private_free | Mixer class private data free callback |
| size_t snd_mixer_class_sizeof | ( | ) |
get size of #snd_mixer_class_t
| int snd_mixer_class_unregister | ( | snd_mixer_class_t * | class | ) |
Unregister mixer element class and remove all its elements.
| class | Mixer element class |
Note that the class structure is also deallocated!
| int snd_mixer_close | ( | snd_mixer_t * | mixer | ) |
Close a mixer and free all related resources.
| mixer | Mixer handle |
| int snd_mixer_detach | ( | snd_mixer_t * | mixer, |
| const char * | name ) |
Detach a previously attached HCTL to an opened mixer freeing all related resources.
| mixer | Mixer handle |
| name | HCTL previously attached |
| int snd_mixer_detach_hctl | ( | snd_mixer_t * | mixer, |
| snd_hctl_t * | hctl ) |
Detach a previously attached HCTL to an opened mixer freeing all related resources.
| mixer | Mixer handle |
| hctl | HCTL previously attached |
Note: The hctl handle is not closed!
| int snd_mixer_elem_add | ( | snd_mixer_elem_t * | elem, |
| snd_mixer_class_t * | class ) |
Add an element for a registered mixer element class.
| elem | Mixer element |
| class | Mixer element class |
For use by mixer element class specific code.
| int snd_mixer_elem_attach | ( | snd_mixer_elem_t * | melem, |
| snd_hctl_elem_t * | helem ) |
Attach an HCTL element to a mixer element.
| melem | Mixer element |
| helem | HCTL element |
For use by mixer element class specific code.
The implementation of mixer class typically calls it at #SND_CTL_EVENT_MASK_ADD event. Once attaching, the implementation should make sure to detach it by call of snd_mixer_elem_detach() at #SND_CTL_EVENT_MASK_REMOVE event. Unless detaching, mixer API internal hits assertion due to unsatisfied postcondition after the event.
| int snd_mixer_elem_detach | ( | snd_mixer_elem_t * | melem, |
| snd_hctl_elem_t * | helem ) |
Detach an HCTL element from a mixer element.
| melem | Mixer element |
| helem | HCTL element |
For use by mixer element class specific code.
The implementation of mixer class typically calls it at #SND_CTL_EVENT_MASK_REMOVE event for attached mixer element at #SND_CTL_EVENT_MASK_ADD. Unless detaching, mixer API internal hits assertion due to unsatisfied postcondition after the event.
| int snd_mixer_elem_empty | ( | snd_mixer_elem_t * | melem | ) |
Return true if a mixer element does not contain any HCTL elements.
| melem | Mixer element |
For use by mixer element class specific code.
| void snd_mixer_elem_free | ( | snd_mixer_elem_t * | elem | ) |
Free a mixer element.
| elem | Mixer element |
For use by mixer element class specific code.
| void * snd_mixer_elem_get_callback_private | ( | const snd_mixer_elem_t * | mixer | ) |
Get callback private value for a mixer element.
| mixer | mixer element |
| void * snd_mixer_elem_get_private | ( | const snd_mixer_elem_t * | elem | ) |
Get private data associated to give mixer element.
| elem | Mixer element |
For use by mixer element class specific code.
| snd_mixer_elem_type_t snd_mixer_elem_get_type | ( | const snd_mixer_elem_t * | mixer | ) |
Get type for a mixer element.
| mixer | mixer element |
| int snd_mixer_elem_info | ( | snd_mixer_elem_t * | elem | ) |
Mixer element informations are changed.
| elem | Mixer element |
For use by mixer element class specific code.
| int snd_mixer_elem_new | ( | snd_mixer_elem_t ** | elem, |
| snd_mixer_elem_type_t | type, | ||
| int | compare_weight, | ||
| void * | private_data, | ||
| void(* | private_free )(snd_mixer_elem_t *elem) ) |
Allocate a new mixer element.
| elem | Returned mixer element |
| type | Mixer element type |
| compare_weight | Mixer element compare weight |
| private_data | Private data |
| private_free | Private data free callback |
For use by mixer element class specific code.
| snd_mixer_elem_t * snd_mixer_elem_next | ( | snd_mixer_elem_t * | elem | ) |
get next mixer element
| elem | mixer element |
| snd_mixer_elem_t * snd_mixer_elem_prev | ( | snd_mixer_elem_t * | elem | ) |
get previous mixer element
| elem | mixer element |
| int snd_mixer_elem_remove | ( | snd_mixer_elem_t * | elem | ) |
Remove a mixer element.
| elem | Mixer element |
For use by mixer element class specific code.
| void snd_mixer_elem_set_callback | ( | snd_mixer_elem_t * | mixer, |
| snd_mixer_elem_callback_t | val ) |
Set callback function for a mixer element.
| mixer | mixer element |
| val | callback function |
| void snd_mixer_elem_set_callback_private | ( | snd_mixer_elem_t * | mixer, |
| void * | val ) |
Set callback private value for a mixer element.
| mixer | mixer element |
| val | callback private value |
| int snd_mixer_elem_value | ( | snd_mixer_elem_t * | elem | ) |
Mixer element values is changed.
| elem | Mixer element |
For use by mixer element class specific code.
| snd_mixer_elem_t * snd_mixer_first_elem | ( | snd_mixer_t * | mixer | ) |
get first element for a mixer
| mixer | Mixer handle |
| void snd_mixer_free | ( | snd_mixer_t * | mixer | ) |
Unload all mixer elements and free all related resources.
| mixer | Mixer handle |
| void * snd_mixer_get_callback_private | ( | const snd_mixer_t * | mixer | ) |
Get callback private value for a mixer.
| mixer | mixer handle |
| unsigned int snd_mixer_get_count | ( | const snd_mixer_t * | mixer | ) |
Get elements count for a mixer.
| mixer | mixer handle |
| int snd_mixer_get_hctl | ( | snd_mixer_t * | mixer, |
| const char * | name, | ||
| snd_hctl_t ** | hctl ) |
Obtain a HCTL pointer associated to given name.
| mixer | Mixer handle |
| name | HCTL previously attached |
| hctl | HCTL pointer |
| int snd_mixer_handle_events | ( | snd_mixer_t * | mixer | ) |
Handle pending mixer events invoking callbacks.
| mixer | Mixer handle |
| snd_mixer_elem_t * snd_mixer_last_elem | ( | snd_mixer_t * | mixer | ) |
get last element for a mixer
| mixer | Mixer handle |
| int snd_mixer_load | ( | snd_mixer_t * | mixer | ) |
Load a mixer elements.
| mixer | Mixer handle |
| int snd_mixer_open | ( | snd_mixer_t ** | mixerp, |
| int | mode ) |
Opens an empty mixer.
| mixerp | Returned mixer handle |
| mode | Open mode |
| int snd_mixer_poll_descriptors | ( | snd_mixer_t * | mixer, |
| struct pollfd * | pfds, | ||
| unsigned int | space ) |
get poll descriptors
| mixer | Mixer handle |
| pfds | array of poll descriptors |
| space | space in the poll descriptor array |
| int snd_mixer_poll_descriptors_count | ( | snd_mixer_t * | mixer | ) |
get count of poll descriptors for mixer handle
| mixer | Mixer handle |
| int snd_mixer_poll_descriptors_revents | ( | snd_mixer_t * | mixer, |
| struct pollfd * | pfds, | ||
| unsigned int | nfds, | ||
| unsigned short * | revents ) |
get returned events from poll descriptors
| mixer | Mixer handle |
| pfds | array of poll descriptors |
| nfds | count of poll descriptors |
| revents | returned events |
| void snd_mixer_set_callback | ( | snd_mixer_t * | obj, |
| snd_mixer_callback_t | val ) |
Set callback function for a mixer.
| obj | mixer handle |
| val | callback function |
| void snd_mixer_set_callback_private | ( | snd_mixer_t * | mixer, |
| void * | val ) |
Set callback private value for a mixer.
| mixer | mixer handle |
| val | callback private value |
| int snd_mixer_set_compare | ( | snd_mixer_t * | mixer, |
| snd_mixer_compare_t | compare ) |
Change mixer compare function and reorder elements.
| mixer | Mixer handle |
| compare | Element compare function |
| int snd_mixer_wait | ( | snd_mixer_t * | mixer, |
| int | timeout ) |
Wait for a mixer to become ready (i.e. at least one event pending)
| mixer | Mixer handle |
| timeout | maximum time in milliseconds to wait |