All pastes #170157 Raw Edit

hisham

public c v1 · immutable
·published 2006-09-14 12:31 UTC
rendered paste body
static char *get_mixer_device(void){    char *name;    if (oss_cfg.use_alt_mixer_device && oss_cfg.alt_mixer_device)        name = g_strdup(oss_cfg.alt_mixer_device);    else if (oss_cfg.mixer_device > 0)        name = g_strdup_printf("%s%d", DEV_MIXER, oss_cfg.mixer_device);    else        name = g_strdup(DEV_MIXER);    return name;}voidoss_get_volume(int *l, int *r){    int fd, v, devs;    long cmd;    gchar *devname;    devname = get_mixer_device();    fd = open(devname, O_RDONLY);    g_free(devname);    /*     * We dont show any errors if this fails, as this is called     * rather often     */    if (fd != -1) {        ioctl(fd, SOUND_MIXER_READ_DEVMASK, &devs);        if ((devs & SOUND_MASK_PCM) && (oss_cfg.use_master == 0))            cmd = SOUND_MIXER_READ_PCM;        else if ((devs & SOUND_MASK_VOLUME) && (oss_cfg.use_master == 1))            cmd = SOUND_MIXER_READ_VOLUME;        else {            close(fd);            return;        }        ioctl(fd, cmd, &v);        *r = (v & 0xFF00) >> 8;        *l = (v & 0x00FF);        close(fd);    }}