Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages   Examples  

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.

int snd_hctl_close (snd_hctl_t *hctl)
 close HCTL handle

const char * snd_hctl_name (snd_hctl_t *hctl)
 get identifier of HCTL handle

int snd_hctl_nonblock (snd_hctl_t *hctl, int nonblock)
 set nonblock mode

int snd_hctl_async (snd_hctl_t *hctl, int sig, pid_t pid)
 set async mode

int snd_hctl_poll_descriptors_count (snd_hctl_t *hctl)
 get count of poll descriptors for HCTL handle

int snd_hctl_poll_descriptors (snd_hctl_t *hctl, struct pollfd *pfds, unsigned int space)
 get poll descriptors

int snd_hctl_free (snd_hctl_t *hctl)
 free HCTL loaded elements

int snd_hctl_set_compare (snd_hctl_t *hctl, snd_hctl_compare_t compare)
 Change HCTL compare function and reorder elements.

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.

snd_hctl_elem_t * snd_hctl_first_elem (snd_hctl_t *hctl)
 get first element for an HCTL

snd_hctl_elem_t * snd_hctl_last_elem (snd_hctl_t *hctl)
 get last element for an HCTL

snd_hctl_elem_t * snd_hctl_elem_next (snd_hctl_elem_t *elem)
 get next HCTL element

snd_hctl_elem_t * snd_hctl_elem_prev (snd_hctl_elem_t *elem)
 get previous HCTL element

snd_hctl_elem_t * snd_hctl_find_elem (snd_hctl_t *hctl, const snd_ctl_elem_id_t *id)
 Search an HCTL element.

int snd_hctl_load (snd_hctl_t *hctl)
 Load an HCTL with all elements and sort them.

void snd_hctl_set_callback (snd_hctl_t *hctl, snd_hctl_callback_t callback)
 Set callback function for an HCTL.

void snd_hctl_set_callback_private (snd_hctl_t *hctl, void *callback_private)
 Set callback private value for an HCTL.

void * snd_hctl_get_callback_private (snd_hctl_t *hctl)
 Get callback private value for an HCTL.

unsigned int snd_hctl_get_count (snd_hctl_t *hctl)
 Get number of loaded elements for an HCTL.

int snd_hctl_wait (snd_hctl_t *hctl, int timeout)
 Wait for a HCTL to become ready (i.e. at least one event pending).

int snd_hctl_handle_events (snd_hctl_t *hctl)
 Handle pending HCTL events invoking callbacks.

int snd_hctl_elem_info (snd_hctl_elem_t *elem, snd_ctl_elem_info_t *info)
 Get information for an HCTL element.

int snd_hctl_elem_read (snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)
 Get value for an HCTL element.

int snd_hctl_elem_write (snd_hctl_elem_t *elem, snd_ctl_elem_value_t *value)
 Set value for an HCTL element.

snd_hctl_t * snd_hctl_elem_get_hctl (snd_hctl_elem_t *elem)
 Get HCTL handle for an HCTL element.

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.

unsigned int snd_hctl_elem_get_numid (const snd_hctl_elem_t *obj)
 Get element numeric identifier of a CTL element id/value.

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.

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.

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.

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.

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.

void snd_hctl_elem_set_callback (snd_hctl_elem_t *obj, snd_hctl_elem_callback_t val)
 Set callback function for an HCTL element.

void snd_hctl_elem_set_callback_private (snd_hctl_elem_t *obj, void *val)
 Set callback private value for an HCTL element.

void * snd_hctl_elem_get_callback_private (const snd_hctl_elem_t *obj)
 Get callback private value for an HCTL element.


Detailed Description

HCTL Interface - High Level CTL.

Author:
Jaroslav Kysela <perex@suse.cz> , Abramo Bagnara <abramo@alsa-project.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

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.

int snd_hctl_close (  snd_hctl_t *    hctl ) 
 

close HCTL handle

Parameters:
hctl  HCTL handle
Returns:
0 on success otherwise a negative error code
Closes the specified HCTL handle and frees all associated resources.

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.

Parameters:
c1  First HCTL element
c2  Second HCTL element
Returns:
-1 if c1 < c2, 0 if c1 == c2, 1 if c1 > c2

void* snd_hctl_elem_get_callback_private (  const snd_hctl_elem_t *    obj ) 
 

Get callback private value for an HCTL element.

Parameters:
obj  HCTL element
Returns:
callback private value

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.

Parameters:
obj  CTL element id/value
Returns:
device part of element identifier

snd_hctl_t* snd_hctl_elem_get_hctl (  snd_hctl_elem_t *    elem ) 
 

Get HCTL handle for an HCTL element.

Parameters:
elem  HCTL element
Returns:
HCTL handle

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.

Parameters:
obj  CTL element id/value
ptr  Pointer to returned CTL element identifier

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.

Parameters:
obj  CTL element id/value
Returns:
index part of element identifier

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.

Parameters:
obj  CTL element id/value
Returns:
interface part of element identifier

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.

Parameters:
obj  CTL element id/value
Returns:
name part of element identifier

unsigned int snd_hctl_elem_get_numid (  const snd_hctl_elem_t *    obj ) 
 

Get element numeric identifier of a CTL element id/value.

Parameters:
obj  CTL element id/value
Returns:
element numeric identifier

unsigned int snd_hctl_elem_get_subdevice (  const snd_hctl_elem_t *    obj ) 
 

Get subdevice part of CTL element identifier of a CTL element id/value.

Parameters:
obj  CTL element id/value
Returns:
subdevice part of element identifier

int snd_hctl_elem_info (  snd_hctl_elem_t *    elem,
snd_ctl_elem_info_t *    info
) 
 

Get information for an HCTL element.

Parameters:
elem  HCTL element
info  HCTL element information
Returns:
0 otherwise a negative error code on failure

