On Mon, 12 Mar 2012, Marc-Andr? Lureau wrote: > On Mon, Mar 12, 2012 at 10:00 PM, malc <av1...@comtv.ru> wrote: > > I really do not understand your point at all, mixeng_volume fields > > are int64_t's it's irrelevant what you initialize them with, they > > are still 64bit integers, and UINT_MAX as i already said is not even > > correct, it's 1/(2**32-1) less than one in fixed point. > > But the current code does this: > > 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. > > 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. -- mailto:av1...@comtv.ru