Audio: corregida la logica

This commit is contained in:
2025-06-13 18:57:48 +02:00
parent 5f52560ab5
commit 9b7da383ea
2 changed files with 57 additions and 30 deletions

View File

@@ -22,9 +22,7 @@ public:
void stopAllSounds(); // Detener todos los sonidos
// --- Configuración General ---
void enable() { enabled_ = true; } // Habilitar audio
void disable() { enabled_ = false; } // Deshabilitar audio
void enable(bool value) { enabled_ = value; } // Establecer estado general
void enable(bool value); // Establecer estado general
void toggleEnabled() { enabled_ = !enabled_; } // Alternar estado general
void applySettings(); // Aplica la configuración
@@ -45,15 +43,34 @@ public:
void setMusicVolume(int volume); // Ajustar volumen de música
private:
enum class MusicState
{
PLAYING,
PAUSED,
STOPPED,
};
struct Music
{
MusicState state; // Estado actual de la música (reproduciendo, detenido, en pausa)
std::string name; // Última pista de música reproducida
bool loop; // Indica si la última pista de música se debe reproducir en bucle
// Constructor para inicializar la música con valores predeterminados
Music() : state(MusicState::STOPPED), name(""), loop(false) {}
// Constructor para inicializar con valores específicos
Music(MusicState initState, const std::string &initName, bool initLoop)
: state(initState), name(initName), loop(initLoop) {}
};
Music music_;
// --- Variables de Estado ---
bool enabled_ = true; // Estado general del audio
bool sound_enabled_ = true; // Estado de los efectos de sonido
bool music_enabled_ = true; // Estado de la música
// -- Variables de backup ---
std::string music_name_; // Última pista de música que se ha reproducido
bool music_loop_; // Parametros de la última pista de música reproducida
// --- Patrón Singleton ---
Audio(); // Constructor privado
~Audio(); // Destructor privado