summaryrefslogtreecommitdiff
path: root/src/audio_core/voice_context.cpp
diff options
context:
space:
mode:
authorGravatar Levi2021-01-10 22:09:56 -0700
committerGravatar Levi2021-01-10 22:09:56 -0700
commit7a3c884e39fccfbb498b855080bffabc9ce2e7f1 (patch)
tree5056f9406dec188439cb0deb87603498243a9412 /src/audio_core/voice_context.cpp
parentMore forgetting... duh (diff)
parentMerge pull request #5229 from Morph1984/fullscreen-opt (diff)
downloadyuzu-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.cpp16
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
9namespace AudioCore { 9namespace AudioCore {
10 10
11ServerVoiceChannelResource::ServerVoiceChannelResource(s32 id) : id(id) {} 11ServerVoiceChannelResource::ServerVoiceChannelResource(s32 id_) : id(id_) {}
12ServerVoiceChannelResource::~ServerVoiceChannelResource() = default; 12ServerVoiceChannelResource::~ServerVoiceChannelResource() = default;
13 13
14bool ServerVoiceChannelResource::InUse() const { 14bool 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
207void ServerVoiceInfo::UpdateWaveBuffer(ServerWaveBuffer& out_wavebuffer, 210void 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
400VoiceContext::VoiceContext(std::size_t voice_count) : voice_count(voice_count) { 404VoiceContext::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 }