diff options
| author | David Marcec <dmarcecguzman@gmail.com> | 2020-08-14 21:04:28 +1000 |
|---|---|---|
| committer | David Marcec <dmarcecguzman@gmail.com> | 2020-08-14 21:04:28 +1000 |
| commit | 1b3d86c02fbc82db4dfd7b0ce908d02e48b5a35d (patch) | |
| tree | 1ee73fbd3c507806a57597e38eb0030e641a5489 /src/audio_core/voice_context.h | |
| parent | 0947f613b1f5480258a1bf197ccc7a85a54ab7e1 (diff) | |
Reworked ADPCM decoder to allow better streaming
Diffstat (limited to 'src/audio_core/voice_context.h')
| -rw-r--r-- | src/audio_core/voice_context.h | 9 |
1 files changed, 8 insertions, 1 deletions
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<s64, 2> biquad_filter_state{}; std::array<s32, AudioCommon::MAX_MIX_BUFFERS> previous_samples{}; u32 external_context_size{}; |
