All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Cc: Juan Quintela <quintela@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
Subject: [Qemu-devel] [PULL 23/30] audio: GUSsample is int16_t
Date: Thu,  4 May 2017 09:18:04 +0200	[thread overview]
Message-ID: <20170504071811.3547-24-kraxel@redhat.com> (raw)
In-Reply-To: <20170504071811.3547-1-kraxel@redhat.com>

From: Juan Quintela <quintela@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-id: 20170425223739.6703-20-quintela@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/audio/gusemu.h       | 12 +-----------
 hw/audio/gus.c          |  2 +-
 hw/audio/gusemu_hal.c   |  2 +-
 hw/audio/gusemu_mixer.c |  8 ++++----
 4 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/hw/audio/gusemu.h b/hw/audio/gusemu.h
index 69dadef24d..ab591eefb7 100644
--- a/hw/audio/gusemu.h
+++ b/hw/audio/gusemu.h
@@ -25,16 +25,6 @@
 #ifndef GUSEMU_H
 #define GUSEMU_H
 
-/* data types (need to be adjusted if neither a VC6 nor a C99 compatible compiler is used) */
-
-#if defined _WIN32 && defined _MSC_VER /* doesn't support other win32 compilers yet, do it yourself... */
- typedef unsigned int GUSdword;
- typedef signed short GUSsample;
-#else
- typedef uint32_t GUSdword;
- typedef int16_t GUSsample;
-#endif
-
 typedef struct _GUSEmuState
 {
  uint8_t *himemaddr; /* 1024*1024 bytes used for storing uploaded samples (+32 additional bytes for read padding) */
@@ -86,7 +76,7 @@ void gus_dma_transferdata(GUSEmuState *state, char *dma_addr, unsigned int count
 /* If the interrupts are asynchronous, it may be needed to use a separate thread mixing into a temporary */
 /* audio buffer in order to avoid quality loss caused by large numsamples and elapsed_time values. */
 
-void gus_mixvoices(GUSEmuState *state, unsigned int playback_freq, unsigned int numsamples, GUSsample *bufferpos);
+void gus_mixvoices(GUSEmuState *state, unsigned int playback_freq, unsigned int numsamples, int16_t *bufferpos);
 /* recommended range: 10 < numsamples < 100 */
 /* lower values may result in increased rounding error, higher values often cause audible timing delays */
 
diff --git a/hw/audio/gus.c b/hw/audio/gus.c
index 3d08a6576a..ec103a4db9 100644
--- a/hw/audio/gus.c
+++ b/hw/audio/gus.c
@@ -53,7 +53,7 @@ typedef struct GUSState {
     uint32_t freq;
     uint32_t port;
     int pos, left, shift, irqs;
-    GUSsample *mixbuf;
+    int16_t *mixbuf;
     uint8_t himem[1024 * 1024 + 32 + 4096];
     int samples;
     SWVoiceOut *voice;
diff --git a/hw/audio/gusemu_hal.c b/hw/audio/gusemu_hal.c
index 3dd7239a4b..1150fc4426 100644
--- a/hw/audio/gusemu_hal.c
+++ b/hw/audio/gusemu_hal.c
@@ -32,7 +32,7 @@
 
 #define GUSregb(position) (*            (gusptr+(position)))
 #define GUSregw(position) (*(uint16_t *) (gusptr+(position)))
-#define GUSregd(position) (*(GUSdword *)(gusptr+(position)))
+#define GUSregd(position) (*(uint16_t *)(gusptr+(position)))
 
 /* size given in bytes */
 unsigned int gus_read(GUSEmuState * state, int port, int size)
diff --git a/hw/audio/gusemu_mixer.c b/hw/audio/gusemu_mixer.c
index 981a9ae0d4..00b9861b92 100644
--- a/hw/audio/gusemu_mixer.c
+++ b/hw/audio/gusemu_mixer.c
@@ -28,13 +28,13 @@
 
 #define GUSregb(position)  (*            (gusptr+(position)))
 #define GUSregw(position)  (*(uint16_t *) (gusptr+(position)))
-#define GUSregd(position)  (*(GUSdword *)(gusptr+(position)))
+#define GUSregd(position)  (*(uint16_t *)(gusptr+(position)))
 
 #define GUSvoice(position) (*(uint16_t *)(voiceptr+(position)))
 
 /* samples are always 16bit stereo (4 bytes each, first right then left interleaved) */
 void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int numsamples,
-                   GUSsample *bufferpos)
+                   int16_t *bufferpos)
 {
     /* note that byte registers are stored in the upper half of each voice register! */
     uint8_t        *gusptr;
@@ -171,8 +171,8 @@ void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int
                 }
 
                 /* mix samples into buffer */
-                *(bufferpos + 2 * sample)     += (GUSsample) ((sample1 * PanningPos) >> 4);        /* right */
-                *(bufferpos + 2 * sample + 1) += (GUSsample) ((sample1 * (15 - PanningPos)) >> 4); /* left */
+                *(bufferpos + 2 * sample)     += (int16_t) ((sample1 * PanningPos) >> 4);        /* right */
+                *(bufferpos + 2 * sample + 1) += (int16_t) ((sample1 * (15 - PanningPos)) >> 4); /* left */
             }
             /* write back voice and volume */
             GUSvoice(wVSRCurrVol)   = Volume32 / 32;
-- 
2.9.3

  parent reply	other threads:[~2017-05-04  7:18 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-04  7:17 [Qemu-devel] [PULL 00/30] audio patch queue Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 01/30] hw/audio: replace exit with unrealize in hda_codec_device_class_init Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 02/30] hw/audio: convert exit callback in HDACodecDeviceClass to void Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 03/30] audio: release capture buffers Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 04/30] audio: fix WAVState leak Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 05/30] adlib: Remove support for YMF262 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 06/30] audio: remove Y8950 configuration Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 07/30] audio: Remove YM3526 support Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 08/30] audio: YM3812 was always defined Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 09/30] audio: Remove UINT8 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 10/30] audio: remove UINT16 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 11/30] audio: remove UINT32 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 12/30] audio: Remove INT8 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 13/30] audio: remove INT16 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 14/30] audio: Remove INT32 Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 15/30] audio: Unfold OPLSAMPLE Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 16/30] audio: Remove Unused OPL_TYPE_* Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 17/30] audio: Remove type field Gerd Hoffmann
2017-05-04  7:17 ` [Qemu-devel] [PULL 18/30] audio: Remove unused fields Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 19/30] audio: GUSbyte is uint8_t Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 20/30] audio: remove GUSchar Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 21/30] audio: GUSword is uint16_t Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 22/30] " Gerd Hoffmann
2017-05-04  7:18 ` Gerd Hoffmann [this message]
2017-05-04  7:18 ` [Qemu-devel] [PULL 24/30] audio: OPLSetIRQHandler is not used anywhere Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 25/30] audio: OPLSetUpdateHandler " Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 26/30] audio: IRQHandler is not used anymore Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 27/30] audio: UpdateHandler " Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 28/30] audio: Remove unused typedefs Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 29/30] audio: un-export OPLResetChip Gerd Hoffmann
2017-05-04  7:18 ` [Qemu-devel] [PULL 30/30] audio: Use ARRAY_SIZE from qemu/osdep.h Gerd Hoffmann
2017-05-04  8:37 ` [Qemu-devel] [PULL 00/30] audio patch queue no-reply
2017-05-05 15:47 ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170504071811.3547-24-kraxel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.