10#ifndef PULSEAUDIO_PLAYER_H
11#define PULSEAUDIO_PLAYER_H
13#include "isound_manager.h"
15#include <unordered_map>
17#include <SDL2/SDL_mixer.h>
100 std::string cachedAmbiencePath_;
101 std::string cachedTableMusicPath_;
102 std::string cachedLaunchAudioPath_;
106 enum class MusicType {
112 MusicType currentPlayingMusicType_;
115 std::unordered_map<std::string, std::unique_ptr<Mix_Chunk, void(*)(Mix_Chunk*)>> uiSounds_;
116 std::unique_ptr<Mix_Music, void(*)(Mix_Music*)> ambienceMusic_;
117 std::unique_ptr<Mix_Music, void(*)(Mix_Music*)> tableMusic_;
118 std::unique_ptr<Mix_Music, void(*)(Mix_Music*)> launchAudio_;
120 std::uniform_real_distribution<double> dist_;
128 std::string trim(
const std::string& str);
Interface for managing sound operations.
Definition isound_manager.h:14
Manages all sound operations for the application.
Definition pulseaudio_player.h:29
~PulseAudioPlayer() override
Destroys the PulseAudioPlayer instance and cleans up all SDL_mixer resources.
Definition pulseaudio_player.cpp:55
void playTableMusic(const std::string &path) override
Plays the table-specific music.
Definition pulseaudio_player.cpp:173
void applyAudioSettings() override
Applies the current audio settings (volumes, mute states) to all active sound types.
Definition pulseaudio_player.cpp:248
void loadSounds() override
Loads all necessary sound resources based on current settings.
Definition pulseaudio_player.cpp:71
void updateSettings(const Settings &newSettings) override
Updates the internal settings and reloads sounds if necessary.
Definition pulseaudio_player.cpp:283
void playAmbienceMusic(const std::string &path) override
Plays the background ambience music.
Definition pulseaudio_player.cpp:129
void stopMusic() override
Stops any currently playing background music (ambience or table music).
Definition pulseaudio_player.cpp:240
void playCustomLaunch(const std::string &path) override
Plays the custom launch audio.
Definition pulseaudio_player.cpp:210
void playUISound(const std::string &key) override
Plays a specific UI sound effect.
Definition pulseaudio_player.cpp:117