Ed Schouten writes: > I was just looking through FreeBSD's snd_uaudio(4) driver, because I'm > thinking of patching it to support Xbox 360 headsets as well. I was > looking at the code to set the sample rate in > /sys/dev/sound/usb/uaudio.c. In that file there is the following code > near line 4100: > > | if (speed >= UA_SAMP_LO(asf1d) && speed <= UA_SAMP_HI(asf1d)) { > | ch->sample_rate = speed; > | return speed; > | } else if (speed < UA_SAMP_LO(asf1d)) { > | score = 0xfff * speed / UA_SAMP_LO(asf1d); > | if (score > hiscore) { > | bestspeed = UA_SAMP_LO(asf1d); > | hiscore = score; > | } > | } else if (speed < UA_SAMP_HI(asf1d)) { > | score = 0xfff * UA_SAMP_HI(asf1d) / speed; > | if (score > hiscore) { > | bestspeed = UA_SAMP_HI(asf1d); > | hiscore = score; > | } > | } > > If we would rewrite this code to something more basic, let's say we > rename 'speed' to 'x' and the UA_SAMP_ macros to some predefined > variables: > > | if (x >= 10 && x <= 20) { > | ... > | } else if (x < 10) { > | ... > | } else if (x < 20) { > | ... > | } > > Wouldn't that mean that the last portion of the code is never reached? > Looking at the code, it looks like some range check, making sure the > sample rate remains inside a certain range. Wouldn't it be enough to > remove the entire third if-statement, using a normal '} else {'? >
Yeah, it seems like the last if clause should read } else if (speed > UA_SAMP_HI(asf1d)) { --- Gary Jennejohn / garyjATjennejohnDOTorg gjATfreebsdDOTorg garyjATdenxDOTde _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"