#ifndef OPT_H
#define OPT_H
#define OPT_NMAX 16
#define OPT_NAPP 8
struct dev;
struct app {
#define APP_NAMEMAX 12
char name[APP_NAMEMAX];
unsigned int serial;
int vol;
};
struct opt_alt {
struct opt_alt *next;
struct dev *dev;
};
struct opt {
struct opt *next;
struct dev *dev;
struct opt_alt *alt_list;
struct midi *midi;
struct mtc *mtc;
struct app app_array[OPT_NAPP];
unsigned int app_serial;
int num;
#define OPT_NAMEMAX 11
char name[OPT_NAMEMAX + 1];
int maxweight;
int pmin, pmax;
int rmin, rmax;
int dup;
int mode;
int refcnt;
};
extern struct opt *opt_list;
struct app *opt_mkapp(struct opt *o, char *who);
void opt_appvol(struct opt *o, struct app *a, int vol);
void opt_midi_vol(struct opt *, struct app *);
void opt_midi_appdesc(struct opt *o, struct app *a);
void opt_midi_dump(struct opt *o);
struct opt *opt_new(struct dev *, char *, int, int, int, int,
int, int, int, unsigned int);
void opt_del(struct opt *);
void opt_setalt(struct opt *, struct dev *);
struct opt *opt_byname(char *);
struct opt *opt_bynum(int);
void opt_init(struct opt *);
void opt_done(struct opt *);
int opt_setdev(struct opt *, struct dev *);
void opt_migrate(struct opt *, struct dev *);
struct dev *opt_ref(struct opt *);
void opt_unref(struct opt *);
#endif