From 685ae2d55aaaab63a2e424ef2186abb4981302ed Mon Sep 17 00:00:00 2001 From: tracer-ics2023 Date: Fri, 20 Sep 2024 21:14:44 +0800 Subject: [PATCH] =?UTF-8?q?>=20=20compile=20NEMU=20221220000=20=E5=BC=A0?= =?UTF-8?q?=E4=B8=89=20Linux=20zzy=205.15.146.1-microsoft-standard-WSL2=20?= =?UTF-8?q?#1=20SMP=20Thu=20Jan=2011=2004:09:03=20UTC=202024=20x86=5F64=20?= =?UTF-8?q?x86=5F64=20x86=5F64=20GNU/Linux=20=2021:14:43=20up=203=20days,?= =?UTF-8?q?=2016:20,=20=201=20user,=20=20load=20average:=200.53,=200.40,?= =?UTF-8?q?=200.61?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nemu/src/device/audio.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/nemu/src/device/audio.c b/nemu/src/device/audio.c index 11fe2c9..0fb22f1 100644 --- a/nemu/src/device/audio.c +++ b/nemu/src/device/audio.c @@ -38,15 +38,16 @@ static void audio_callback(void *userdata, uint8_t *stream, int len) { uint32_t read_cnt = MIN(count, len); uint32_t to_end_cnt = audio_base[reg_sbuf_size] - pos_read; int32_t out_bound_cnt = read_cnt - to_end_cnt; + memset(stream, 0, len); if (out_bound_cnt > 0) { - SDL_memcpy(stream, sbuf + pos_read, to_end_cnt); - SDL_memcpy(stream + to_end_cnt, sbuf, out_bound_cnt); + memcpy(stream, sbuf + pos_read, to_end_cnt); + memcpy(stream + to_end_cnt, sbuf, out_bound_cnt); } else { - SDL_memcpy(stream, sbuf + pos_read, read_cnt); + memcpy(stream, sbuf + pos_read, read_cnt); } pos_read += read_cnt; pos_read %= audio_base[reg_sbuf_size]; - if (len > read_cnt) SDL_memset(stream + read_cnt, 0, len - read_cnt); + // if (len > read_cnt) memset(stream + read_cnt, 0, len - read_cnt); audio_base[reg_count] -= read_cnt; }