On Mon, 12 Mar 2012, Marc-Andr? Lureau wrote: > On Mon, Mar 12, 2012 at 10:11 PM, malc <av1...@comtv.ru> wrote: > >> AUD_set_volume_out (SWVoiceOut *sw, int mute, uint8_t lvol..) > >> > >> sw->vol.l = nominal_volume.l * lvol / 255; > >> > >> So the range was [0..2^8-1] and then it becomes [0..2^32], which looks > >> wrong to me. > > > > It actually becomes [-2^63..2^63-1] nominal_volume.l being 64 bit signed > > and all. > > uint8_t [0..255] / 255 * 2^32 = [0..2^32] >
nominal_volume.[lr] is int64_t... i don't get where you take this ^32 from. > >> And Spice uses [0..2^16-1]. So it is simpler to stay within the range > >> of an integer.. > > > > I do not get you, i really don't. > > The audio hw volume range is within a uint8 [0..2^8-1] that is then > scaled into a [0..2^32], it would be easier to stay within a > [0..2^n-1] range all the way. > > > -- mailto:av1...@comtv.ru