clang-tidy: audio
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
// 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_;
|
||||
|
||||
Reference in New Issue
Block a user