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); const int COVERTED_VOLUME = static_cast<int>((volume / 100.0) * 128);
JA_SetMusicVolume(COVERTED_VOLUME); 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 disable() { enabled_ = false; } // Deshabilitar audio
void enable(bool value) { enabled_ = value; } // Establecer estado general void enable(bool value) { enabled_ = value; } // Establecer estado general
void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general
void applySettings(); // Aplica la configuración
// --- Configuración de Sonidos --- // --- Configuración de Sonidos ---
void enableSound() { sound_enabled_ = true; } // Habilitar 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") 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") 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") 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") 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") 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 // Opciones de juego

View File

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