snd_hctl_elem_t* snd_hctl_elem_next (  snd_hctl_elem_t *    elem ) 
 

get next HCTL element

Parameters:
elem  HCTL element
Returns:
pointer to next element

snd_hctl_elem_t* snd_hctl_elem_prev (  snd_hctl_elem_t *    elem ) 
 

get previous HCTL element

Parameters:
elem  HCTL element
Returns:
pointer to previous element

int snd_hctl_elem_read (  snd_hctl_elem_t *    elem,
snd_ctl_elem_value_t *    value
) 
 

Get value for an HCTL element.

Parameters:
elem  HCTL element
value  HCTL element value
Returns:
0 otherwise a negative error code on failure

void snd_hctl_elem_set_callback (  snd_hctl_elem_t *    obj,
snd_hctl_elem_callback_t    val
) 
 

Set callback function for an HCTL element.

Parameters:
obj  HCTL element
val  callback function

void snd_hctl_elem_set_callback_private (  snd_hctl_elem_t *    obj,
void *    val
) 
 

Set callback private value for an HCTL element.

Parameters:
obj  HCTL element
val  callback private value

int snd_hctl_elem_write (  snd_hctl_elem_t *    elem,
snd_ctl_elem_value_t *    value
) 
 

Set value for an HCTL element.

Parameters:
elem  HCTL element
value  HCTL element value
Returns:
0 otherwise a negative error code on failure

snd_hctl_elem_t* snd_hctl_find_elem (  snd_hctl_t *    hctl,
const snd_ctl_elem_id_t *    id
) 
 

Search an HCTL element.

Parameters:
hctl  HCTL handle
id  Element identifier
Returns:
pointer to found HCTL element or NULL if it does not exists

snd_hctl_elem_t* snd_hctl_first_elem (  snd_hctl_t *    hctl ) 
 

get first element for an HCTL

Parameters:
hctl  HCTL handle
Returns:
pointer to first element

int snd_hctl_free (  snd_hctl_t *    hctl ) 
 

free HCTL loaded elements

Parameters:
hctl  HCTL handle
Returns:
0 on success otherwise a negative error code

void* snd_hctl_get_callback_private (  snd_hctl_t *    hctl ) 
 

Get callback private value for an HCTL.

Parameters:
hctl  HCTL handle
Returns:
callback private value

unsigned int snd_hctl_get_count (  snd_hctl_t *    hctl ) 
 

Get number of loaded elements for an HCTL.

Parameters:
hctl  HCTL handle
Returns:
elements count

int snd_hctl_handle_events (  snd_hctl_t *    hctl ) 
 

Handle pending HCTL events invoking callbacks.

Parameters:
hctl  HCTL handle
Returns:
0 otherwise a negative error code on failure

snd_hctl_elem_t* snd_hctl_last_elem (  snd_hctl_t *    hctl ) 
 

get last element for an HCTL

Parameters:
hctl  HCTL handle
Returns:
pointer to last element

int snd_hctl_load (  snd_hctl_t *    hctl ) 
 

Load an HCTL with all elements and sort them.

Parameters:
hctl  HCTL handle
Returns:
0 on success otherwise a negative error code

const char* snd_hctl_name (  snd_hctl_t *    hctl ) 
 

get identifier of HCTL handle

Parameters:
hctl  HCTL handle
Returns:
ascii identifier of HCTL handle
Returns the ASCII identifier of given HCTL handle. It's the same identifier specified in snd_hctl_open().

int snd_hctl_nonblock (  snd_hctl_t *    hctl,
int    nonblock
) 
 

set nonblock mode

Parameters:
hctl  HCTL handle
nonblock  0 = block, 1 = nonblock mode
Returns:
0 on success otherwise a negative error code

int snd_hctl_open (  snd_hctl_t **    hctlp,
const char *    name,
int    mode
) 
 

Opens an HCTL.

Parameters:
hctlp  Returned HCTL handle
name  ASCII identifier of the underlying CTL handle
mode  Open mode (see SND_CTL_NONBLOCK, SND_CTL_ASYNC)
Returns:
0 on success otherwise a negative error code

int snd_hctl_poll_descriptors (  snd_hctl_t *    hctl,
struct pollfd *    pfds,
unsigned int    space
) 
 

get poll descriptors

Parameters:
hctl  HCTL handle
pfds  array of poll descriptors
space  space in the poll descriptor array
Returns:
count of filled descriptors

int snd_hctl_poll_descriptors_count (  snd_hctl_t *    hctl ) 
 

get count of poll descriptors for HCTL handle

Parameters:
hctl  HCTL handle
Returns:
count of poll descriptors

void snd_hctl_set_callback (  snd_hctl_t *    hctl,
snd_hctl_callback_t    callback
) 
 

Set callback function for an HCTL.

Parameters:
hctl  HCTL handle
callback  callback function

void snd_hctl_set_callback_private (  snd_hctl_t *    hctl,
void *    callback_private
) 
 

Set callback private value for an HCTL.

Parameters:
hctl  HCTL handle
callback_private  callback private value

int snd_hctl_set_compare (  snd_hctl_t *    hctl,
snd_hctl_compare_t    compare
) 
 

Change HCTL compare function and reorder elements.

Parameters:
hctl  HCTL handle
compare  Element compare function
Returns:
0 on success otherwise a negative error code

int snd_hctl_wait (  snd_hctl_t *    hctl,
int    timeout
) 
 

Wait for a HCTL to become ready (i.e. at least one event pending).

Parameters:
hctl  HCTL handle
timeout  maximum time in milliseconds to wait
Returns:
0 otherwise a negative error code on failure


Generated on Thu Jun 12 17:17:10 2003 for ALSA project - the C library reference by doxygen1.2.18