version 1.40, 2021/03/03 10:19:06 |
version 1.41, 2021/11/01 14:43:25 |
|
|
|
|
#define CTL_HW 0 |
#define CTL_HW 0 |
#define CTL_DEV_MASTER 1 |
#define CTL_DEV_MASTER 1 |
#define CTL_DEV_ALT 2 |
#define CTL_OPT_DEV 2 |
#define CTL_SLOT_LEVEL 3 |
#define CTL_SLOT_LEVEL 3 |
unsigned int scope; |
unsigned int scope; |
union { |
union { |
|
|
struct dev *dev; |
struct dev *dev; |
} dev_master; |
} dev_master; |
struct { |
struct { |
struct dev *dev; |
|
unsigned int idx; |
|
} dev_alt; |
|
struct { |
|
struct slot *slot; |
struct slot *slot; |
} slot_level; |
} slot_level; |
|
struct { |
|
struct slot *slot; |
|
struct opt *opt; |
|
} slot_opt; |
|
struct { |
|
struct opt *opt; |
|
struct dev *dev; |
|
} opt_dev; |
} u; |
} u; |
|
|
unsigned int addr; /* slot side control address */ |
unsigned int addr; /* slot side control address */ |
|
|
char name[CTL_NAMEMAX]; |
char name[CTL_NAMEMAX]; |
|
|
/* |
/* |
|
* next to try if this fails |
|
*/ |
|
struct dev *alt_next; |
|
|
|
/* |
* audio device (while opened) |
* audio device (while opened) |
*/ |
*/ |
struct dev_sio sio; |
struct dev_sio sio; |
|
|
#define DEV_INIT 1 /* stopped */ |
#define DEV_INIT 1 /* stopped */ |
#define DEV_RUN 2 /* playin & recording */ |
#define DEV_RUN 2 /* playin & recording */ |
unsigned int pstate; /* one of above */ |
unsigned int pstate; /* one of above */ |
struct dev_alt { |
char *path; |
struct dev_alt *next; |
|
char *name; |
|
unsigned int idx; |
|
} *alt_list; |
|
int alt_num; |
|
|
|
/* |
/* |
* actual parameters and runtime state (i.e. once opened) |
* actual parameters and runtime state (i.e. once opened) |
|
|
void slot_array_init(void); |
void slot_array_init(void); |
|
|
void dev_log(struct dev *); |
void dev_log(struct dev *); |
|
int dev_open(struct dev *); |
|
void dev_close(struct dev *); |
void dev_abort(struct dev *); |
void dev_abort(struct dev *); |
int dev_reopen(struct dev *); |
struct dev *dev_migrate(struct dev *); |
struct dev *dev_new(char *, struct aparams *, unsigned int, unsigned int, |
struct dev *dev_new(char *, struct aparams *, unsigned int, unsigned int, |
unsigned int, unsigned int, unsigned int, unsigned int); |
unsigned int, unsigned int, unsigned int, unsigned int); |
struct dev *dev_bynum(int); |
struct dev *dev_bynum(int); |
int dev_addname(struct dev *, char *); |
|
void dev_del(struct dev *); |
void dev_del(struct dev *); |
void dev_adjpar(struct dev *, int, int, int); |
void dev_adjpar(struct dev *, int, int, int); |
int dev_init(struct dev *); |
int dev_init(struct dev *); |
|
|
void dev_unref(struct dev *); |
void dev_unref(struct dev *); |
int dev_getpos(struct dev *); |
int dev_getpos(struct dev *); |
unsigned int dev_roundof(struct dev *, unsigned int); |
unsigned int dev_roundof(struct dev *, unsigned int); |
|
int dev_iscompat(struct dev *, struct dev *); |
|
|
/* |
/* |
* interface to hardware device |
* interface to hardware device |
|
|
struct slotops *, void *, int); |
struct slotops *, void *, int); |
void slot_del(struct slot *); |
void slot_del(struct slot *); |
void slot_setvol(struct slot *, unsigned int); |
void slot_setvol(struct slot *, unsigned int); |
|
void slot_setopt(struct slot *, struct opt *); |
void slot_start(struct slot *); |
void slot_start(struct slot *); |
void slot_stop(struct slot *, int); |
void slot_stop(struct slot *, int); |
void slot_read(struct slot *); |
void slot_read(struct slot *); |
|
|
void ctlslot_del(struct ctlslot *); |
void ctlslot_del(struct ctlslot *); |
int ctlslot_visible(struct ctlslot *, struct ctl *); |
int ctlslot_visible(struct ctlslot *, struct ctl *); |
struct ctl *ctlslot_lookup(struct ctlslot *, int); |
struct ctl *ctlslot_lookup(struct ctlslot *, int); |
|
void ctlslot_update(struct ctlslot *); |
|
|
void dev_label(struct dev *, int); |
void dev_label(struct dev *, int); |
void dev_ctlsync(struct dev *); |
void dev_ctlsync(struct dev *); |
|
|