87 std::shared_ptr<ISoundDataOpen>
openSingleSound(
const std::string &sound_name);
105 bool loop, f32 volume, f32 pitch, f32 start_time,
106 const std::optional<std::pair<v3f, v3f>> &pos_vel_opt);
109 f32 volume, f32 fade, f32 pitch,
bool use_local_fallback, f32 start_time,
110 const std::optional<std::pair<v3f, v3f>> &pos_vel_opt);
121 std::unique_ptr<SoundFallbackPathProvider> fallback_path_provider);
130 void step(f32 dtime);
137 bool loadSoundFile(
const std::string &name,
const std::string &filepath);
138 bool loadSoundData(
const std::string &name, std::string &&filedata);
141 void addSoundToGroup(
const std::string &sound_name,
const std::string &group_name);
155 void *
run()
override;
#define DISABLE_CLASS_COPY(C)
Definition basic_macros.h:26
Definition container.h:126
Thread(const std::string &name="")
Definition thread.cpp:68
void loadSoundDataNoCheck(const std::string &name, std::string &&filedata)
Definition sound_manager.cpp:437
ALCcontext *const m_context
Definition sound_manager.h:40
void playSound(sound_handle_t id, const SoundSpec &spec)
Definition sound_manager.cpp:452
int removeDeadSounds()
Deletes sounds that are dead (=finished).
Definition sound_manager.cpp:237
std::string getOrLoadLoadedSoundNameFromGroup(const std::string &group_name)
Same as getLoadedSoundNameFromGroup, but if sound does not exist, try to load from local files.
Definition sound_manager.cpp:120
std::string getLoadedSoundNameFromGroup(const std::string &group_name)
Gets a random sound name from a group.
Definition sound_manager.cpp:92
std::unordered_map< std::string, std::vector< std::string > > m_sound_groups
Definition sound_manager.h:51
f32 m_stream_timer
Definition sound_manager.h:60
MutexedQueue< SoundManagerMsgToProxy > m_queue_to_proxy
Definition sound_manager.h:74
ALCdevice *const m_device
Definition sound_manager.h:39
void loadSoundFileNoCheck(const std::string &name, const std::string &filepath)
Definition sound_manager.cpp:431
std::vector< std::weak_ptr< PlayingSound > > m_sounds_streaming_next_bigstep
Definition sound_manager.h:58
void setListenerGain(f32 gain)
Definition sound_manager.cpp:395
std::unordered_map< std::string, std::shared_ptr< ISoundDataOpen > > m_sound_datas_open
Definition sound_manager.h:49
void addSoundToGroup(const std::string &sound_name, const std::string &group_name)
Definition sound_manager.cpp:443
void fadeSound(sound_handle_t soundid, f32 step, f32 target_gain)
Definition sound_manager.cpp:476
void stepStreams(f32 dtime)
Definition sound_manager.cpp:19
void reportRemovedSound(sound_handle_t id)
Definition sound_manager.h:163
~OpenALSoundManager() override
Definition sound_manager.cpp:329
const ALExtensions m_exts
Definition sound_manager.h:42
bool m_is_paused
Definition sound_manager.h:65
u64 m_next_lingering_sounds_print
Definition sound_manager.h:69
f32 m_time_until_dead_removal
Definition sound_manager.h:45
void printPlayingSounds(bool rate_limit)
Definition sound_manager.cpp:257
void updateSoundPosVel(sound_handle_t sound, const v3f &pos_, const v3f &vel_)
Definition sound_manager.cpp:489
std::unordered_map< sound_handle_t, std::shared_ptr< PlayingSound > > m_sounds_playing
Definition sound_manager.h:54
std::shared_ptr< PlayingSound > createPlayingSound(const std::string &sound_name, bool loop, f32 volume, f32 pitch, f32 start_time, const std::optional< std::pair< v3f, v3f > > &pos_vel_opt)
Definition sound_manager.cpp:136
void step(f32 dtime)
Definition sound_manager.cpp:336
bool loadSoundData(const std::string &name, std::string &&filedata)
Definition sound_manager.cpp:421
void send(SoundManagerMsgToProxy msg)
Definition sound_manager.h:158
void playSoundAt(sound_handle_t id, const SoundSpec &spec, const v3f &pos_, const v3f &vel_)
Definition sound_manager.cpp:458
std::vector< std::weak_ptr< PlayingSound > > m_sounds_streaming_current_bigstep
Definition sound_manager.h:57
void updateListener(const v3f &pos_, const v3f &vel_, const v3f &at_, const v3f &up_)
Definition sound_manager.cpp:380
std::unique_ptr< SoundFallbackPathProvider > m_fallback_path_provider
Definition sound_manager.h:37
void playSoundGeneric(sound_handle_t id, const std::string &group_name, bool loop, f32 volume, f32 fade, f32 pitch, bool use_local_fallback, f32 start_time, const std::optional< std::pair< v3f, v3f > > &pos_vel_opt)
Definition sound_manager.cpp:180
void pauseAll()
Definition sound_manager.cpp:362
void doFades(f32 dtime)
Definition sound_manager.cpp:51
void stopSound(sound_handle_t sound)
Definition sound_manager.cpp:470
std::unordered_map< std::string, std::unique_ptr< ISoundDataUnopen > > m_sound_datas_unopen
Definition sound_manager.h:48
std::shared_ptr< ISoundDataOpen > openSingleSound(const std::string &sound_name)
Gives the open sound for a loaded sound.
Definition sound_manager.cpp:70
void * run() override
Definition sound_manager.cpp:503
std::vector< std::weak_ptr< PlayingSound > > m_sounds_fading
Definition sound_manager.h:62
OpenALSoundManager(SoundManagerSingleton *smg, std::unique_ptr< SoundFallbackPathProvider > fallback_path_provider)
Definition sound_manager.cpp:315
std::unordered_set< std::string > m_warned_positional_stereo_sounds
Definition sound_manager.h:68
bool loadSoundFile(const std::string &name, const std::string &filepath)
Definition sound_manager.cpp:407
void resumeAll()
Definition sound_manager.cpp:371
MutexedQueue< SoundManagerMsgToMgr > m_queue_to_mgr
Definition sound_manager.h:73
Class for the openal device and context.
Definition sound_singleton.h:20
int sound_handle_t
IDs for playing sounds.
Definition client.h:67
core::vector3df v3f
Definition irr_v3d.h:11
Definition al_extensions.cpp:11
constexpr f32 REMOVE_DEAD_SOUNDS_INTERVAL
Definition sound_constants.h:89
std::variant< std::monostate, sound_manager_messages_to_proxy::ReportRemovedSound, sound_manager_messages_to_proxy::Stopped > SoundManagerMsgToProxy
Definition sound_manager_messages.h:65
constexpr f32 STREAM_BIGSTEP_TIME
Definition sound_constants.h:95
Describes the sound information for playback.
Definition sound_spec.h:18
Struct for AL and ALC extensions.
Definition al_extensions.h:15
Definition sound_manager_messages.h:60