libs/alsa-lib-1.0.13/src/mixer/simple_abst.c File Reference

Mixer Simple Element Class Interface - Module Abstraction. More...

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <math.h>
#include <dlfcn.h>
#include "config.h"
#include "asoundlib.h"
#include "mixer_simple.h"

Include dependency graph for simple_abst.c:

Go to the source code of this file.

Data Structures

struct  _class_priv

Defines

#define SO_PATH   PKGLIBDIR "/smixer"

Typedefs

typedef _class_priv class_priv_t
typedef int(*) snd_mixer_sbasic_init_t (snd_mixer_class_t *class)

Functions

static int try_open (snd_mixer_class_t *class, const char *lib)
static int match (snd_mixer_class_t *class, const char *lib, const char *searchl)
static int find_module (snd_mixer_class_t *class, snd_config_t *top)
static void private_free (snd_mixer_class_t *class)
int snd_mixer_simple_basic_register (snd_mixer_t *mixer, struct snd_mixer_selem_regopt *options, snd_mixer_class_t **classp)
 Register mixer simple element class - basic abstraction.
int snd_mixer_sbasic_info (const snd_mixer_class_t *class, sm_class_basic_t *info)
 Basic Mixer Abstraction - Get information about device.
void * snd_mixer_sbasic_get_private (const snd_mixer_class_t *class)
 Get private data for basic abstraction.
void snd_mixer_sbasic_set_private (const snd_mixer_class_t *class, void *private_data)
 Set private data for basic abstraction.
void snd_mixer_sbasic_set_private_free (const snd_mixer_class_t *class, void(*private_free)(snd_mixer_class_t *class))
 Set private data free callback for basic abstraction.


Detailed Description

Mixer Simple Element Class Interface - Module Abstraction.

Author:
Jaroslav Kysela <perex@suse.cz>
Date:
2005
Mixer simple element class interface.

Definition in file simple_abst.c.


Define Documentation

#define SO_PATH   PKGLIBDIR "/smixer"

Definition at line 44 of file simple_abst.c.

Referenced by try_open().


Typedef Documentation

typedef struct _class_priv class_priv_t

typedef int(*) snd_mixer_sbasic_init_t(snd_mixer_class_t *class)

Definition at line 57 of file simple_abst.c.


Function Documentation

static int find_module ( snd_mixer_class_t *  class,
snd_config_t *  top 
) [static]

Definition at line 129 of file simple_abst.c.

References id, match(), n, snd_config_get_id(), snd_config_get_string(), and snd_config_iterator_entry().

Referenced by snd_mixer_simple_basic_register().

static int match ( snd_mixer_class_t *  class,
const char *  lib,
const char *  searchl 
) [static]

Definition at line 110 of file simple_abst.c.

References _class_priv::info, and try_open().

Referenced by find_module(), and handle_labels().

static void private_free ( snd_mixer_class_t *  class  )  [static]

Definition at line 169 of file simple_abst.c.

References _class_priv::attach_flag, _class_priv::ctl, _class_priv::device, _class_priv::dlhandle, free(), _class_priv::hctl, _class_priv::info, and _class_priv::private_free.

Referenced by snd_mixer_simple_basic_register().

void* snd_mixer_sbasic_get_private ( const snd_mixer_class_t *  class  ) 

Get private data for basic abstraction.

Parameters:
class Mixer class
Returns:
private data

Definition at line 305 of file simple_abst.c.

References _class_priv::private_data.

int snd_mixer_sbasic_info ( const snd_mixer_class_t *  class,
sm_class_basic_t *  info 
)

Basic Mixer Abstraction - Get information about device.

Parameters:
class Mixer class
info Info structure
Returns:
0 on success otherwise a negative error code

Definition at line 287 of file simple_abst.c.

References _class_priv::ctl, _class_priv::device, _class_priv::hctl, and _class_priv::info.

void snd_mixer_sbasic_set_private ( const snd_mixer_class_t *  class,
void *  private_data 
)

Set private data for basic abstraction.

Parameters:
class Mixer class
private_data Private data

Definition at line 319 of file simple_abst.c.

References _class_priv::private_data.

void snd_mixer_sbasic_set_private_free ( const snd_mixer_class_t *  class,
void(*)(snd_mixer_class_t *class)  private_free 
)

Set private data free callback for basic abstraction.

Parameters:
class Mixer class
private_free free callback for private data

Definition at line 334 of file simple_abst.c.

References _class_priv::private_free.

int snd_mixer_simple_basic_register ( snd_mixer_t *  mixer,
struct snd_mixer_selem_regopt *  options,
snd_mixer_class_t **  classp 
)

Register mixer simple element class - basic abstraction.

Parameters:
mixer Mixer handle
options Options container
classp Pointer to returned mixer simple element class handle (or NULL
Returns:
0 on success otherwise a negative error code

Definition at line 196 of file simple_abst.c.

References find_module(), free(), private_free(), snd_config_delete(), snd_config_load(), and snd_config_top().

static int try_open ( snd_mixer_class_t *  class,
const char *  lib 
) [static]

Definition at line 61 of file simple_abst.c.

References _class_priv::dlhandle, free(), malloc(), and SO_PATH.

Referenced by match().


Generated on Fri Nov 28 00:07:34 2008 for elphel by  doxygen 1.5.1