Commit 731ba0cec2ae7071da75902a8071ac718c86cb14

Authored by malc
1 parent e2eef170

Fix some signedness issues caught by gcc 4.3


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4696 c046a42c-6fe2-441c-8c8c-71466251a162
hw/gus.c
@@ -58,7 +58,7 @@ typedef struct GUSState { @@ -58,7 +58,7 @@ typedef struct GUSState {
58 QEMUSoundCard card; 58 QEMUSoundCard card;
59 int freq; 59 int freq;
60 int pos, left, shift, irqs; 60 int pos, left, shift, irqs;
61 - uint16_t *mixbuf; 61 + GUSsample *mixbuf;
62 uint8_t himem[1024 * 1024 + 32 + 4096]; 62 uint8_t himem[1024 * 1024 + 32 + 4096];
63 int samples; 63 int samples;
64 SWVoiceOut *voice; 64 SWVoiceOut *voice;
@@ -198,7 +198,7 @@ void GUS_dmarequest (GUSEmuState *der) @@ -198,7 +198,7 @@ void GUS_dmarequest (GUSEmuState *der)
198 int GUS_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len) 198 int GUS_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len)
199 { 199 {
200 GUSState *s = opaque; 200 GUSState *s = opaque;
201 - int8_t tmpbuf[4096]; 201 + char tmpbuf[4096];
202 int pos = dma_pos, mode, left = dma_len - dma_pos; 202 int pos = dma_pos, mode, left = dma_len - dma_pos;
203 203
204 ldebug ("read DMA %#x %d\n", dma_pos, dma_len); 204 ldebug ("read DMA %#x %d\n", dma_pos, dma_len);
hw/gusemu.h
@@ -32,12 +32,14 @@ @@ -32,12 +32,14 @@
32 typedef unsigned short GUSword; 32 typedef unsigned short GUSword;
33 typedef unsigned int GUSdword; 33 typedef unsigned int GUSdword;
34 typedef signed char GUSchar; 34 typedef signed char GUSchar;
  35 + typedef signed short GUSsample;
35 #else 36 #else
36 #include <stdint.h> 37 #include <stdint.h>
37 typedef int8_t GUSchar; 38 typedef int8_t GUSchar;
38 typedef uint8_t GUSbyte; 39 typedef uint8_t GUSbyte;
39 typedef uint16_t GUSword; 40 typedef uint16_t GUSword;
40 typedef uint32_t GUSdword; 41 typedef uint32_t GUSdword;
  42 + typedef int16_t GUSsample;
41 #endif 43 #endif
42 44
43 typedef struct _GUSEmuState 45 typedef struct _GUSEmuState
@@ -91,7 +93,7 @@ void gus_dma_transferdata(GUSEmuState *state, char *dma_addr, unsigned int count @@ -91,7 +93,7 @@ void gus_dma_transferdata(GUSEmuState *state, char *dma_addr, unsigned int count
91 /* If the interrupts are asynchronous, it may be needed to use a separate thread mixing into a temporary */ 93 /* If the interrupts are asynchronous, it may be needed to use a separate thread mixing into a temporary */
92 /* audio buffer in order to avoid quality loss caused by large numsamples and elapsed_time values. */ 94 /* audio buffer in order to avoid quality loss caused by large numsamples and elapsed_time values. */
93 95
94 -void gus_mixvoices(GUSEmuState *state, unsigned int playback_freq, unsigned int numsamples, short *bufferpos); 96 +void gus_mixvoices(GUSEmuState *state, unsigned int playback_freq, unsigned int numsamples, GUSsample *bufferpos);
95 /* recommended range: 10 < numsamples < 100 */ 97 /* recommended range: 10 < numsamples < 100 */
96 /* lower values may result in increased rounding error, higher values often cause audible timing delays */ 98 /* lower values may result in increased rounding error, higher values often cause audible timing delays */
97 99
hw/gusemu_mixer.c
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 33
34 /* samples are always 16bit stereo (4 bytes each, first right then left interleaved) */ 34 /* samples are always 16bit stereo (4 bytes each, first right then left interleaved) */
35 void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int numsamples, 35 void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int numsamples,
36 - short *bufferpos) 36 + GUSsample *bufferpos)
37 { 37 {
38 /* note that byte registers are stored in the upper half of each voice register! */ 38 /* note that byte registers are stored in the upper half of each voice register! */
39 GUSbyte *gusptr; 39 GUSbyte *gusptr;
@@ -170,8 +170,8 @@ void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int @@ -170,8 +170,8 @@ void gus_mixvoices(GUSEmuState * state, unsigned int playback_freq, unsigned int
170 } 170 }
171 171
172 /* mix samples into buffer */ 172 /* mix samples into buffer */
173 - *(bufferpos + 2 * sample) += (short) ((sample1 * PanningPos) >> 4); /* right */  
174 - *(bufferpos + 2 * sample + 1) += (short) ((sample1 * (15 - PanningPos)) >> 4); /* left */ 173 + *(bufferpos + 2 * sample) += (GUSsample) ((sample1 * PanningPos) >> 4); /* right */
  174 + *(bufferpos + 2 * sample + 1) += (GUSsample) ((sample1 * (15 - PanningPos)) >> 4); /* left */
175 } 175 }
176 /* write back voice and volume */ 176 /* write back voice and volume */
177 GUSvoice(wVSRCurrVol) = Volume32 / 32; 177 GUSvoice(wVSRCurrVol) = Volume32 / 32;