summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2020-09-25 00:28:35 -0400
committerGravatar Lioncash2020-09-25 01:22:47 -0400
commit8b4ecf22d485958f69ecbd2fa4ca55d9ce393826 (patch)
tree8f920f5ff338f8dcc38fea54c5f3df30c5d35c44 /src
parenteffect_context: Make use of explicit where applicable (diff)
downloadyuzu-8b4ecf22d485958f69ecbd2fa4ca55d9ce393826.tar.gz
yuzu-8b4ecf22d485958f69ecbd2fa4ca55d9ce393826.tar.xz
yuzu-8b4ecf22d485958f69ecbd2fa4ca55d9ce393826.zip
audio_core: Resolve sign conversion warnings
While were at it, we can also enable sign conversion warnings and other common warnings as errors to prevent these from creeping back into the codebase.
Diffstat (limited to 'src')
-rw-r--r--src/audio_core/CMakeLists.txt10
-rw-r--r--src/audio_core/command_generator.cpp12
-rw-r--r--src/audio_core/effect_context.cpp8
-rw-r--r--src/audio_core/effect_context.h8
-rw-r--r--src/audio_core/info_updater.cpp7
-rw-r--r--src/audio_core/mix_context.cpp4
-rw-r--r--src/audio_core/splitter_context.cpp6
-rw-r--r--src/audio_core/voice_context.cpp4
8 files changed, 34 insertions, 25 deletions
diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt
index cb00ef60e..6a7075f73 100644
--- a/src/audio_core/CMakeLists.txt
+++ b/src/audio_core/CMakeLists.txt
@@ -44,6 +44,16 @@ add_library(audio_core STATIC
44 44
45create_target_directory_groups(audio_core) 45create_target_directory_groups(audio_core)
46 46
47if (NOT MSVC)
48 target_compile_options(audio_core PRIVATE
49 -Werror=ignored-qualifiers
50 -Werror=implicit-fallthrough
51 -Werror=reorder
52 -Werror=sign-compare
53 -Werror=unused-variable
54 )
55endif()
56
47target_link_libraries(audio_core PUBLIC common core) 57target_link_libraries(audio_core PUBLIC common core)
48target_link_libraries(audio_core PRIVATE SoundTouch) 58target_link_libraries(audio_core PRIVATE SoundTouch)
49 59
diff --git a/src/audio_core/command_generator.cpp b/src/audio_core/command_generator.cpp
index 8f7da49e6..7f2597257 100644
--- a/src/audio_core/command_generator.cpp
+++ b/src/audio_core/command_generator.cpp
@@ -152,7 +152,7 @@ void CommandGenerator::GenerateVoiceCommand(ServerVoiceInfo& voice_info) {
152 if (!destination_data->IsConfigured()) { 152 if (!destination_data->IsConfigured()) {
153 continue; 153 continue;
154 } 154 }
155 if (destination_data->GetMixId() >= mix_context.GetCount()) { 155 if (destination_data->GetMixId() >= static_cast<int>(mix_context.GetCount())) {
156 continue; 156 continue;
157 } 157 }
158 158
@@ -435,7 +435,7 @@ void CommandGenerator::GenerateAuxCommand(s32 mix_buffer_offset, EffectBase* inf
435 GetMixBuffer(output_index), worker_params.sample_count, offset, write_count); 435 GetMixBuffer(output_index), worker_params.sample_count, offset, write_count);
436 memory.WriteBlock(aux->GetRecvInfo(), &recv_info, sizeof(AuxInfoDSP)); 436 memory.WriteBlock(aux->GetRecvInfo(), &recv_info, sizeof(AuxInfoDSP));
437 437
438 if (samples_read != worker_params.sample_count && 438 if (samples_read != static_cast<int>(worker_params.sample_count) &&
439 samples_read <= params.sample_count) { 439 samples_read <= params.sample_count) {
440 std::memset(GetMixBuffer(output_index), 0, params.sample_count - samples_read); 440 std::memset(GetMixBuffer(output_index), 0, params.sample_count - samples_read);
441 } 441 }
@@ -611,7 +611,8 @@ void CommandGenerator::GenerateMixCommands(ServerMixInfo& mix_info) {
611 const auto& dest_mix = mix_context.GetInfo(destination_data->GetMixId()); 611 const auto& dest_mix = mix_context.GetInfo(destination_data->GetMixId());
612 const auto& dest_in_params = dest_mix.GetInParams(); 612 const auto& dest_in_params = dest_mix.GetInParams();
613 const auto mix_index = (base - 1) % in_params.buffer_count + in_params.buffer_offset; 613 const auto mix_index = (base - 1) % in_params.buffer_count + in_params.buffer_offset;
614 for (std::size_t i = 0; i < dest_in_params.buffer_count; i++) { 614 for (std::size_t i = 0; i < static_cast<std::size_t>(dest_in_params.buffer_count);
615 i++) {
615 const auto mixed_volume = in_params.volume * destination_data->GetMixVolume(i); 616 const auto mixed_volume = in_params.volume * destination_data->GetMixVolume(i);
616 if (mixed_volume != 0.0f) { 617 if (mixed_volume != 0.0f) {
617 GenerateMixCommand(dest_in_params.buffer_offset + i, mix_index, mixed_volume, 618 GenerateMixCommand(dest_in_params.buffer_offset + i, mix_index, mixed_volume,
@@ -704,7 +705,7 @@ s32 CommandGenerator::DecodePcm16(ServerVoiceInfo& voice_info, VoiceState& dsp_s
704 std::vector<s16> buffer(samples_processed * channel_count); 705 std::vector<s16> buffer(samples_processed * channel_count);
705 memory.ReadBlock(buffer_pos, buffer.data(), buffer.size() * sizeof(s16)); 706 memory.ReadBlock(buffer_pos, buffer.data(), buffer.size() * sizeof(s16));
706 707
707 for (std::size_t i = 0; i < samples_processed; i++) { 708 for (std::size_t i = 0; i < static_cast<std::size_t>(samples_processed); i++) {
708 sample_buffer[mix_offset + i] = buffer[i * channel_count + channel]; 709 sample_buffer[mix_offset + i] = buffer[i * channel_count + channel];
709 } 710 }
710 } 711 }
@@ -789,7 +790,7 @@ s32 CommandGenerator::DecodeAdpcm(ServerVoiceInfo& voice_info, VoiceState& dsp_s
789 position_in_frame += 2; 790 position_in_frame += 2;
790 791
791 // Decode entire frame 792 // Decode entire frame
792 if (remaining_samples >= SAMPLES_PER_FRAME) { 793 if (remaining_samples >= static_cast<int>(SAMPLES_PER_FRAME)) {
793 for (std::size_t i = 0; i < SAMPLES_PER_FRAME / 2; i++) { 794 for (std::size_t i = 0; i < SAMPLES_PER_FRAME / 2; i++) {
794 795
795 // Sample 1 796 // Sample 1
@@ -866,7 +867,6 @@ void CommandGenerator::DecodeFromWaveBuffers(ServerVoiceInfo& voice_info, s32* o
866 const auto resample_rate = static_cast<s32>( 867 const auto resample_rate = static_cast<s32>(
867 static_cast<float>(in_params.sample_rate) / static_cast<float>(target_sample_rate) * 868 static_cast<float>(in_params.sample_rate) / static_cast<float>(target_sample_rate) *
868 static_cast<float>(static_cast<s32>(in_params.pitch * 32768.0f))); 869 static_cast<float>(static_cast<s32>(in_params.pitch * 32768.0f)));
869 auto* output_base = output;
870 if (dsp_state.fraction + sample_count * resample_rate > 870 if (dsp_state.fraction + sample_count * resample_rate >
871 static_cast<s32>(SCALED_MIX_BUFFER_SIZE - 4ULL)) { 871 static_cast<s32>(SCALED_MIX_BUFFER_SIZE - 4ULL)) {
872 return; 872 return;
diff --git a/src/audio_core/effect_context.cpp b/src/audio_core/effect_context.cpp
index adfec3df5..4d9cdf524 100644
--- a/src/audio_core/effect_context.cpp
+++ b/src/audio_core/effect_context.cpp
@@ -184,19 +184,19 @@ void EffectAuxInfo::UpdateForCommandGeneration() {
184 } 184 }
185} 185}
186 186
187const VAddr EffectAuxInfo::GetSendInfo() const { 187VAddr EffectAuxInfo::GetSendInfo() const {
188 return send_info; 188 return send_info;
189} 189}
190 190
191const VAddr EffectAuxInfo::GetSendBuffer() const { 191VAddr EffectAuxInfo::GetSendBuffer() const {
192 return send_buffer; 192 return send_buffer;
193} 193}
194 194
195const VAddr EffectAuxInfo::GetRecvInfo() const { 195VAddr EffectAuxInfo::GetRecvInfo() const {
196 return recv_info; 196 return recv_info;
197} 197}
198 198
199const VAddr EffectAuxInfo::GetRecvBuffer() const { 199VAddr EffectAuxInfo::GetRecvBuffer() const {
200 return recv_buffer; 200 return recv_buffer;
201} 201}
202 202
diff --git a/src/audio_core/effect_context.h b/src/audio_core/effect_context.h
index c2d2aa3ba..2c4ce53ef 100644
--- a/src/audio_core/effect_context.h
+++ b/src/audio_core/effect_context.h
@@ -257,10 +257,10 @@ public:
257 257
258 void Update(EffectInfo::InParams& in_params) override; 258 void Update(EffectInfo::InParams& in_params) override;
259 void UpdateForCommandGeneration() override; 259 void UpdateForCommandGeneration() override;
260 const VAddr GetSendInfo() const; 260 VAddr GetSendInfo() const;
261 const VAddr GetSendBuffer() const; 261 VAddr GetSendBuffer() const;
262 const VAddr GetRecvInfo() const; 262 VAddr GetRecvInfo() const;
263 const VAddr GetRecvBuffer() const; 263 VAddr GetRecvBuffer() const;
264 264
265private: 265private:
266 VAddr send_info{}; 266 VAddr send_info{};
diff --git a/src/audio_core/info_updater.cpp b/src/audio_core/info_updater.cpp
index f53ce21a5..2940e53a9 100644
--- a/src/audio_core/info_updater.cpp
+++ b/src/audio_core/info_updater.cpp
@@ -64,7 +64,6 @@ bool InfoUpdater::UpdateBehaviorInfo(BehaviorInfo& in_behavior_info) {
64} 64}
65 65
66bool InfoUpdater::UpdateMemoryPools(std::vector<ServerMemoryPoolInfo>& memory_pool_info) { 66bool InfoUpdater::UpdateMemoryPools(std::vector<ServerMemoryPoolInfo>& memory_pool_info) {
67 const auto force_mapping = behavior_info.IsMemoryPoolForceMappingEnabled();
68 const auto memory_pool_count = memory_pool_info.size(); 67 const auto memory_pool_count = memory_pool_info.size();
69 const auto total_memory_pool_in = sizeof(ServerMemoryPoolInfo::InParams) * memory_pool_count; 68 const auto total_memory_pool_in = sizeof(ServerMemoryPoolInfo::InParams) * memory_pool_count;
70 const auto total_memory_pool_out = sizeof(ServerMemoryPoolInfo::OutParams) * memory_pool_count; 69 const auto total_memory_pool_out = sizeof(ServerMemoryPoolInfo::OutParams) * memory_pool_count;
@@ -174,7 +173,7 @@ bool InfoUpdater::UpdateVoices(VoiceContext& voice_context,
174 } 173 }
175 // Voice states for each channel 174 // Voice states for each channel
176 std::array<VoiceState*, AudioCommon::MAX_CHANNEL_COUNT> voice_states{}; 175 std::array<VoiceState*, AudioCommon::MAX_CHANNEL_COUNT> voice_states{};
177 ASSERT(in_params.id < voice_count); 176 ASSERT(static_cast<std::size_t>(in_params.id) < voice_count);
178 177
179 // Grab our current voice info 178 // Grab our current voice info
180 auto& voice_info = voice_context.GetInfo(static_cast<std::size_t>(in_params.id)); 179 auto& voice_info = voice_context.GetInfo(static_cast<std::size_t>(in_params.id));
@@ -352,8 +351,8 @@ ResultCode InfoUpdater::UpdateMixes(MixContext& mix_context, std::size_t mix_buf
352 for (std::size_t i = 0; i < mix_count; i++) { 351 for (std::size_t i = 0; i < mix_count; i++) {
353 const auto& in = mix_in_params[i]; 352 const auto& in = mix_in_params[i];
354 total_buffer_count += in.buffer_count; 353 total_buffer_count += in.buffer_count;
355 if (in.dest_mix_id > mix_count && in.dest_mix_id != AudioCommon::NO_MIX && 354 if (static_cast<std::size_t>(in.dest_mix_id) > mix_count &&
356 in.mix_id != AudioCommon::FINAL_MIX) { 355 in.dest_mix_id != AudioCommon::NO_MIX && in.mix_id != AudioCommon::FINAL_MIX) {
357 LOG_ERROR( 356 LOG_ERROR(
358 Audio, 357 Audio,
359 "Invalid mix destination, mix_id={:X}, dest_mix_id={:X}, mix_buffer_count={:X}", 358 "Invalid mix destination, mix_id={:X}, dest_mix_id={:X}, mix_buffer_count={:X}",
diff --git a/src/audio_core/mix_context.cpp b/src/audio_core/mix_context.cpp
index 042891490..4bca72eb0 100644
--- a/src/audio_core/mix_context.cpp
+++ b/src/audio_core/mix_context.cpp
@@ -53,7 +53,7 @@ void MixContext::UpdateDistancesFromFinalMix() {
53 auto mix_id = in_params.mix_id; 53 auto mix_id = in_params.mix_id;
54 // Needs to be referenced out of scope 54 // Needs to be referenced out of scope
55 s32 distance_to_final_mix{AudioCommon::FINAL_MIX}; 55 s32 distance_to_final_mix{AudioCommon::FINAL_MIX};
56 for (; distance_to_final_mix < info_count; distance_to_final_mix++) { 56 for (; distance_to_final_mix < static_cast<s32>(info_count); distance_to_final_mix++) {
57 if (mix_id == AudioCommon::FINAL_MIX) { 57 if (mix_id == AudioCommon::FINAL_MIX) {
58 // If we're at the final mix, we're done 58 // If we're at the final mix, we're done
59 break; 59 break;
@@ -77,7 +77,7 @@ void MixContext::UpdateDistancesFromFinalMix() {
77 } 77 }
78 78
79 // If we're out of range for our distance, mark it as no final mix 79 // If we're out of range for our distance, mark it as no final mix
80 if (distance_to_final_mix >= info_count) { 80 if (distance_to_final_mix >= static_cast<s32>(info_count)) {
81 distance_to_final_mix = AudioCommon::NO_FINAL_MIX; 81 distance_to_final_mix = AudioCommon::NO_FINAL_MIX;
82 } 82 }
83 83
diff --git a/src/audio_core/splitter_context.cpp b/src/audio_core/splitter_context.cpp
index 79bb2f516..f21b53147 100644
--- a/src/audio_core/splitter_context.cpp
+++ b/src/audio_core/splitter_context.cpp
@@ -306,7 +306,7 @@ bool SplitterContext::UpdateInfo(const std::vector<u8>& input, std::size_t& inpu
306 break; 306 break;
307 } 307 }
308 308
309 if (header.send_id < 0 || header.send_id > info_count) { 309 if (header.send_id < 0 || static_cast<std::size_t>(header.send_id) > info_count) {
310 LOG_ERROR(Audio, "Bad splitter data id"); 310 LOG_ERROR(Audio, "Bad splitter data id");
311 break; 311 break;
312 } 312 }
@@ -348,7 +348,7 @@ bool SplitterContext::UpdateData(const std::vector<u8>& input, std::size_t& inpu
348 break; 348 break;
349 } 349 }
350 350
351 if (header.splitter_id < 0 || header.splitter_id > data_count) { 351 if (header.splitter_id < 0 || static_cast<std::size_t>(header.splitter_id) > data_count) {
352 LOG_ERROR(Audio, "Bad splitter data id"); 352 LOG_ERROR(Audio, "Bad splitter data id");
353 break; 353 break;
354 } 354 }
@@ -434,7 +434,7 @@ const std::vector<s32>& NodeStates::GetIndexList() const {
434} 434}
435 435
436void NodeStates::PushTsortResult(s32 index) { 436void NodeStates::PushTsortResult(s32 index) {
437 ASSERT(index < node_count); 437 ASSERT(index < static_cast<s32>(node_count));
438 index_list[index_pos++] = index; 438 index_list[index_pos++] = index;
439} 439}
440 440
diff --git a/src/audio_core/voice_context.cpp b/src/audio_core/voice_context.cpp
index 1d8f69844..863ac9267 100644
--- a/src/audio_core/voice_context.cpp
+++ b/src/audio_core/voice_context.cpp
@@ -488,11 +488,11 @@ s32 VoiceContext::DecodePcm16(s32* output_buffer, ServerWaveBuffer* wave_buffer,
488 488
489 // Fast path 489 // Fast path
490 if (channel_count == 1) { 490 if (channel_count == 1) {
491 for (std::size_t i = 0; i < samples_processed; i++) { 491 for (std::ptrdiff_t i = 0; i < samples_processed; i++) {
492 output_buffer[i] = buffer_data[i]; 492 output_buffer[i] = buffer_data[i];
493 } 493 }
494 } else { 494 } else {
495 for (std::size_t i = 0; i < samples_processed; i++) { 495 for (std::ptrdiff_t i = 0; i < samples_processed; i++) {
496 output_buffer[i] = buffer_data[i * channel_count + channel]; 496 output_buffer[i] = buffer_data[i * channel_count + channel];
497 } 497 }
498 } 498 }