diff options
| author | David Marcec <dmarcecguzman@gmail.com> | 2020-04-22 13:03:58 +1000 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2020-05-11 12:56:15 -0400 |
| commit | 9de860a419853bbaf913c07b1aae239c91c56d9e (patch) | |
| tree | 4de5b795d79a751d258e1b07c5c054cae7bc1f3d /src/audio_core/audio_renderer.h | |
| parent | 6ec6cb50dd23fe75e01e7aee198e48b9cafd0542 (diff) | |
audio_renderer: Better voice mixing and 6 channel downmixing
Supersedes #3738 and #3321
Diffstat (limited to 'src/audio_core/audio_renderer.h')
| -rw-r--r-- | src/audio_core/audio_renderer.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/audio_core/audio_renderer.h b/src/audio_core/audio_renderer.h index b42770fae..1f9114c07 100644 --- a/src/audio_core/audio_renderer.h +++ b/src/audio_core/audio_renderer.h @@ -9,6 +9,7 @@ #include <vector> #include "audio_core/behavior_info.h" +#include "audio_core/common.h" #include "audio_core/stream.h" #include "common/common_funcs.h" #include "common/common_types.h" @@ -116,6 +117,14 @@ struct WaveBuffer { }; static_assert(sizeof(WaveBuffer) == 0x38, "WaveBuffer has wrong size"); +struct VoiceResourceInformation { + s32_le id{}; + std::array<float_le, MAX_MIX_BUFFERS> mix_volumes{}; + bool in_use{}; + INSERT_PADDING_BYTES(11); +}; +static_assert(sizeof(VoiceResourceInformation) == 0x70, "VoiceResourceInformation has wrong size"); + struct VoiceInfo { u32_le id; u32_le node_id; @@ -244,6 +253,7 @@ private: AudioRendererParameter worker_params; std::shared_ptr<Kernel::WritableEvent> buffer_event; std::vector<VoiceState> voices; + std::vector<VoiceResourceInformation> voice_resources; std::vector<EffectState> effects; std::unique_ptr<AudioOut> audio_out; StreamPtr stream; |
