clang-tidy: audio
This commit is contained in:
@@ -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");
|
||||||
|
|||||||
@@ -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_;
|
||||||
|
|||||||
Reference in New Issue
Block a user