From 774984e2f00b4ea81060adf7a0625706ddaa42a5 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 5 Feb 2022 15:43:59 +0100 Subject: increment the emu's sample count between audio callbacks as per the virtual clock, to aid programs that poll it --- emu8k.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'emu8k.h') diff --git a/emu8k.h b/emu8k.h index 86b8e58..01782a9 100644 --- a/emu8k.h +++ b/emu8k.h @@ -61,6 +61,11 @@ void emu8k_outb(emu8k_t *emu8k, uint16_t addr, uint8_t val); void emu8k_render(emu8k_t *emu8k, int16_t *buf, size_t frames); +/** Between calls to emu8k_render, the virtual sample count is used to keep the "sample count" register ticking at a reasonable pace. */ +void emu8k_update_virtual_sample_count(emu8k_t *emu8k, uint8_t sample_count); +/* Many programs seem to rely in this counter incrementing frequently, and may hang/error out if it doesn't. + * It is reset to 0 whenever we render and therefore increment the real sample count. + * This means that effectively the sample count register may readjust itself (go back or jump ahead) on _render :(. */ #ifdef __cplusplus } /* extern "C" */ -- cgit v1.2.3