diff options
| author | 2020-09-25 00:28:35 -0400 | |
|---|---|---|
| committer | 2020-09-25 01:22:47 -0400 | |
| commit | 8b4ecf22d485958f69ecbd2fa4ca55d9ce393826 (patch) | |
| tree | 8f920f5ff338f8dcc38fea54c5f3df30c5d35c44 /src | |
| parent | effect_context: Make use of explicit where applicable (diff) | |
| download | yuzu-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.txt | 10 | ||||
| -rw-r--r-- | src/audio_core/command_generator.cpp | 12 | ||||
| -rw-r--r-- | src/audio_core/effect_context.cpp | 8 | ||||
| -rw-r--r-- | src/audio_core/effect_context.h | 8 | ||||
| -rw-r--r-- | src/audio_core/info_updater.cpp | 7 | ||||
| -rw-r--r-- | src/audio_core/mix_context.cpp | 4 | ||||
| -rw-r--r-- | src/audio_core/splitter_context.cpp | 6 | ||||
| -rw-r--r-- | src/audio_core/voice_context.cpp | 4 |
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 | ||
| 45 | create_target_directory_groups(audio_core) | 45 | create_target_directory_groups(audio_core) |
| 46 | 46 | ||
| 47 | if (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 | ) | ||
| 55 | endif() | ||
| 56 | |||
| 47 | target_link_libraries(audio_core PUBLIC common core) | 57 | target_link_libraries(audio_core PUBLIC common core) |
| 48 | target_link_libraries(audio_core PRIVATE SoundTouch) | 58 | target_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 | ||
| 187 | const VAddr EffectAuxInfo::GetSendInfo() const { | 187 | VAddr EffectAuxInfo::GetSendInfo() const { |
| 188 | return send_info; | 188 | return send_info; |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | const VAddr EffectAuxInfo::GetSendBuffer() const { | 191 | VAddr EffectAuxInfo::GetSendBuffer() const { |
| 192 | return send_buffer; | 192 | return send_buffer; |
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | const VAddr EffectAuxInfo::GetRecvInfo() const { | 195 | VAddr EffectAuxInfo::GetRecvInfo() const { |
| 196 | return recv_info; | 196 | return recv_info; |
| 197 | } | 197 | } |
| 198 | 198 | ||
| 199 | const VAddr EffectAuxInfo::GetRecvBuffer() const { | 199 | VAddr 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 | ||
| 265 | private: | 265 | private: |
| 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 | ||
| 66 | bool InfoUpdater::UpdateMemoryPools(std::vector<ServerMemoryPoolInfo>& memory_pool_info) { | 66 | bool 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 | ||
| 436 | void NodeStates::PushTsortResult(s32 index) { | 436 | void 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 | } |