mixer
mixer_close(struct mixer *m)
mixer_get_dev(struct mixer *m, int dev)
mixer_get_dev_byname(struct mixer *m, const char *name)
mixer_set_vol(struct mixer *m, mix_volume_t vol)
mixer_set_mute(struct mixer *m, int opt)
mixer_mod_recsrc(struct mixer *m, int opt)
mixer_set_dunit(struct mixer *m, int unit)
struct mixer *m;
struct mixer *
struct mixer *m = NULL;
if ((m = calloc(1, sizeof(struct mixer))) == NULL)
struct mixer *mixer_open(const char *);
int mixer_close(struct mixer *);
struct mix_dev *mixer_get_dev(struct mixer *, int);
struct mix_dev *mixer_get_dev_byname(struct mixer *, const char *);
int mixer_set_vol(struct mixer *, mix_volume_t);
int mixer_set_mute(struct mixer *, int);
int mixer_mod_recsrc(struct mixer *, int);
int mixer_set_dunit(struct mixer *, int);
struct mixer;
struct mixer *parent_mixer; /* parent mixer */
pdevinfo->mixer = m;
mix_set(pdevinfo->mixer, dev, vol, vol);
if (!as->mixed || pdevinfo == NULL || pdevinfo->mixer == NULL)
mix_setrecsrc(pdevinfo->mixer, mask);
if (pdevinfo->mixer != NULL) {
struct snd_mixer *mixer;
FEEDER_BUILD(mixer);
FEEDER_BUILD(mixer);
mixer_get(struct snd_mixer *mixer, int dev)
if ((dev < SOUND_MIXER_NRDEVICES) && (mixer->devs & (1 << dev))) {
if (mixer->mutedevs & (1 << dev))
return (mixer->level_muted[dev]);
return (mixer->level[dev]);
mix_setmutedevs(struct snd_mixer *mixer, uint32_t mutedevs)
mutedevs &= mixer->devs;
delta = (mixer->mutedevs ^ mutedevs) & mixer->devs;
mixer->mutedevs = mutedevs;
mixer->level_muted[i] = mixer->level[i];
mixer_set(mixer, i, 0, 0);
mixer_set(mixer, i, 0, mixer->level_muted[i]);
mixer_setrecsrc(struct snd_mixer *mixer, uint32_t src)
d = device_get_softc(mixer->dev);
if (!(d->flags & SD_F_MPSAFE) && mtx_owned(&mixer->lock) != 0)
src &= mixer->recdevs;
src = mixer->recdevs & SOUND_MASK_MIC;
src = mixer->recdevs & SOUND_MASK_MONITOR;
src = mixer->recdevs & SOUND_MASK_LINE;
if (src == 0 && mixer->recdevs != 0)
src = (1 << (ffs(mixer->recdevs) - 1));
MIXER_SET_UNLOCK(mixer, dropmtx);
recsrc = MIXER_SETRECSRC(mixer, src);
MIXER_SET_LOCK(mixer, dropmtx);
mixer->recsrc = recsrc;
mixer_getrecsrc(struct snd_mixer *mixer)
return mixer->recsrc;
initctls(struct mixer *m)
printall(struct mixer *m, int oflag)
printminfo(struct mixer *m, int oflag)
printdev(struct mixer *m, int oflag)
printrecsrc(struct mixer *m, int oflag)
set_dunit(struct mixer *m, int dunit)
struct mixer *m;
static void initctls(struct mixer *);
static void printall(struct mixer *, int);
static void printminfo(struct mixer *, int);
static void printdev(struct mixer *, int);
static void printrecsrc(struct mixer *, int); /* XXX: change name */
struct mixer *m;
static int set_dunit(struct mixer *, int);
struct mixer *m;
struct mixer *m = d->parent_mixer;
struct mixer *m = d->parent_mixer;
struct mixer *m = d->parent_mixer;
struct mixer *m;