diff options
-rw-r--r-- | firmware/sound.c | 3 | ||||
-rw-r--r-- | uisimulator/sdl/sound.c | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/firmware/sound.c b/firmware/sound.c index 30b9b6a2d2..dd70b42230 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -663,9 +663,10 @@ void sound_set_superbass(int value) | |||
663 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ | 663 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ |
664 | 664 | ||
665 | #else /* SIMULATOR */ | 665 | #else /* SIMULATOR */ |
666 | int sim_volume; | ||
666 | void sound_set_volume(int value) | 667 | void sound_set_volume(int value) |
667 | { | 668 | { |
668 | (void)value; | 669 | sim_volume =128*(value +40)/46; /* 128 is SDL_MIX_MAXVOLUME */ |
669 | } | 670 | } |
670 | 671 | ||
671 | void sound_set_balance(int value) | 672 | void sound_set_balance(int value) |
diff --git a/uisimulator/sdl/sound.c b/uisimulator/sdl/sound.c index c3bb4d6592..0ade0c9edc 100644 --- a/uisimulator/sdl/sound.c +++ b/uisimulator/sdl/sound.c | |||
@@ -286,6 +286,7 @@ void pcm_calculate_peaks(int *left, int *right) | |||
286 | } | 286 | } |
287 | } | 287 | } |
288 | 288 | ||
289 | extern int sim_volume; /* in firmware/sound.c | ||
289 | void write_to_soundcard(struct pcm_udata *udata) { | 290 | void write_to_soundcard(struct pcm_udata *udata) { |
290 | if (cvt.needed) { | 291 | if (cvt.needed) { |
291 | Uint32 rd = udata->num_in; | 292 | Uint32 rd = udata->num_in; |
@@ -315,8 +316,7 @@ void write_to_soundcard(struct pcm_udata *udata) { | |||
315 | memcpy(cvt.buf, pcm_data, cvt.len); | 316 | memcpy(cvt.buf, pcm_data, cvt.len); |
316 | 317 | ||
317 | SDL_ConvertAudio(&cvt); | 318 | SDL_ConvertAudio(&cvt); |
318 | 319 | SDL_MixAudio(udata->stream, cvt.buf, cvt.len_cvt, sim_volume); | |
319 | memcpy(udata->stream, cvt.buf, cvt.len_cvt); | ||
320 | 320 | ||
321 | udata->num_in = cvt.len / pcm_sample_bytes; | 321 | udata->num_in = cvt.len / pcm_sample_bytes; |
322 | udata->num_out = cvt.len_cvt / pcm_sample_bytes; | 322 | udata->num_out = cvt.len_cvt / pcm_sample_bytes; |
@@ -357,7 +357,8 @@ void write_to_soundcard(struct pcm_udata *udata) { | |||
357 | } | 357 | } |
358 | } else { | 358 | } else { |
359 | udata->num_in = udata->num_out = MIN(udata->num_in, udata->num_out); | 359 | udata->num_in = udata->num_out = MIN(udata->num_in, udata->num_out); |
360 | memcpy(udata->stream, pcm_data, udata->num_out * pcm_sample_bytes); | 360 | SDL_MixAudio(udata->stream, pcm_data, |
361 | udata->num_out * pcm_sample_bytes, sim_volume); | ||
361 | 362 | ||
362 | if (udata->debug != NULL) { | 363 | if (udata->debug != NULL) { |
363 | fwrite(pcm_data, sizeof(Uint8), udata->num_out * pcm_sample_bytes, | 364 | fwrite(pcm_data, sizeof(Uint8), udata->num_out * pcm_sample_bytes, |