summary refs log tree commit diff stats
path: root/hw
diff options
context:
space:
mode:
authormalc <av1474@comtv.ru>2009-09-18 08:16:03 +0400
committermalc <av1474@comtv.ru>2009-09-18 14:04:36 +0400
commit4f4cc0efde875ec9fce206c365597878fc4921e7 (patch)
treeb57773b376d9ee7c2b8071847f05c59e1ab78293 /hw
parent68f6dc7ebd377ce92abd1f3a991c792143af23b0 (diff)
downloadfocaccia-qemu-4f4cc0efde875ec9fce206c365597878fc4921e7.tar.gz
focaccia-qemu-4f4cc0efde875ec9fce206c365597878fc4921e7.zip
audio: use muldiv64 where it makes sense
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'hw')
-rw-r--r--hw/gus.c4
-rw-r--r--hw/sb16.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/hw/gus.c b/hw/gus.c
index 543b4ea68c..c6b98b3ce4 100644
--- a/hw/gus.c
+++ b/hw/gus.c
@@ -156,8 +156,8 @@ static void GUS_callback (void *opaque, int free)
     }
     s->left = samples;
 
-reset:
-    gus_irqgen (&s->emu, (double) (net * 1000000) / s->freq);
+ reset:
+    gus_irqgen (&s->emu, muldiv64 (net, 1000000, s->freq));
 }
 
 int GUS_irqrequest (GUSEmuState *emu, int hwirq, int n)
diff --git a/hw/sb16.c b/hw/sb16.c
index a222e21eef..8654b7d47e 100644
--- a/hw/sb16.c
+++ b/hw/sb16.c
@@ -758,8 +758,8 @@ static void complete (SB16State *s)
                 freq = s->freq > 0 ? s->freq : 11025;
                 samples = dsp_get_lohi (s) + 1;
                 bytes = samples << s->fmt_stereo << (s->fmt_bits == 16);
-                ticks = (bytes * get_ticks_per_sec()) / freq;
-                if (ticks < get_ticks_per_sec() / 1024) {
+                ticks = muldiv64 (bytes, get_ticks_per_sec (), freq);
+                if (ticks < get_ticks_per_sec () / 1024) {
                     qemu_irq_raise (s->pic);
                 }
                 else {