From 2d1738f20a960fd9d9c00f9e4887d89604d21aeb Mon Sep 17 00:00:00 2001 From: Sergio Date: Fri, 18 Jul 2025 21:40:37 +0200 Subject: [PATCH] clang-tidy: audio --- source/audio.cpp | 28 ++++++++++++++-------------- source/audio.h | 36 +++++++++++++++++++++--------------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/source/audio.cpp b/source/audio.cpp index a897397..39a0032 100644 --- a/source/audio.cpp +++ b/source/audio.cpp @@ -18,7 +18,7 @@ void Audio::init() { Audio::instance_ = new Audio(); } void Audio::destroy() { delete Audio::instance_; } // Obtiene la instancia -Audio *Audio::get() { return Audio::instance_; } +auto Audio::get() -> Audio * { return Audio::instance_; } // Constructor Audio::Audio() { initSDLAudio(); } @@ -29,7 +29,7 @@ Audio::~Audio() { JA_Quit(); } // Reproduce la música void Audio::playMusic(const std::string &name, const int loop) { music_.name = name; - music_.loop = loop; + music_.loop = (loop != 0); if (music_enabled_ && music_.state != MusicState::PLAYING) { JA_PlayMusic(Resource::get()->getMusic(name), loop); @@ -54,40 +54,40 @@ void Audio::stopMusic() { } // Reproduce un sonido -void Audio::playSound(const std::string &name, Group group) { +void Audio::playSound(const std::string &name, Group group) const { if (sound_enabled_) { JA_PlaySound(Resource::get()->getSound(name), 0, static_cast(group)); } } // Detiene todos los sonidos -void Audio::stopAllSounds() { +void Audio::stopAllSounds() const { if (sound_enabled_) { JA_StopChannel(-1); } } // Realiza un fundido de salida de la música -void Audio::fadeOutMusic(int milliseconds) { +void Audio::fadeOutMusic(int milliseconds) const { if (music_enabled_) { JA_FadeOutMusic(milliseconds); } } // Establece el volumen de los sonidos -void Audio::setSoundVolume(int sound_volume, Group group) { +void Audio::setSoundVolume(int sound_volume, Group group) const { if (sound_enabled_) { - sound_volume = std::clamp(sound_volume, 0, 100); - const float CONVERTED_VOLUME = (sound_volume / 100.0f) * (Options::audio.volume / 100.0f); + sound_volume = std::clamp(sound_volume, MIN_VOLUME_, MAX_VOLUME_); + const float CONVERTED_VOLUME = (sound_volume / 100.0F) * (Options::audio.volume / 100.0F); JA_SetSoundVolume(CONVERTED_VOLUME, static_cast(group)); } } // Establece el volumen de la música -void Audio::setMusicVolume(int music_volume) { +void Audio::setMusicVolume(int music_volume) const { if (music_enabled_) { - music_volume = std::clamp(music_volume, 0, 100); - const float CONVERTED_VOLUME = (music_volume / 100.0f) * (Options::audio.volume / 100.0f); + music_volume = std::clamp(music_volume, MIN_VOLUME_, MAX_VOLUME_); + const float CONVERTED_VOLUME = (music_volume / 100.0F) * (Options::audio.volume / 100.0F); JA_SetMusicVolume(CONVERTED_VOLUME); } } @@ -101,8 +101,8 @@ void Audio::applySettings() { void Audio::enable(bool value) { enabled_ = value; - setSoundVolume(enabled_ ? Options::audio.sound.volume : 0); - setMusicVolume(enabled_ ? Options::audio.music.volume : 0); + setSoundVolume(enabled_ ? Options::audio.sound.volume : MIN_VOLUME_); + setMusicVolume(enabled_ ? Options::audio.music.volume : MIN_VOLUME_); } // Inicializa SDL Audio @@ -112,7 +112,7 @@ void Audio::initSDLAudio() { } else { SDL_LogInfo(SDL_LOG_CATEGORY_TEST, "\n** SDL_AUDIO: INITIALIZING\n"); - JA_Init(48000, SDL_AUDIO_S16LE, 2); + JA_Init(FREQUENCY_, SDL_AUDIO_S16LE, 2); enable(Options::audio.enabled); SDL_LogInfo(SDL_LOG_CATEGORY_TEST, "** SDL_AUDIO: INITIALIZATION COMPLETE\n"); diff --git a/source/audio.h b/source/audio.h index 8e945b1..f4593f3 100644 --- a/source/audio.h +++ b/source/audio.h @@ -1,6 +1,7 @@ #pragma once #include +#include // Clase Audio: gestor de audio (singleton) class Audio { @@ -11,20 +12,27 @@ class Audio { INTERFACE = 1 }; + // --- Constantes --- + static constexpr int MAX_VOLUME_ = 100; + static constexpr int MIN_VOLUME_ = 0; + static constexpr int FREQUENCY_ = 48000; + // --- Métodos de singleton --- - static void init(); // Inicializa el objeto Audio - static void destroy(); // Libera el objeto Audio - static Audio *get(); // Obtiene el puntero al objeto Audio + static void init(); // Inicializa el objeto Audio + static void destroy(); // Libera el objeto Audio + static auto get() -> Audio *; // Obtiene el puntero al objeto Audio + Audio(const Audio &) = delete; // Evitar copia + auto operator=(const Audio &) -> Audio & = delete; // Evitar asignación // --- Control de Música --- void playMusic(const std::string &name, int loop = -1); // Reproducir música en bucle void pauseMusic(); // Pausar reproducción de música void stopMusic(); // Detener completamente la música - void fadeOutMusic(int milliseconds); // Fundido de salida de la música + void fadeOutMusic(int milliseconds) const; // Fundido de salida de la música // --- Control de Sonidos --- - void playSound(const std::string &name, Group group = Group::GAME); // Reproducir sonido puntual - void stopAllSounds(); // Detener todos los sonidos + void playSound(const std::string &name, Group group = Group::GAME) const; // Reproducir sonido puntual + void stopAllSounds() const; // Detener todos los sonidos // --- Configuración General --- void enable(bool value); // Establecer estado general @@ -44,8 +52,8 @@ class Audio { void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música // --- Control de Volumen --- - void setSoundVolume(int volume, Group group = Group::ALL); // Ajustar volumen de efectos - void setMusicVolume(int volume); // Ajustar volumen de música + void setSoundVolume(int volume, Group group = Group::ALL) const; // Ajustar volumen de efectos + void setMusicVolume(int volume) const; // Ajustar volumen de música private: enum class MusicState { @@ -60,11 +68,11 @@ class Audio { 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) {} + Music() : state(MusicState::STOPPED), 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(MusicState initState, std::string initName, bool initLoop) + : state(initState), name(std::move(initName)), loop(initLoop) {} }; Music music_; @@ -78,10 +86,8 @@ class Audio { void initSDLAudio(); // --- Patrón Singleton --- - Audio(); // Constructor privado - ~Audio(); // Destructor privado - Audio(const Audio &) = delete; // Evitar copia - Audio &operator=(const Audio &) = delete; // Evitar asignación + Audio(); // Constructor privado + ~Audio(); // Destructor privado // --- Singleton --- static Audio *instance_;