> compile NEMU
221220000 张三 Linux zzy 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux 21:14:43 up 3 days, 16:20, 1 user, load average: 0.53, 0.40, 0.61
This commit is contained in:
@ -38,15 +38,16 @@ static void audio_callback(void *userdata, uint8_t *stream, int len) {
|
|||||||
uint32_t read_cnt = MIN(count, len);
|
uint32_t read_cnt = MIN(count, len);
|
||||||
uint32_t to_end_cnt = audio_base[reg_sbuf_size] - pos_read;
|
uint32_t to_end_cnt = audio_base[reg_sbuf_size] - pos_read;
|
||||||
int32_t out_bound_cnt = read_cnt - to_end_cnt;
|
int32_t out_bound_cnt = read_cnt - to_end_cnt;
|
||||||
|
memset(stream, 0, len);
|
||||||
if (out_bound_cnt > 0) {
|
if (out_bound_cnt > 0) {
|
||||||
SDL_memcpy(stream, sbuf + pos_read, to_end_cnt);
|
memcpy(stream, sbuf + pos_read, to_end_cnt);
|
||||||
SDL_memcpy(stream + to_end_cnt, sbuf, out_bound_cnt);
|
memcpy(stream + to_end_cnt, sbuf, out_bound_cnt);
|
||||||
} else {
|
} else {
|
||||||
SDL_memcpy(stream, sbuf + pos_read, read_cnt);
|
memcpy(stream, sbuf + pos_read, read_cnt);
|
||||||
}
|
}
|
||||||
pos_read += read_cnt;
|
pos_read += read_cnt;
|
||||||
pos_read %= audio_base[reg_sbuf_size];
|
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;
|
audio_base[reg_count] -= read_cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user