ServiceMenu: treballant en el menu de audio: no aplica els canvis

This commit is contained in:
2025-06-05 14:39:32 +02:00
parent d4bb3109c7
commit 5af75f74d1
4 changed files with 22 additions and 4 deletions

View File

@@ -114,4 +114,12 @@ void Audio::setMusicVolume(int volume)
const int COVERTED_VOLUME = static_cast<int>((volume / 100.0) * 128);
JA_SetMusicVolume(COVERTED_VOLUME);
}
}
// Aplica la configuración
void Audio::applySettings()
{
setSoundVolume(options.audio.sound.volume);
setMusicVolume(options.audio.music.volume);
enable(options.audio.enabled);
}

View File

@@ -26,6 +26,7 @@ public:
void disable() { enabled_ = false; } // Deshabilitar audio
void enable(bool value) { enabled_ = value; } // Establecer estado general
void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general
void applySettings(); // Aplica la configuración
// --- Configuración de Sonidos ---
void enableSound() { sound_enabled_ = true; } // Habilitar sonidos

View File

@@ -214,7 +214,7 @@ bool setOptions(const std::string &var, const std::string &value)
}
else if (var == "audio.volume")
{
options.audio.volume = std::stoi(value);
options.audio.volume = std::clamp(std::stoi(value), 0, 100);
}
else if (var == "audio.music.enabled")
{
@@ -222,7 +222,7 @@ bool setOptions(const std::string &var, const std::string &value)
}
else if (var == "audio.music.volume")
{
options.audio.music.volume = std::stoi(value);
options.audio.music.volume = std::clamp(std::stoi(value), 0, 100);
}
else if (var == "audio.sound.enabled")
{
@@ -230,7 +230,7 @@ bool setOptions(const std::string &var, const std::string &value)
}
else if (var == "audio.sound.volume")
{
options.audio.sound.volume = std::stoi(value);
options.audio.sound.volume = std::clamp(std::stoi(value), 0, 100);
}
// Opciones de juego

View File

@@ -7,6 +7,7 @@
#include "resource.h"
#include "options.h"
#include "section.h" // Para Name, name, Options, options, AttractMode
#include "audio.h"
// Singleton
ServiceMenu *ServiceMenu::instance_ = nullptr;
@@ -163,15 +164,18 @@ void ServiceMenu::setSelectorLeft()
void ServiceMenu::acceptSelection()
{
// Carpeta
if (display_options_.at(selected_).type == ValueType::FOLDER)
{
previous_settings_group_ = current_settings_group_;
current_settings_group_ = display_options_.at(selected_).target_group;
updateMenu(current_settings_group_);
selected_ = 0;
return;
}
else if (display_options_.at(selected_).behavior == OptionBehavior::SELECT)
// Opción
if (display_options_.at(selected_).behavior == OptionBehavior::SELECT)
{
if (display_options_.at(selected_).caption == "RESET")
{
@@ -191,6 +195,7 @@ void ServiceMenu::acceptSelection()
section::options = section::Options::QUIT_WITH_CONTROLLER;
return;
}
return;
}
}
@@ -278,6 +283,10 @@ void ServiceMenu::applySettings(ServiceMenu::SettingsGroup group)
Screen::get()->applySettings();
break;
case SettingsGroup::AUDIO:
Audio::get()->applySettings();
break;
default:
break;
}