ALSA project - the C library reference

Functions
hcontrol.c File Reference

HCTL Interface - High Level CTL. More...

## Functions
int | snd_hctl_open (snd_hctl_t **hctlp, const char *name, int mode)
| Opens an HCTL. More...
int | snd_hctl_open_ctl (snd_hctl_t **hctlp, snd_ctl_t *ctl)
| Opens an HCTL. More...
int | snd_hctl_close (snd_hctl_t *hctl)
| close HCTL handle More...
const char * | snd_hctl_name (snd_hctl_t *hctl)
| get identifier of HCTL handle More...
int | snd_hctl_nonblock (snd_hctl_t *hctl, int nonblock)
| set nonblock mode More...
int | snd_hctl_async (snd_hctl_t *hctl, int sig, pid_t pid)
| set async mode More...
int | snd_hctl_poll_descriptors_count (snd_hctl_t *hctl)
| get count of poll descriptors for HCTL handle More...
int | snd_hctl_poll_descriptors (snd_hctl_t *hctl, struct pollfd *pfds, unsigned int space)
| get poll descriptors More...
int | snd_hctl_poll_descriptors_revents (snd_hctl_t *hctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)
| get returned events from poll descriptors More...
int | snd_hctl_free (snd_hctl_t *hctl)
| free HCTL loaded elements More...
int | snd_hctl_set_compare (snd_hctl_t *hctl, snd_hctl_compare_t compare)
| Change HCTL compare function and reorder elements. More...
int | snd_hctl_compare_fast (const snd_hctl_elem_t *c1, const snd_hctl_elem_t *c2)
| A "don't care" fast compare functions that may be used with snd_hctl_set_compare. More...
snd_hctl_elem_t * | snd_hctl_first_elem (snd_hctl_t *hctl)
| get first element for an HCTL More...
snd_hctl_elem_t * | snd_hctl_last_elem (snd_hctl_t *hctl)
| get last element for an HCTL More...
snd_hctl_elem_t * | snd_hctl_elem_next (snd_hctl_elem_t *elem)
| get next HCTL element More...
snd_hctl_elem_t * | snd_hctl_elem_prev (snd_hctl_elem_t *elem)
| get previous HCTL element More...
snd_hctl_elem_t * | snd_hctl_find_elem (snd_hctl_t *hctl, const snd_ctl_elem_id_t *id)
| Search an HCTL element. More...
int | snd_hctl_load (snd_hctl_t *hctl)
| Load an HCTL with all elements and sort them. More...
void | snd_hctl_set_callback (snd_hctl_t *hctl, snd_hctl_callback_t callback)
| Set callback function for an HCTL. More...
void | snd_hctl_set_callback_private (snd_hctl_t *hctl, void *callback_private)
| Set callback private value for an HCTL. More...
void * | snd_hctl_get_callback_private (snd_hctl_t *hctl)
| Get callback private value for an HCTL. More...
unsigned int | snd_hctl_get_count (snd_hctl_t *hctl)
| Get number of loaded elements for an HCTL. More...
int | snd_hctl_wait (snd_hctl_t *hctl, int timeout)
| Wait for a HCTL to become ready (i.e. at least one event pending) More...
snd_ctl_t * | snd_hctl_ctl (snd_hctl_t *hctl)
| Get a ctl handle associated to the given hctl handle. More...
int | snd_hctl_handle_events (snd_hctl_t *hctl)
| Handle pending HCTL events invoking callbacks. More...
int | snd_hctl_elem_info (snd_hctl_elem_t *elem, snd_ctl_elem_info_t *info)
| Get information for an HCTL element. More...
int | snd_hctl_elem_read (snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)
| Get value for an HCTL element. More...
int | snd_hctl_elem_write (snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)
| Set value for an HCTL element. More...
int | snd_hctl_elem_tlv_read (snd_hctl_elem_t *elem, unsigned int *tlv, unsigned int tlv_size)
| Get TLV value for an HCTL element. More...
int | snd_hctl_elem_tlv_write (snd_hctl_elem_t *elem, const unsigned int *tlv)
| Set TLV value for an HCTL element. More...
int | snd_hctl_elem_tlv_command (snd_hctl_elem_t *elem, const unsigned int *tlv)
| Set TLV value for an HCTL element. More...
snd_hctl_t * | snd_hctl_elem_get_hctl (snd_hctl_elem_t *elem)
| Get HCTL handle for an HCTL element. More...
void | snd_hctl_elem_get_id (const snd_hctl_elem_t *obj, snd_ctl_elem_id_t *ptr)
| Get CTL element identifier of a CTL element id/value. More...
unsigned int | snd_hctl_elem_get_numid (const snd_hctl_elem_t *obj)
| Get element numeric identifier of a CTL element id/value. More...
snd_ctl_elem_iface_t | snd_hctl_elem_get_interface (const snd_hctl_elem_t *obj)
| Get interface part of CTL element identifier of a CTL element id/value. More...
unsigned int | snd_hctl_elem_get_device (const snd_hctl_elem_t *obj)
| Get device part of CTL element identifier of a CTL element id/value. More...
unsigned int | snd_hctl_elem_get_subdevice (const snd_hctl_elem_t *obj)
| Get subdevice part of CTL element identifier of a CTL element id/value. More...
const char * | snd_hctl_elem_get_name (const snd_hctl_elem_t *obj)
| Get name part of CTL element identifier of a CTL element id/value. More...
unsigned int | snd_hctl_elem_get_index (const snd_hctl_elem_t *obj)
| Get index part of CTL element identifier of a CTL element id/value. More...
void | snd_hctl_elem_set_callback (snd_hctl_elem_t *obj, snd_hctl_elem_callback_t val)
| Set callback function for an HCTL element. More...
void | snd_hctl_elem_set_callback_private (snd_hctl_elem_t *obj, void *val)
| Set callback private value for an HCTL element. More...
void * | snd_hctl_elem_get_callback_private (const snd_hctl_elem_t *obj)
| Get callback private value for an HCTL element. More...

## Detailed Description

HCTL Interface - High Level CTL.

Author
  Jaroslav Kysela perex.nosp@m.@per.nosp@m.ex.cz
  Abramo Bagnara abram.nosp@m.o@al.nosp@m.sa-pr.nosp@m.ojec.nosp@m.t.org

Date
  2000

HCTL interface is designed to access preloaded and sorted primitive controls. Callbacks may be used for event handling. See High level control interface page for more details.

## Function Documentation

## ◆ snd_hctl_async()

int snd_hctl_async | ( | snd_hctl_t * | hctl,
|  | int | sig,
|  | pid_t | pid
| ) |  |

set async mode

Parameters

  hctl | HCTL handle
  sig | Signal to raise: < 0 disable, 0 default (SIGIO)
  pid | Process ID to signal: 0 current

Returns
  0 on success otherwise a negative error code

A signal is raised when a change happens.