R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
SoundEffectManager.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** r-type
4** File description:
5** SoundEffectManager - Manages menu sound effects
6*/
7
8#pragma once
9
12
13namespace Audio {
19 constexpr float DEFAULT_SOUND_EFFECT_VOLUME = 0.65F;
20
34 public:
39 explicit SoundEffectManager(Graphics::IGraphics &graphics);
40
44 ~SoundEffectManager() override;
45
46 // Non-copyable
49
50 // Movable
53
58 bool Initialize();
59
61 void PlayClickSound() override;
62
64 void PlayMainMenuOpenSound() override;
65
67 void PlayRoomMenuOpenSound() override;
68
70 void SetVolume(float volume) override;
71
73 [[nodiscard]] float GetVolume() const override;
74
75 private:
76 void LoadSounds();
78
81 bool _initialized{false};
82
83 // Sound identifiers
84 static constexpr const char *SOUND_CLICK = "menu_click";
85 static constexpr const char *SOUND_MAIN_MENU_OPEN = "main_menu_open";
86 static constexpr const char *SOUND_ROOM_MENU_OPEN = "room_menu_open";
87
88 // Sound file paths
89 static constexpr const char *PATH_CLICK = "assets/sounds/menu-click.mp3";
90 static constexpr const char *PATH_MAIN_MENU_OPEN = "assets/sounds/main-menu-open.mp3";
91 static constexpr const char *PATH_ROOM_MENU_OPEN = "assets/sounds/rooms-menu-open.mp3";
92 };
93} // namespace Audio
Interface for sound effect management in menus.
Sound effect manager implementation using the graphics audio system.
Graphics::IGraphics & _graphics
SoundEffectManager & operator=(SoundEffectManager &&)=default
~SoundEffectManager() override
Destructor - unloads all sounds.
void PlayRoomMenuOpenSound() override
Play the room menu open sound effect.
static constexpr const char * SOUND_ROOM_MENU_OPEN
void PlayClickSound() override
Play the button click sound effect.
static constexpr const char * SOUND_MAIN_MENU_OPEN
static constexpr const char * SOUND_CLICK
float GetVolume() const override
Get the current master volume.
SoundEffectManager(const SoundEffectManager &)=delete
SoundEffectManager(SoundEffectManager &&)=default
void SetVolume(float volume) override
Set the master volume for all sound effects.
SoundEffectManager & operator=(const SoundEffectManager &)=delete
bool Initialize()
Initialize the audio system and load all sounds.
static constexpr const char * PATH_ROOM_MENU_OPEN
static constexpr const char * PATH_MAIN_MENU_OPEN
void PlayMainMenuOpenSound() override
Play the main menu open sound effect.
static constexpr const char * PATH_CLICK
Abstract interface for graphics rendering operations.
Definition IGraphics.hpp:32
constexpr float DEFAULT_SOUND_EFFECT_VOLUME
Default volume for sound effects (65% of original volume).