version 1.23, 2010/05/08 15:35:45 |
version 1.24, 2010/06/04 06:15:28 |
|
|
struct aparams; |
struct aparams; |
struct abuf; |
struct abuf; |
|
|
extern unsigned dev_reqprime; |
struct dev { |
extern unsigned dev_bufsz, dev_round, dev_rate; |
struct dev *next; |
extern struct aparams dev_ipar, dev_opar; |
|
extern struct aproc *dev_mix, *dev_sub, *dev_midi, *dev_submon, *dev_mon; |
|
|
|
int dev_run(void); |
/* |
int dev_open(void); |
* desired parameters |
void dev_close(void); |
*/ |
int dev_ref(void); |
unsigned reqmode; /* mode */ |
void dev_unref(void); |
struct aparams reqipar, reqopar; /* parameters */ |
void dev_done(void); |
unsigned reqbufsz; /* buffer size */ |
void dev_wakeup(void); |
unsigned reqround; /* block size */ |
void dev_init_thru(void); |
unsigned reqrate; /* sample rate */ |
void dev_init_loop(struct aparams *, struct aparams *, unsigned); |
unsigned prime; /* prime play buffer? */ |
void dev_init_sio(char *, unsigned, |
unsigned hold; /* hold the device open ? */ |
struct aparams *, struct aparams *, unsigned, unsigned); |
unsigned refcnt; /* number of openers */ |
int dev_thruadd(char *, int, int); |
#define DEV_CLOSED 0 /* closed */ |
void dev_midiattach(struct abuf *, struct abuf *); |
#define DEV_INIT 1 /* stopped */ |
unsigned dev_roundof(unsigned); |
#define DEV_START 2 /* ready to start */ |
int dev_getpos(void); |
#define DEV_RUN 3 /* started */ |
void dev_attach(char *, unsigned, |
unsigned pstate; /* on of DEV_xxx */ |
|
char *path; /* sio path */ |
|
|
|
/* |
|
* actual parameters and runtime state (i.e. once opened) |
|
*/ |
|
unsigned mode; /* bitmap of MODE_xxx */ |
|
unsigned bufsz, round, rate; |
|
struct aparams ipar, opar; |
|
struct aproc *mix, *sub, *submon; |
|
struct aproc *rec, *play, *mon; |
|
struct aproc *midi; |
|
}; |
|
|
|
extern struct dev *dev_list; |
|
|
|
int dev_run(struct dev *); |
|
int dev_ref(struct dev *); |
|
void dev_unref(struct dev *); |
|
void dev_del(struct dev *); |
|
void dev_wakeup(struct dev *); |
|
struct dev *dev_new_thru(void); |
|
struct dev *dev_new_loop(struct aparams *, struct aparams *, unsigned); |
|
struct dev *dev_new_sio(char *, unsigned, |
|
struct aparams *, struct aparams *, unsigned, unsigned, |
|
unsigned, unsigned); |
|
int dev_thruadd(struct dev *, char *, int, int); |
|
void dev_midiattach(struct dev *, struct abuf *, struct abuf *); |
|
unsigned dev_roundof(struct dev *, unsigned); |
|
int dev_getpos(struct dev *); |
|
void dev_attach(struct dev *, char *, unsigned, |
struct abuf *, struct aparams *, unsigned, |
struct abuf *, struct aparams *, unsigned, |
struct abuf *, struct aparams *, unsigned, |
struct abuf *, struct aparams *, unsigned, |
unsigned, int); |
unsigned, int); |
void dev_setvol(struct abuf *, int); |
void dev_setvol(struct dev *, struct abuf *, int); |
|
|
#endif /* !define(DEV_H) */ |
#endif /* !define(DEV_H) */ |