forked from suyu/suyu
Merge pull request #2169 from lioncash/naming
audio_core/audio_renderer: Provide names for some parameters of AudioRendererParameter
This commit is contained in:
commit
42f7c11021
2 changed files with 21 additions and 19 deletions
|
@ -46,16 +46,18 @@ struct AudioRendererParameter {
|
||||||
u32_le sample_rate;
|
u32_le sample_rate;
|
||||||
u32_le sample_count;
|
u32_le sample_count;
|
||||||
u32_le mix_buffer_count;
|
u32_le mix_buffer_count;
|
||||||
u32_le unknown_c;
|
u32_le submix_count;
|
||||||
u32_le voice_count;
|
u32_le voice_count;
|
||||||
u32_le sink_count;
|
u32_le sink_count;
|
||||||
u32_le effect_count;
|
u32_le effect_count;
|
||||||
u32_le unknown_1c;
|
u32_le performance_frame_count;
|
||||||
u8 unknown_20;
|
u8 is_voice_drop_enabled;
|
||||||
INSERT_PADDING_BYTES(3);
|
u8 unknown_21;
|
||||||
|
u8 unknown_22;
|
||||||
|
u8 execution_mode;
|
||||||
u32_le splitter_count;
|
u32_le splitter_count;
|
||||||
u32_le unknown_2c;
|
u32_le num_splitter_send_channels;
|
||||||
INSERT_PADDING_WORDS(1);
|
u32_le unknown_30;
|
||||||
u32_le revision;
|
u32_le revision;
|
||||||
};
|
};
|
||||||
static_assert(sizeof(AudioRendererParameter) == 52, "AudioRendererParameter is an invalid size");
|
static_assert(sizeof(AudioRendererParameter) == 52, "AudioRendererParameter is an invalid size");
|
||||||
|
|
|
@ -262,20 +262,20 @@ void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_DEBUG(Service_Audio, "called");
|
LOG_DEBUG(Service_Audio, "called");
|
||||||
|
|
||||||
u64 buffer_sz = Common::AlignUp(4 * params.mix_buffer_count, 0x40);
|
u64 buffer_sz = Common::AlignUp(4 * params.mix_buffer_count, 0x40);
|
||||||
buffer_sz += params.unknown_c * 1024;
|
buffer_sz += params.submix_count * 1024;
|
||||||
buffer_sz += 0x940 * (params.unknown_c + 1);
|
buffer_sz += 0x940 * (params.submix_count + 1);
|
||||||
buffer_sz += 0x3F0 * params.voice_count;
|
buffer_sz += 0x3F0 * params.voice_count;
|
||||||
buffer_sz += Common::AlignUp(8 * (params.unknown_c + 1), 0x10);
|
buffer_sz += Common::AlignUp(8 * (params.submix_count + 1), 0x10);
|
||||||
buffer_sz += Common::AlignUp(8 * params.voice_count, 0x10);
|
buffer_sz += Common::AlignUp(8 * params.voice_count, 0x10);
|
||||||
buffer_sz +=
|
buffer_sz += Common::AlignUp(
|
||||||
Common::AlignUp((0x3C0 * (params.sink_count + params.unknown_c) + 4 * params.sample_count) *
|
(0x3C0 * (params.sink_count + params.submix_count) + 4 * params.sample_count) *
|
||||||
(params.mix_buffer_count + 6),
|
(params.mix_buffer_count + 6),
|
||||||
0x40);
|
0x40);
|
||||||
|
|
||||||
if (IsFeatureSupported(AudioFeatures::Splitter, params.revision)) {
|
if (IsFeatureSupported(AudioFeatures::Splitter, params.revision)) {
|
||||||
u32 count = params.unknown_c + 1;
|
const u32 count = params.submix_count + 1;
|
||||||
u64 node_count = Common::AlignUp(count, 0x40);
|
u64 node_count = Common::AlignUp(count, 0x40);
|
||||||
u64 node_state_buffer_sz =
|
const u64 node_state_buffer_sz =
|
||||||
4 * (node_count * node_count) + 0xC * node_count + 2 * (node_count / 8);
|
4 * (node_count * node_count) + 0xC * node_count + 2 * (node_count / 8);
|
||||||
u64 edge_matrix_buffer_sz = 0;
|
u64 edge_matrix_buffer_sz = 0;
|
||||||
node_count = Common::AlignUp(count * count, 0x40);
|
node_count = Common::AlignUp(count * count, 0x40);
|
||||||
|
@ -289,19 +289,19 @@ void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
|
||||||
|
|
||||||
buffer_sz += 0x20 * (params.effect_count + 4 * params.voice_count) + 0x50;
|
buffer_sz += 0x20 * (params.effect_count + 4 * params.voice_count) + 0x50;
|
||||||
if (IsFeatureSupported(AudioFeatures::Splitter, params.revision)) {
|
if (IsFeatureSupported(AudioFeatures::Splitter, params.revision)) {
|
||||||
buffer_sz += 0xE0 * params.unknown_2c;
|
buffer_sz += 0xE0 * params.num_splitter_send_channels;
|
||||||
buffer_sz += 0x20 * params.splitter_count;
|
buffer_sz += 0x20 * params.splitter_count;
|
||||||
buffer_sz += Common::AlignUp(4 * params.unknown_2c, 0x10);
|
buffer_sz += Common::AlignUp(4 * params.num_splitter_send_channels, 0x10);
|
||||||
}
|
}
|
||||||
buffer_sz = Common::AlignUp(buffer_sz, 0x40) + 0x170 * params.sink_count;
|
buffer_sz = Common::AlignUp(buffer_sz, 0x40) + 0x170 * params.sink_count;
|
||||||
u64 output_sz = buffer_sz + 0x280 * params.sink_count + 0x4B0 * params.effect_count +
|
u64 output_sz = buffer_sz + 0x280 * params.sink_count + 0x4B0 * params.effect_count +
|
||||||
((params.voice_count * 256) | 0x40);
|
((params.voice_count * 256) | 0x40);
|
||||||
|
|
||||||
if (params.unknown_1c >= 1) {
|
if (params.performance_frame_count >= 1) {
|
||||||
output_sz = Common::AlignUp(((16 * params.sink_count + 16 * params.effect_count +
|
output_sz = Common::AlignUp(((16 * params.sink_count + 16 * params.effect_count +
|
||||||
16 * params.voice_count + 16) +
|
16 * params.voice_count + 16) +
|
||||||
0x658) *
|
0x658) *
|
||||||
(params.unknown_1c + 1) +
|
(params.performance_frame_count + 1) +
|
||||||
0xc0,
|
0xc0,
|
||||||
0x40) +
|
0x40) +
|
||||||
output_sz;
|
output_sz;
|
||||||
|
|
Loading…
Reference in a new issue