mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Upgrade the achievement sound volume setting to the new format
This commit is contained in:
parent
62e01d37a5
commit
aad3aa02e7
7 changed files with 25 additions and 13 deletions
|
@ -758,6 +758,12 @@ static int DefaultReverbVolume() {
|
|||
return LegacyVolumeToNewVolume(g_Config.iLegacyReverbVolume, 200);
|
||||
}
|
||||
|
||||
static int DefaultAchievementVolume() {
|
||||
// NOTE: The old achievemnt volume was a straight percentage so it doesn't convert
|
||||
// the same as the others.
|
||||
return MultiplierToVolume100((float)g_Config.iLegacyAchievementVolume / 10.0f);
|
||||
}
|
||||
|
||||
static const ConfigSetting soundSettings[] = {
|
||||
ConfigSetting("Enable", &g_Config.bEnableSound, true, CfgFlag::PER_GAME),
|
||||
ConfigSetting("AudioBackend", &g_Config.iAudioBackend, 0, CfgFlag::PER_GAME),
|
||||
|
@ -767,12 +773,14 @@ static const ConfigSetting soundSettings[] = {
|
|||
// The default settings here are still relevant, they will get propagated into the new ones.
|
||||
ConfigSetting("GlobalVolume", &g_Config.iLegacyGameVolume, VOLUME_FULL, CfgFlag::PER_GAME | CfgFlag::DONT_SAVE),
|
||||
ConfigSetting("ReverbVolume", &g_Config.iLegacyReverbVolume, VOLUME_FULL, CfgFlag::PER_GAME | CfgFlag::DONT_SAVE),
|
||||
ConfigSetting("AchievementSoundVolume", &g_Config.iLegacyAchievementVolume, 6, CfgFlag::PER_GAME | CfgFlag::DONT_SAVE),
|
||||
|
||||
// Current volume settings.
|
||||
ConfigSetting("GameVolume", &g_Config.iGameVolume, &DefaultGameVolume, CfgFlag::PER_GAME),
|
||||
ConfigSetting("ReverbRelativeVolume", &g_Config.iReverbVolume, &DefaultReverbVolume, CfgFlag::PER_GAME),
|
||||
ConfigSetting("AltSpeedRelativeVolume", &g_Config.iAltSpeedVolume, VOLUMEHI_FULL, CfgFlag::PER_GAME),
|
||||
ConfigSetting("AchievementSoundVolume", &g_Config.iAchievementSoundVolume, 6, CfgFlag::PER_GAME),
|
||||
ConfigSetting("UIVolume", &g_Config.iUIVolume, 70, CfgFlag::DEFAULT),
|
||||
ConfigSetting("AchievementVolume", &g_Config.iAchievementVolume, &DefaultAchievementVolume, CfgFlag::PER_GAME),
|
||||
ConfigSetting("UIVolume", &g_Config.iUIVolume, 75, CfgFlag::DEFAULT),
|
||||
|
||||
ConfigSetting("AudioDevice", &g_Config.sAudioDevice, "", CfgFlag::DEFAULT),
|
||||
ConfigSetting("AutoAudioDevice", &g_Config.bAutoAudioDevice, true, CfgFlag::DEFAULT),
|
||||
|
|
|
@ -283,13 +283,14 @@ public:
|
|||
// Legacy volume settings, 0-10. These get auto-upgraded and should not be used.
|
||||
int iLegacyGameVolume;
|
||||
int iLegacyReverbVolume;
|
||||
int iAltSpeedVolume;
|
||||
int iAchievementSoundVolume;
|
||||
int iLegacyAchievementVolume;
|
||||
|
||||
// Newer volume settings, 0-100
|
||||
int iGameVolume;
|
||||
int iReverbVolume;
|
||||
int iUIVolume;
|
||||
int iAchievementVolume;
|
||||
int iAltSpeedVolume;
|
||||
|
||||
bool bExtraAudioBuffering; // For bluetooth
|
||||
std::string sAudioDevice;
|
||||
|
|
|
@ -534,9 +534,9 @@ void SoundEffectMixer::Mix(int16_t *buffer, int sz, int sampleRateHz) {
|
|||
}
|
||||
}
|
||||
|
||||
void SoundEffectMixer::Play(UI::UISound sfx, float volume) {
|
||||
void SoundEffectMixer::Play(UI::UISound sfx, float multiplier) {
|
||||
std::lock_guard<std::mutex> guard(mutex_);
|
||||
queue_.push_back(PlayInstance{ sfx, 0, (int)(255.0f * volume), false });
|
||||
queue_.push_back(PlayInstance{ sfx, 0, (int)(255.0f * multiplier), false });
|
||||
}
|
||||
|
||||
void SoundEffectMixer::UpdateSample(UI::UISound sound, Sample *sample) {
|
||||
|
|
|
@ -630,7 +630,7 @@ void EmuScreen::sendMessage(UIMessage message, const char *value) {
|
|||
}
|
||||
} else if (message == UIMessage::REQUEST_PLAY_SOUND) {
|
||||
if (g_Config.bAchievementsSoundEffects && g_Config.bEnableSound) {
|
||||
float achievementVolume = Volume10ToMultiplier(g_Config.iAchievementSoundVolume) * Volume100ToMultiplier(g_Config.iGameVolume);
|
||||
float achievementVolume = Volume100ToMultiplier(g_Config.iAchievementVolume) * Volume100ToMultiplier(g_Config.iGameVolume);
|
||||
// TODO: Handle this some nicer way.
|
||||
if (!strcmp(value, "achievement_unlocked")) {
|
||||
g_BackgroundAudio.SFX().Play(UI::UISound::ACHIEVEMENT_UNLOCKED, achievementVolume);
|
||||
|
|
|
@ -661,6 +661,7 @@ void GameSettingsScreen::CreateAudioSettings(UI::ViewGroup *audioSettings) {
|
|||
volume->SetZeroLabel(a->T("Mute"));
|
||||
|
||||
PopupSliderChoice *reverbVolume = audioSettings->Add(new PopupSliderChoice(&g_Config.iReverbVolume, VOLUME_OFF, 2 * VOLUMEHI_FULL, VOLUMEHI_FULL, a->T("Reverb volume"), screenManager()));
|
||||
reverbVolume->SetFormat("%d%%");
|
||||
reverbVolume->SetEnabledPtr(&g_Config.bEnableSound);
|
||||
reverbVolume->SetZeroLabel(a->T("Disabled"));
|
||||
|
||||
|
@ -669,7 +670,8 @@ void GameSettingsScreen::CreateAudioSettings(UI::ViewGroup *audioSettings) {
|
|||
altVolume->SetEnabledPtr(&g_Config.bEnableSound);
|
||||
altVolume->SetZeroLabel(a->T("Mute"));
|
||||
|
||||
PopupSliderChoice *achievementVolume = audioSettings->Add(new PopupSliderChoice(&g_Config.iAchievementSoundVolume, VOLUME_OFF, VOLUME_FULL, VOLUME_FULL, ac->T("Achievement sound volume"), screenManager()));
|
||||
PopupSliderChoice *achievementVolume = audioSettings->Add(new PopupSliderChoice(&g_Config.iAchievementVolume, VOLUME_OFF, VOLUMEHI_FULL, MultiplierToVolume100(0.6f), ac->T("Achievement sound volume"), screenManager()));
|
||||
achievementVolume->SetFormat("%d%%");
|
||||
achievementVolume->SetEnabledPtr(&g_Config.bEnableSound);
|
||||
achievementVolume->SetZeroLabel(a->T("Mute"));
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ AudioFileChooser::AudioFileChooser(RequesterToken token, std::string *value, std
|
|||
layoutParams_->height = ITEM_HEIGHT;
|
||||
}
|
||||
Add(new Choice(ImageID("I_PLAY"), new LinearLayoutParams(ITEM_HEIGHT, ITEM_HEIGHT)))->OnClick.Add([=](UI::EventParams &) {
|
||||
float achievementVolume = g_Config.iAchievementSoundVolume * 0.1f;
|
||||
float achievementVolume = Volume100ToMultiplier(g_Config.iAchievementVolume);
|
||||
g_BackgroundAudio.SFX().Play(sound_, achievementVolume);
|
||||
return UI::EVENT_DONE;
|
||||
});
|
||||
|
@ -363,9 +363,10 @@ void RetroAchievementsSettingsScreen::CreateCustomizeTab(UI::ViewGroup *viewGrou
|
|||
viewGroup->Add(new AudioFileChooser(GetRequesterToken(), &g_Config.sAchievementsUnlockAudioFile, ac->T("Achievement unlocked"), UISound::ACHIEVEMENT_UNLOCKED));
|
||||
viewGroup->Add(new AudioFileChooser(GetRequesterToken(), &g_Config.sAchievementsLeaderboardSubmitAudioFile, ac->T("Leaderboard score submission"), UISound::LEADERBOARD_SUBMITTED));
|
||||
}
|
||||
PopupSliderChoice *volume = viewGroup->Add(new PopupSliderChoice(&g_Config.iAchievementSoundVolume, VOLUME_OFF, VOLUME_FULL, VOLUME_FULL, ac->T("Achievement sound volume"), screenManager()));
|
||||
volume->SetEnabledPtr(&g_Config.bEnableSound);
|
||||
volume->SetZeroLabel(a->T("Mute"));
|
||||
PopupSliderChoice *achievementVolume = viewGroup->Add(new PopupSliderChoice(&g_Config.iAchievementVolume, VOLUME_OFF, VOLUMEHI_FULL, MultiplierToVolume100(0.6f), ac->T("Achievement sound volume"), screenManager()));
|
||||
achievementVolume->SetFormat("%d%%");
|
||||
achievementVolume->SetEnabledPtr(&g_Config.bEnableSound);
|
||||
achievementVolume->SetZeroLabel(a->T("Mute"));
|
||||
|
||||
static const char *positions[] = { "None", "Bottom Left", "Bottom Center", "Bottom Right", "Top Left", "Top Center", "Top Right", "Center Left", "Center Right" };
|
||||
|
||||
|
|
|
@ -528,7 +528,7 @@ int main(int argc, const char* argv[])
|
|||
g_Config.iFirmwareVersion = PSP_DEFAULT_FIRMWARE;
|
||||
g_Config.iPSPModel = PSP_MODEL_SLIM;
|
||||
g_Config.iGameVolume = VOLUMEHI_FULL;
|
||||
g_Config.iReverbVolume = VOLUME_FULL;
|
||||
g_Config.iReverbVolume = VOLUMEHI_FULL;
|
||||
g_Config.internalDataDirectory.clear();
|
||||
g_Config.bUseExperimentalAtrac = newAtrac;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue