1 #ifndef GAME_SOUND_SOUNDMANAGER_H
2 #define GAME_SOUND_SOUNDMANAGER_H
9 #include <unordered_map>
15 #include "../mwbase/soundmanager.hpp"
53 std::unordered_map<std::string, std::vector<std::string>>
mMusicFiles;
85 std::unique_ptr<std::deque<Sound>>
mSounds;
93 typedef std::map<MWWorld::ConstPtr,SoundBufferRefPairList>
SoundMap;
160 virtual void streamMusic(
const std::string& filename);
175 virtual void say(
const std::string& filename);
211 virtual Sound *
playSound3D(
const osg::Vec3f& initialPos,
const std::string& soundId,
212 float volume,
float pitch,
Type type,
PlayMode mode,
float offset=0);
229 virtual void stopSound(
const std::string& soundId);
247 virtual void update(
float duration);
249 virtual void setListenerPosDir(
const osg::Vec3f &pos,
const osg::Vec3f &dir,
const osg::Vec3f &up,
bool underwater);
253 virtual void clear();
float mNearWaterIndoorTolerance
Definition: soundmanagerimp.hpp:65
Stream * mMusic
Definition: soundmanagerimp.hpp:102
float mNearWaterOutdoorTolerance
Definition: soundmanagerimp.hpp:66
Stream * getStreamRef()
Definition: soundmanagerimp.cpp:280
NameBufferMap mBufferNameMap
Definition: soundmanagerimp.hpp:79
std::vector< Stream * > mUnusedStreams
Definition: soundmanagerimp.hpp:89
Definition: openal_output.hpp:21
int mNearWaterRadius
Definition: soundmanagerimp.hpp:63
std::map< MWWorld::ConstPtr, Stream * > SaySoundMap
Definition: soundmanagerimp.hpp:96
void stopSound(Sound_Buffer *sfx, const MWWorld::ConstPtr &ptr)
Stop the given object from playing given sound buffer.
Definition: soundmanagerimp.cpp:684
Definition: soundmanagerimp.hpp:37
Definition: sound_buffer.hpp:10
void updateRegionSound(float duration)
Definition: soundmanagerimp.cpp:795
int mPausedSoundTypes
Definition: soundmanagerimp.hpp:110
virtual void say(const MWWorld::ConstPtr &reference, const std::string &filename)
Definition: soundmanagerimp.cpp:465
osg::Vec3f mListenerUp
Definition: soundmanagerimp.hpp:108
float mSFXVolume
Definition: soundmanagerimp.hpp:58
virtual bool isMusicPlaying()
Returns true if music is playing.
Definition: soundmanagerimp.cpp:426
virtual void clear()
Definition: soundmanagerimp.cpp:1252
SoundBufferList mSoundBuffers
Definition: soundmanagerimp.hpp:73
virtual ~SoundManager()
Definition: soundmanagerimp.cpp:120
const VFS::Manager * mVFS
Definition: soundmanagerimp.hpp:47
osg::Vec3f mListenerPos
Definition: soundmanagerimp.hpp:106
std::unique_ptr< std::deque< Sound_Buffer > > SoundBufferList
Definition: soundmanagerimp.hpp:69
contains settings imported from the Morrowind INI file.
Definition: fallback.hpp:12
std::unordered_map< std::string, std::vector< std::string > > mMusicFiles
Definition: soundmanagerimp.hpp:53
std::map< MWWorld::ConstPtr, SoundBufferRefPairList > SoundMap
Definition: soundmanagerimp.hpp:93
MWSound::Sound Sound
Definition: soundmanager.hpp:56
float mVoiceVolume
Definition: soundmanagerimp.hpp:60
void streamMusicFull(const std::string &filename)
Definition: soundmanagerimp.cpp:363
PlayMode
Definition: soundmanager.hpp:23
virtual Stream * playTrack(const DecoderPtr &decoder, Type type)
Play a 2D audio track, using a custom decoder.
Definition: soundmanagerimp.cpp:538
std::vector< Stream * > TrackList
Definition: soundmanagerimp.hpp:99
virtual void stopSay(const MWWorld::ConstPtr &reference=MWWorld::ConstPtr())
Stop an actor speaking.
Definition: soundmanagerimp.cpp:526
std::vector< SoundBufferRefPair > SoundBufferRefPairList
Definition: soundmanagerimp.hpp:92
Sound * mNearWaterSound
Definition: soundmanagerimp.hpp:113
osg::Vec3f mListenerDir
Definition: soundmanagerimp.hpp:107
float mFootstepsVolume
Definition: soundmanagerimp.hpp:61
std::set< std::pair< std::string, std::string > > CategorySettingVector
Definition: settings.hpp:11
Definition: soundmanagerimp.hpp:42
virtual void updatePtr(const MWWorld::ConstPtr &old, const MWWorld::ConstPtr &updated)
Definition: soundmanagerimp.cpp:1169
virtual bool getSoundPlaying(const MWWorld::ConstPtr &reference, const std::string &soundId) const
Is the given sound currently playing on the given object?
Definition: soundmanagerimp.cpp:759
float mMasterVolume
Definition: soundmanagerimp.hpp:57
virtual double getTrackTimeDelay(Stream *stream)
Definition: soundmanagerimp.cpp:566
std::unique_ptr< Sound_Output > mOutput
Definition: soundmanagerimp.hpp:50
virtual void update(float duration)
Definition: soundmanagerimp.cpp:1106
virtual bool sayDone(const MWWorld::ConstPtr &reference=MWWorld::ConstPtr()) const
Is actor not speaking?
Definition: soundmanagerimp.cpp:514
std::unordered_map< std::string, Sound_Buffer * > NameBufferMap
Definition: soundmanagerimp.hpp:78
virtual void stopTrack(Stream *stream)
Stop the given audio track from playing.
Definition: soundmanagerimp.cpp:557
Definition: soundmanagerimp.hpp:41
std::pair< MWBase::Sound *, Sound_Buffer * > SoundBufferRefPair
Definition: soundmanagerimp.hpp:91
virtual void playPlaylist(const std::string &playlist)
Definition: soundmanagerimp.cpp:431
SoundManager & operator=(const SoundManager &rhs)
virtual float getSaySoundLoudness(const MWWorld::ConstPtr &reference) const
Definition: soundmanagerimp.cpp:485
Sound_Buffer * lookupSound(const std::string &soundId) const
Definition: soundmanagerimp.cpp:173
Definition: soundmanagerimp.hpp:36
Mutable state of a cell.
Definition: cellstore.hpp:51
float volumeFromType(Type type) const
Definition: soundmanagerimp.cpp:329
SoundList mUnusedBuffers
Definition: soundmanagerimp.hpp:83
Pointer to a const LiveCellRef.
Definition: ptr.hpp:90
std::unique_ptr< std::deque< Stream > > mStreams
Definition: soundmanagerimp.hpp:88
Fallback::Map mFallback
Definition: soundmanagerimp.hpp:49
void startRandomTitle()
Definition: soundmanagerimp.cpp:394
Definition: loadsoun.hpp:17
void updateWaterSound(float duration)
Definition: soundmanagerimp.cpp:847
virtual Sound * playSound(const std::string &soundId, float volume, float pitch, Type type=Type::Sfx, PlayMode mode=PlayMode::Normal, float offset=0)
Definition: soundmanagerimp.cpp:572
SaySoundMap mActiveSaySounds
Definition: soundmanagerimp.hpp:97
virtual void stopSound3D(const MWWorld::ConstPtr &reference, const std::string &soundId)
Stop the given object from playing the given sound,.
Definition: soundmanagerimp.cpp:705
Sound_Buffer * loadSound(const std::string &soundId)
Definition: soundmanagerimp.cpp:186
TrackList mActiveTracks
Definition: soundmanagerimp.hpp:100
float mMusicVolume
Definition: soundmanagerimp.hpp:59
void advanceMusic(const std::string &filename)
Definition: soundmanagerimp.cpp:381
void updateSounds(float duration)
Definition: soundmanagerimp.cpp:944
Interface for sound manager (implemented in MWSound)
Definition: soundmanager.hpp:60
SoundMap mActiveSounds
Definition: soundmanagerimp.hpp:94
virtual void stopMusic()
Stops music if it's playing.
Definition: soundmanagerimp.cpp:353
size_t mBufferCacheMax
Definition: soundmanagerimp.hpp:75
std::vector< Sound * > mUnusedSounds
Definition: soundmanagerimp.hpp:86
std::string mNearWaterOutdoorID
Definition: soundmanagerimp.hpp:68
Definition: soundmanagerimp.hpp:45
Sound * getSoundRef()
Definition: soundmanagerimp.cpp:264
size_t mBufferCacheSize
Definition: soundmanagerimp.hpp:76
std::string mNextMusic
Definition: soundmanagerimp.hpp:137
virtual void streamMusic(const std::string &filename)
Definition: soundmanagerimp.cpp:421
DecoderPtr loadVoice(const std::string &voicefile)
Definition: soundmanagerimp.cpp:246
PlayModeEx
Definition: soundmanagerimp.hpp:40
bool mListenerUnderwater
Definition: soundmanagerimp.hpp:105
std::string mNearWaterIndoorID
Definition: soundmanagerimp.hpp:67
virtual void pauseSounds(int types)
Pauses all currently playing sounds, including music.
Definition: soundmanagerimp.cpp:774
The main class responsible for loading files from a virtual file system.
Definition: manager.hpp:20
SoundManager()
Definition: soundmanager.hpp:73
Stream * playVoice(DecoderPtr decoder, const osg::Vec3f &pos, bool playlocal)
Definition: soundmanagerimp.cpp:296
std::shared_ptr< Sound_Decoder > DecoderPtr
Definition: soundmanager.hpp:19
virtual void setListenerPosDir(const osg::Vec3f &pos, const osg::Vec3f &dir, const osg::Vec3f &up, bool underwater)
Definition: soundmanagerimp.cpp:1160
DecoderPtr getDecoder()
Definition: soundmanagerimp.cpp:134
int mNearWaterPoints
Definition: soundmanagerimp.hpp:64
virtual void fadeOutSound3D(const MWWorld::ConstPtr &reference, const std::string &soundId, float duration)
Definition: soundmanagerimp.cpp:744
std::unique_ptr< std::deque< Sound > > mSounds
Definition: soundmanagerimp.hpp:85
void updateMusic(float duration)
Definition: soundmanagerimp.cpp:1089
virtual Sound * playSound3D(const MWWorld::ConstPtr &reference, const std::string &soundId, float volume, float pitch, Type type=Type::Sfx, PlayMode mode=PlayMode::Normal, float offset=0)
Definition: soundmanagerimp.cpp:601
std::string mCurrentPlaylist
Definition: soundmanagerimp.hpp:103
Type
Definition: soundmanager.hpp:39
std::string mLastPlayedMusic
Definition: soundmanagerimp.hpp:55
Environment
Definition: soundmanagerimp.hpp:35
virtual void resumeSounds(int types)
Resumes all previously paused sounds.
Definition: soundmanagerimp.cpp:784
Sound * mUnderwaterSound
Definition: soundmanagerimp.hpp:112
Sound_Buffer * insertSound(const std::string &soundId, const ESM::Sound *sound)
Definition: soundmanagerimp.cpp:139
std::deque< Sound_Buffer * > SoundList
Definition: soundmanagerimp.hpp:82
virtual void processChangedSettings(const Settings::CategorySettingVector &settings)
Definition: soundmanagerimp.cpp:1121
Definition: sound.hpp:104
std::unordered_map< std::string, std::vector< int > > mMusicToPlay
Definition: soundmanagerimp.hpp:54
size_t mBufferCacheMin
Definition: soundmanagerimp.hpp:74