From 156be224f9d73459a21f78654ac7a736563c7545 Mon Sep 17 00:00:00 2001 From: pizza2004 Date: Mon, 3 Aug 2020 17:51:12 -0600 Subject: [PATCH] Close #12399: Refactor MIXER_GROUP to strong enum (#12531) --- src/openrct2-ui/audio/AudioChannel.cpp | 6 +++--- src/openrct2-ui/audio/AudioMixer.cpp | 9 +++++---- src/openrct2/audio/Audio.cpp | 2 +- src/openrct2/audio/AudioChannel.h | 5 +++-- src/openrct2/audio/AudioMixer.cpp | 4 ++-- src/openrct2/audio/AudioMixer.h | 16 ++++++++-------- src/openrct2/peep/Peep.cpp | 2 +- src/openrct2/ride/Ride.cpp | 2 +- 8 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/openrct2-ui/audio/AudioChannel.cpp b/src/openrct2-ui/audio/AudioChannel.cpp index 7c0c0519a8..8a356f1904 100644 --- a/src/openrct2-ui/audio/AudioChannel.cpp +++ b/src/openrct2-ui/audio/AudioChannel.cpp @@ -26,7 +26,7 @@ namespace OpenRCT2::Audio AudioSource_* _source = nullptr; SpeexResamplerState* _resampler = nullptr; - int32_t _group = MIXER_GROUP_SOUND; + MixerGroup _group = MixerGroup::Sound; double _rate = 0; uint64_t _offset = 0; int32_t _loop = 0; @@ -80,12 +80,12 @@ namespace OpenRCT2::Audio _resampler = value; } - [[nodiscard]] int32_t GetGroup() const override + [[nodiscard]] MixerGroup GetGroup() const override { return _group; } - void SetGroup(int32_t group) override + void SetGroup(MixerGroup group) override { _group = group; } diff --git a/src/openrct2-ui/audio/AudioMixer.cpp b/src/openrct2-ui/audio/AudioMixer.cpp index 8a364d6b99..0da4428bbf 100644 --- a/src/openrct2-ui/audio/AudioMixer.cpp +++ b/src/openrct2-ui/audio/AudioMixer.cpp @@ -219,8 +219,8 @@ namespace OpenRCT2::Audio while (it != _channels.end()) { auto channel = *it; - int32_t group = channel->GetGroup(); - if ((group != MIXER_GROUP_SOUND || gConfigSound.sound_enabled) && gConfigSound.master_sound_enabled + MixerGroup group = channel->GetGroup(); + if ((group != MixerGroup::Sound || gConfigSound.sound_enabled) && gConfigSound.master_sound_enabled && gConfigSound.master_volume != 0) { MixChannel(channel, dst, length); @@ -386,7 +386,7 @@ namespace OpenRCT2::Audio switch (channel->GetGroup()) { - case MIXER_GROUP_SOUND: + case MixerGroup::Sound: volumeAdjust *= _adjustSoundVolume; // Cap sound volume on title screen so music is more audible @@ -395,7 +395,8 @@ namespace OpenRCT2::Audio volumeAdjust = std::min(volumeAdjust, 0.75f); } break; - case MIXER_GROUP_RIDE_MUSIC: + case MixerGroup::RideMusic: + case MixerGroup::TitleMusic: volumeAdjust *= _adjustMusicVolume; break; } diff --git a/src/openrct2/audio/Audio.cpp b/src/openrct2/audio/Audio.cpp index a23c26b946..c0406ae397 100644 --- a/src/openrct2/audio/Audio.cpp +++ b/src/openrct2/audio/Audio.cpp @@ -283,7 +283,7 @@ void audio_start_title_music() gTitleMusicChannel = Mixer_Play_Music(pathId, MIXER_LOOP_INFINITE, true); if (gTitleMusicChannel != nullptr) { - Mixer_Channel_SetGroup(gTitleMusicChannel, MIXER_GROUP_TITLE_MUSIC); + Mixer_Channel_SetGroup(gTitleMusicChannel, OpenRCT2::Audio::MixerGroup::TitleMusic); } } diff --git a/src/openrct2/audio/AudioChannel.h b/src/openrct2/audio/AudioChannel.h index b732b5e89b..0470e82263 100644 --- a/src/openrct2/audio/AudioChannel.h +++ b/src/openrct2/audio/AudioChannel.h @@ -10,6 +10,7 @@ #pragma once #include "../common.h" +#include "AudioMixer.h" namespace OpenRCT2::Audio { @@ -25,8 +26,8 @@ namespace OpenRCT2::Audio virtual IAudioSource* GetSource() const abstract; - virtual int32_t GetGroup() const abstract; - virtual void SetGroup(int32_t group) abstract; + virtual MixerGroup GetGroup() const abstract; + virtual void SetGroup(MixerGroup group) abstract; virtual double GetRate() const abstract; virtual void SetRate(double rate) abstract; diff --git a/src/openrct2/audio/AudioMixer.cpp b/src/openrct2/audio/AudioMixer.cpp index 670373df50..0e96410ad8 100644 --- a/src/openrct2/audio/AudioMixer.cpp +++ b/src/openrct2/audio/AudioMixer.cpp @@ -124,7 +124,7 @@ int32_t Mixer_Channel_SetOffset(void* channel, uint64_t offset) return static_cast(channel)->SetOffset(offset); } -void Mixer_Channel_SetGroup(void* channel, int32_t group) +void Mixer_Channel_SetGroup(void* channel, MixerGroup group) { static_cast(channel)->SetGroup(group); } @@ -161,7 +161,7 @@ void* Mixer_Play_Music(int32_t pathId, int32_t loop, int32_t streaming) } if (channel != nullptr) { - channel->SetGroup(MIXER_GROUP_RIDE_MUSIC); + channel->SetGroup(MixerGroup::RideMusic); } return channel; } diff --git a/src/openrct2/audio/AudioMixer.h b/src/openrct2/audio/AudioMixer.h index d225894683..a97d071136 100644 --- a/src/openrct2/audio/AudioMixer.h +++ b/src/openrct2/audio/AudioMixer.h @@ -17,15 +17,15 @@ enum class SoundId : uint8_t; -enum MIXER_GROUP -{ - MIXER_GROUP_SOUND, - MIXER_GROUP_RIDE_MUSIC, - MIXER_GROUP_TITLE_MUSIC, -}; - namespace OpenRCT2::Audio { + enum class MixerGroup : int32_t + { + Sound, + RideMusic, + TitleMusic, + }; + interface IAudioSource; interface IAudioChannel; @@ -66,7 +66,7 @@ void Mixer_Channel_Rate(void* channel, double rate); int32_t Mixer_Channel_IsPlaying(void* channel); uint64_t Mixer_Channel_GetOffset(void* channel); int32_t Mixer_Channel_SetOffset(void* channel, uint64_t offset); -void Mixer_Channel_SetGroup(void* channel, int32_t group); +void Mixer_Channel_SetGroup(void* channel, OpenRCT2::Audio::MixerGroup group); void* Mixer_Play_Music(int32_t pathId, int32_t loop, int32_t streaming); void Mixer_SetVolume(float volume); diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 0a001a0a6e..e6eeb720eb 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -1395,7 +1395,7 @@ void peep_update_crowd_noise() _crowdSoundChannel = Mixer_Play_Music(PATH_ID_CSS2, MIXER_LOOP_INFINITE, false); if (_crowdSoundChannel != nullptr) { - Mixer_Channel_SetGroup(_crowdSoundChannel, MIXER_GROUP_SOUND); + Mixer_Channel_SetGroup(_crowdSoundChannel, OpenRCT2::Audio::MixerGroup::Sound); } } if (_crowdSoundChannel != nullptr) diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index d323e3099f..f1f05a3233 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -3704,7 +3704,7 @@ void ride_music_update_final() // Move circus music to the sound mixer group if (ride_music_info->path_id == PATH_ID_CSS24) { - Mixer_Channel_SetGroup(ride_music_3->sound_channel, MIXER_GROUP_SOUND); + Mixer_Channel_SetGroup(ride_music_3->sound_channel, Audio::MixerGroup::Sound); } } return;