From 1b3d86c02fbc82db4dfd7b0ce908d02e48b5a35d Mon Sep 17 00:00:00 2001 From: David Marcec Date: Fri, 14 Aug 2020 21:04:28 +1000 Subject: Reworked ADPCM decoder to allow better streaming --- src/audio_core/voice_context.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/audio_core/voice_context.h') diff --git a/src/audio_core/voice_context.h b/src/audio_core/voice_context.h index 13b0a7f0f..59d3d7dfb 100644 --- a/src/audio_core/voice_context.h +++ b/src/audio_core/voice_context.h @@ -85,6 +85,13 @@ struct BehaviorFlags { }; static_assert(sizeof(BehaviorFlags) == 0x4, "BehaviorFlags is an invalid size"); +struct ADPCMContext { + u16 header{}; + s16 yn1{}; + s16 yn2{}; +}; +static_assert(sizeof(ADPCMContext) == 0x6, "ADPCMContext is an invalid size"); + struct VoiceState { s64 played_sample_count{}; s32 offset{}; @@ -95,7 +102,7 @@ struct VoiceState { s32 fraction{}; VAddr context_address{}; Codec::ADPCM_Coeff coeff{}; - Codec::ADPCMState context{}; + ADPCMContext context{}; std::array biquad_filter_state{}; std::array previous_samples{}; u32 external_context_size{}; -- cgit v1.2.3