svn commit: r199576 - head/sys/dev/sound/usb
Andrew Thompson
thompsa at FreeBSD.org
Fri Nov 20 09:00:39 UTC 2009
Author: thompsa
Date: Fri Nov 20 09:00:38 2009
New Revision: 199576
URL: http://svn.freebsd.org/changeset/base/199576
Log:
remove volume alignment (was previously not correctly implemented)
Submitted by: HPS
Reported by: Jaakko Heinonen
Modified:
head/sys/dev/sound/usb/uaudio.c
Modified: head/sys/dev/sound/usb/uaudio.c
==============================================================================
--- head/sys/dev/sound/usb/uaudio.c Fri Nov 20 08:57:25 2009 (r199575)
+++ head/sys/dev/sound/usb/uaudio.c Fri Nov 20 09:00:38 2009 (r199576)
@@ -118,7 +118,6 @@ struct uaudio_mixer_node {
int32_t maxval;
#define MIX_MAX_CHAN 8
int32_t wValue[MIX_MAX_CHAN]; /* using nchan */
- uint32_t mod; /* modulus */
uint32_t mul;
uint32_t ctl;
@@ -1318,6 +1317,11 @@ uaudio_chan_init(struct uaudio_softc *sc
ch->pcm_cap.minspeed = ch->sample_rate;
ch->pcm_cap.maxspeed = ch->sample_rate;
+ /* setup mutex and PCM channel */
+
+ ch->pcm_ch = c;
+ ch->pcm_mtx = c->lock;
+
if (ch->p_asf1d->bNrChannels >= 2)
ch->pcm_cap.fmtlist[0] =
SND_FORMAT(ch->p_fmt->freebsd_fmt, 2, 0);
@@ -1391,8 +1395,6 @@ uaudio_chan_init(struct uaudio_softc *sc
ch->start = ch->buf;
ch->end = ch->buf + buf_size;
ch->cur = ch->buf;
- ch->pcm_ch = c;
- ch->pcm_mtx = c->lock;
ch->pcm_buf = b;
if (ch->pcm_mtx == NULL) {
@@ -1570,9 +1572,7 @@ uaudio_mixer_add_ctl(struct uaudio_softc
if (mc->type == MIX_ON_OFF) {
mc->minval = 0;
mc->maxval = 1;
- mc->mod = 1;
} else if (mc->type == MIX_SELECTOR) {
- mc->mod = 1;
} else {
/* determine min and max values */
@@ -1600,11 +1600,8 @@ uaudio_mixer_add_ctl(struct uaudio_softc
/* compute value alignment */
res = uaudio_mixer_get(sc->sc_udev, GET_RES, mc);
- if (res == 0)
- res = 1;
- mc->mod = mc->mul / res;
- if (mc->mod == 0)
- mc->mod = 1;
+
+ DPRINTF("Resolution = %d\n", (int)res);
}
uaudio_mixer_add_ctl_sub(sc, mc);
@@ -3097,9 +3094,6 @@ uaudio_mixer_bsd2value(struct uaudio_mix
/* compute actual volume */
val = (val * mc->mul) / 255;
- /* align volume level */
- val = val - (val % mc->mod);
-
/* add lower offset */
val = val + mc->minval;
More information about the svn-src-head
mailing list