clang-tidy: audio

This commit is contained in:
2025-07-18 21:40:37 +02:00
parent 46932221f9
commit 2d1738f20a
2 changed files with 35 additions and 29 deletions

View File

@@ -18,7 +18,7 @@ void Audio::init() { Audio::instance_ = new Audio(); }
void Audio::destroy() { delete Audio::instance_; } void Audio::destroy() { delete Audio::instance_; }
// Obtiene la instancia // Obtiene la instancia
Audio *Audio::get() { return Audio::instance_; } auto Audio::get() -> Audio * { return Audio::instance_; }
// Constructor // Constructor
Audio::Audio() { initSDLAudio(); } Audio::Audio() { initSDLAudio(); }
@@ -29,7 +29,7 @@ Audio::~Audio() { JA_Quit(); }
// Reproduce la música // Reproduce la música
void Audio::playMusic(const std::string &name, const int loop) { void Audio::playMusic(const std::string &name, const int loop) {
music_.name = name; music_.name = name;
music_.loop = loop; music_.loop = (loop != 0);
if (music_enabled_ && music_.state != MusicState::PLAYING) { if (music_enabled_ && music_.state != MusicState::PLAYING) {
JA_PlayMusic(Resource::get()->getMusic(name), loop); JA_PlayMusic(Resource::get()->getMusic(name), loop);
@@ -54,40 +54,40 @@ void Audio::stopMusic() {
} }
// Reproduce un sonido // 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_) { if (sound_enabled_) {
JA_PlaySound(Resource::get()->getSound(name), 0, static_cast<int>(group)); JA_PlaySound(Resource::get()->getSound(name), 0, static_cast<int>(group));
} }
} }
// Detiene todos los sonidos // Detiene todos los sonidos
void Audio::stopAllSounds() { void Audio::stopAllSounds() const {
if (sound_enabled_) { if (sound_enabled_) {
JA_StopChannel(-1); JA_StopChannel(-1);
} }
} }
// Realiza un fundido de salida de la música // Realiza un fundido de salida de la música
void Audio::fadeOutMusic(int milliseconds) { void Audio::fadeOutMusic(int milliseconds) const {
if (music_enabled_) { if (music_enabled_) {
JA_FadeOutMusic(milliseconds); JA_FadeOutMusic(milliseconds);
} }
} }
// Establece el volumen de los sonidos // 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_) { if (sound_enabled_) {
sound_volume = std::clamp(sound_volume, 0, 100); sound_volume = std::clamp(sound_volume, MIN_VOLUME_, MAX_VOLUME_);
const float CONVERTED_VOLUME = (sound_volume / 100.0f) * (Options::audio.volume / 100.0f); const float CONVERTED_VOLUME = (sound_volume / 100.0F) * (Options::audio.volume / 100.0F);
JA_SetSoundVolume(CONVERTED_VOLUME, static_cast<int>(group)); JA_SetSoundVolume(CONVERTED_VOLUME, static_cast<int>(group));
} }
} }
// Establece el volumen de la música // Establece el volumen de la música
void Audio::setMusicVolume(int music_volume) { void Audio::setMusicVolume(int music_volume) const {
if (music_enabled_) { if (music_enabled_) {
music_volume = std::clamp(music_volume, 0, 100); music_volume = std::clamp(music_volume, MIN_VOLUME_, MAX_VOLUME_);
const float CONVERTED_VOLUME = (music_volume / 100.0f) * (Options::audio.volume / 100.0f); const float CONVERTED_VOLUME = (music_volume / 100.0F) * (Options::audio.volume / 100.0F);
JA_SetMusicVolume(CONVERTED_VOLUME); JA_SetMusicVolume(CONVERTED_VOLUME);
} }
} }
@@ -101,8 +101,8 @@ void Audio::applySettings() {
void Audio::enable(bool value) { void Audio::enable(bool value) {
enabled_ = value; enabled_ = value;
setSoundVolume(enabled_ ? Options::audio.sound.volume : 0); setSoundVolume(enabled_ ? Options::audio.sound.volume : MIN_VOLUME_);
setMusicVolume(enabled_ ? Options::audio.music.volume : 0); setMusicVolume(enabled_ ? Options::audio.music.volume : MIN_VOLUME_);
} }
// Inicializa SDL Audio // Inicializa SDL Audio
@@ -112,7 +112,7 @@ void Audio::initSDLAudio() {
} else { } else {
SDL_LogInfo(SDL_LOG_CATEGORY_TEST, "\n** SDL_AUDIO: INITIALIZING\n"); 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); enable(Options::audio.enabled);
SDL_LogInfo(SDL_LOG_CATEGORY_TEST, "** SDL_AUDIO: INITIALIZATION COMPLETE\n"); SDL_LogInfo(SDL_LOG_CATEGORY_TEST, "** SDL_AUDIO: INITIALIZATION COMPLETE\n");

View File

@@ -1,6 +1,7 @@
#pragma once #pragma once
#include <string> #include <string>
#include <utility>
// Clase Audio: gestor de audio (singleton) // Clase Audio: gestor de audio (singleton)
class Audio { class Audio {
@@ -11,20 +12,27 @@ class Audio {
INTERFACE = 1 INTERFACE = 1
}; };
// --- Constantes ---
static constexpr int MAX_VOLUME_ = 100;
static constexpr int MIN_VOLUME_ = 0;
static constexpr int FREQUENCY_ = 48000;
// --- Métodos de singleton --- // --- Métodos de singleton ---
static void init(); // Inicializa el objeto Audio static void init(); // Inicializa el objeto Audio
static void destroy(); // Libera el objeto Audio static void destroy(); // Libera el objeto Audio
static Audio *get(); // Obtiene el puntero al 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 --- // --- Control de Música ---
void playMusic(const std::string &name, int loop = -1); // Reproducir música en bucle void playMusic(const std::string &name, int loop = -1); // Reproducir música en bucle
void pauseMusic(); // Pausar reproducción de música void pauseMusic(); // Pausar reproducción de música
void stopMusic(); // Detener completamente la 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 --- // --- Control de Sonidos ---
void playSound(const std::string &name, Group group = Group::GAME); // Reproducir sonido puntual void playSound(const std::string &name, Group group = Group::GAME) const; // Reproducir sonido puntual
void stopAllSounds(); // Detener todos los sonidos void stopAllSounds() const; // Detener todos los sonidos
// --- Configuración General --- // --- Configuración General ---
void enable(bool value); // Establecer estado 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 void toggleMusic() { music_enabled_ = !music_enabled_; } // Alternar estado de música
// --- Control de Volumen --- // --- Control de Volumen ---
void setSoundVolume(int volume, Group group = Group::ALL); // Ajustar volumen de efectos void setSoundVolume(int volume, Group group = Group::ALL) const; // Ajustar volumen de efectos
void setMusicVolume(int volume); // Ajustar volumen de música void setMusicVolume(int volume) const; // Ajustar volumen de música
private: private:
enum class MusicState { enum class MusicState {
@@ -60,11 +68,11 @@ class Audio {
bool loop; // Indica si la última pista de música se debe reproducir en bucle bool loop; // Indica si la última pista de música se debe reproducir en bucle
// Constructor para inicializar la música con valores predeterminados // 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 // Constructor para inicializar con valores específicos
Music(MusicState initState, const std::string &initName, bool initLoop) Music(MusicState initState, std::string initName, bool initLoop)
: state(initState), name(initName), loop(initLoop) {} : state(initState), name(std::move(initName)), loop(initLoop) {}
}; };
Music music_; Music music_;
@@ -80,8 +88,6 @@ class Audio {
// --- Patrón Singleton --- // --- Patrón Singleton ---
Audio(); // Constructor privado Audio(); // Constructor privado
~Audio(); // Destructor privado ~Audio(); // Destructor privado
Audio(const Audio &) = delete; // Evitar copia
Audio &operator=(const Audio &) = delete; // Evitar asignación
// --- Singleton --- // --- Singleton ---
static Audio *instance_; static Audio *instance_;