diff options
| author | 2021-01-10 22:09:56 -0700 | |
|---|---|---|
| committer | 2021-01-10 22:09:56 -0700 | |
| commit | 7a3c884e39fccfbb498b855080bffabc9ce2e7f1 (patch) | |
| tree | 5056f9406dec188439cb0deb87603498243a9412 /src/audio_core/voice_context.cpp | |
| parent | More forgetting... duh (diff) | |
| parent | Merge pull request #5229 from Morph1984/fullscreen-opt (diff) | |
| download | yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.gz yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.tar.xz yuzu-7a3c884e39fccfbb498b855080bffabc9ce2e7f1.zip | |
Merge remote-tracking branch 'upstream/master' into int-flags
Diffstat (limited to 'src/audio_core/voice_context.cpp')
| -rw-r--r-- | src/audio_core/voice_context.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/audio_core/voice_context.cpp b/src/audio_core/voice_context.cpp index 1d8f69844..867b8fc6b 100644 --- a/src/audio_core/voice_context.cpp +++ b/src/audio_core/voice_context.cpp | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | namespace AudioCore { | 9 | namespace AudioCore { |
| 10 | 10 | ||
| 11 | ServerVoiceChannelResource::ServerVoiceChannelResource(s32 id) : id(id) {} | 11 | ServerVoiceChannelResource::ServerVoiceChannelResource(s32 id_) : id(id_) {} |
| 12 | ServerVoiceChannelResource::~ServerVoiceChannelResource() = default; | 12 | ServerVoiceChannelResource::~ServerVoiceChannelResource() = default; |
| 13 | 13 | ||
| 14 | bool ServerVoiceChannelResource::InUse() const { | 14 | bool ServerVoiceChannelResource::InUse() const { |
| @@ -128,7 +128,10 @@ void ServerVoiceInfo::UpdateParameters(const VoiceInfo::InParams& voice_in, | |||
| 128 | in_params.wave_buffer_count = voice_in.wave_buffer_count; | 128 | in_params.wave_buffer_count = voice_in.wave_buffer_count; |
| 129 | in_params.wave_bufffer_head = voice_in.wave_buffer_head; | 129 | in_params.wave_bufffer_head = voice_in.wave_buffer_head; |
| 130 | if (behavior_info.IsFlushVoiceWaveBuffersSupported()) { | 130 | if (behavior_info.IsFlushVoiceWaveBuffersSupported()) { |
| 131 | in_params.wave_buffer_flush_request_count += voice_in.wave_buffer_flush_request_count; | 131 | const auto in_request_count = in_params.wave_buffer_flush_request_count; |
| 132 | const auto voice_request_count = voice_in.wave_buffer_flush_request_count; | ||
| 133 | in_params.wave_buffer_flush_request_count = | ||
| 134 | static_cast<u8>(in_request_count + voice_request_count); | ||
| 132 | } | 135 | } |
| 133 | in_params.mix_id = voice_in.mix_id; | 136 | in_params.mix_id = voice_in.mix_id; |
| 134 | if (behavior_info.IsSplitterSupported()) { | 137 | if (behavior_info.IsSplitterSupported()) { |
| @@ -206,7 +209,8 @@ void ServerVoiceInfo::UpdateWaveBuffers( | |||
| 206 | 209 | ||
| 207 | void ServerVoiceInfo::UpdateWaveBuffer(ServerWaveBuffer& out_wavebuffer, | 210 | void ServerVoiceInfo::UpdateWaveBuffer(ServerWaveBuffer& out_wavebuffer, |
| 208 | const WaveBuffer& in_wave_buffer, SampleFormat sample_format, | 211 | const WaveBuffer& in_wave_buffer, SampleFormat sample_format, |
| 209 | bool is_buffer_valid, BehaviorInfo& behavior_info) { | 212 | bool is_buffer_valid, |
| 213 | [[maybe_unused]] BehaviorInfo& behavior_info) { | ||
| 210 | if (!is_buffer_valid && out_wavebuffer.sent_to_dsp) { | 214 | if (!is_buffer_valid && out_wavebuffer.sent_to_dsp) { |
| 211 | out_wavebuffer.buffer_address = 0; | 215 | out_wavebuffer.buffer_address = 0; |
| 212 | out_wavebuffer.buffer_size = 0; | 216 | out_wavebuffer.buffer_size = 0; |
| @@ -397,7 +401,7 @@ bool ServerVoiceInfo::HasValidWaveBuffer(const VoiceState* state) const { | |||
| 397 | return std::find(valid_wb.begin(), valid_wb.end(), true) != valid_wb.end(); | 401 | return std::find(valid_wb.begin(), valid_wb.end(), true) != valid_wb.end(); |
| 398 | } | 402 | } |
| 399 | 403 | ||
| 400 | VoiceContext::VoiceContext(std::size_t voice_count) : voice_count(voice_count) { | 404 | VoiceContext::VoiceContext(std::size_t voice_count_) : voice_count{voice_count_} { |
| 401 | for (std::size_t i = 0; i < voice_count; i++) { | 405 | for (std::size_t i = 0; i < voice_count; i++) { |
| 402 | voice_channel_resources.emplace_back(static_cast<s32>(i)); | 406 | voice_channel_resources.emplace_back(static_cast<s32>(i)); |
| 403 | sorted_voice_info.push_back(&voice_info.emplace_back()); | 407 | sorted_voice_info.push_back(&voice_info.emplace_back()); |
| @@ -488,11 +492,11 @@ s32 VoiceContext::DecodePcm16(s32* output_buffer, ServerWaveBuffer* wave_buffer, | |||
| 488 | 492 | ||
| 489 | // Fast path | 493 | // Fast path |
| 490 | if (channel_count == 1) { | 494 | if (channel_count == 1) { |
| 491 | for (std::size_t i = 0; i < samples_processed; i++) { | 495 | for (std::ptrdiff_t i = 0; i < samples_processed; i++) { |
| 492 | output_buffer[i] = buffer_data[i]; | 496 | output_buffer[i] = buffer_data[i]; |
| 493 | } | 497 | } |
| 494 | } else { | 498 | } else { |
| 495 | for (std::size_t i = 0; i < samples_processed; i++) { | 499 | for (std::ptrdiff_t i = 0; i < samples_processed; i++) { |
| 496 | output_buffer[i] = buffer_data[i * channel_count + channel]; | 500 | output_buffer[i] = buffer_data[i * channel_count + channel]; |
| 497 | } | 501 | } |
| 498 | } | 502 | } |