Changeset 9889 for code/branches/sfxThilo/src/orxonox/sound
- Timestamp:
- Dec 9, 2013, 4:06:38 PM (11 years ago)
- Location:
- code/branches/sfxThilo/src/orxonox/sound
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/sfxThilo/src/orxonox/sound/AmbientSound.cc
r8861 r9889 79 79 } 80 80 81 voidAmbientSound::setAmbientSource(const std::string& source)81 bool AmbientSound::setAmbientSource(const std::string& source) 82 82 { 83 83 this->ambientSource_ = source; 84 this->moodChanged(MoodManager::getInstance().getMood());84 return(this->moodChanged(MoodManager::getInstance().getMood())); 85 85 } 86 86 87 voidAmbientSound::moodChanged(const std::string& mood)87 bool AmbientSound::moodChanged(const std::string& mood) 88 88 { 89 89 if (GameMode::playsSound()) … … 95 95 orxout(user_info) << "Loading ambient sound " << path << "..." << endl; // TODO: make this output internal if we implement sound streaming 96 96 this->setSource(path); 97 98 // all went fine 99 return true; 97 100 } 98 101 else 99 102 { 100 103 orxout(internal_warning, context::sound) << this->ambientSource_ << ": Not a valid name! Ambient sound will not change." << endl; 104 105 // everything went southways 106 return false; 101 107 } 102 108 } 109 return false; 103 110 } 104 111 -
code/branches/sfxThilo/src/orxonox/sound/AmbientSound.h
r7856 r9889 54 54 void pause(); 55 55 56 voidsetAmbientSource(const std::string& source);56 bool setAmbientSource(const std::string& source); 57 57 inline const std::string& getAmbientSource() const 58 58 { return this->ambientSource_; } … … 68 68 void preDestroy(); 69 69 float getRealVolume(); 70 voidmoodChanged(const std::string& mood);70 bool moodChanged(const std::string& mood); 71 71 inline void ambientSourceChanged() 72 72 { this->setAmbientSource(this->ambientSource_); } -
code/branches/sfxThilo/src/orxonox/sound/BaseSound.cc
r9667 r9889 47 47 BaseSound::BaseSound() 48 48 : bPooling_(false) 49 , volume_( 1.0)49 , volume_(0.7) 50 50 , bLooping_(false) 51 51 , state_(Stopped) -
code/branches/sfxThilo/src/orxonox/sound/SoundManager.cc
r9667 r9889 218 218 .description("Defines the overall volume.") 219 219 .callback(this, &SoundManager::checkSoundVolumeValidity); 220 SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 1.0f)220 SetConfigValueAlias(volume_[SoundType::Music], "ambientVolume_", 0.7f) 221 221 .description("Defines the ambient volume.") 222 222 .callback(this, &SoundManager::checkAmbientVolumeValidity); -
code/branches/sfxThilo/src/orxonox/sound/WorldAmbientSound.cc
r9667 r9889 33 33 #include "core/XMLPort.h" 34 34 #include "AmbientSound.h" 35 #include "core/command/ConsoleCommand.h" 36 #include <exception> 37 35 38 36 39 namespace orxonox 37 40 { 41 SetConsoleCommand("WorldAmbientSound", "nextsong", &WorldAmbientSound::nextSong); 42 38 43 RegisterClass(WorldAmbientSound); 39 44 … … 44 49 this->ambientSound_ = new AmbientSound(); 45 50 this->registerVariables(); 51 soundList_.push_back("Earth.ogg"); 52 soundList_.push_back("Jupiter.ogg"); 53 soundList_.push_back("Mars.ogg"); 54 soundList_.push_back("allgorythm-lift_up.ogg"); 55 soundList_.push_back("allgorythm-resonance_blaster.ogg"); 56 soundList_.push_back("AlphaCentauri.ogg"); 57 soundList_.push_back("Asteroid_rocks.ogg"); 58 soundList_.push_back("Ganymede.ogg"); 59 soundList_.push_back("luke_grey_-_hypermode.ogg"); 60 46 61 } 47 48 62 WorldAmbientSound::~WorldAmbientSound() 49 63 { … … 51 65 { 52 66 this->ambientSound_->destroy(); 67 WorldAmbientSound::soundList_.clear(); 53 68 } 54 69 } … … 94 109 this->ambientSound_->stop(); 95 110 } 111 112 void WorldAmbientSound::nextSong() 113 { 114 115 //HACK: Assuption - there is only one WorldAmbientSound in a level and only one level is used. 116 for (ObjectList<WorldAmbientSound>::iterator it = ObjectList<WorldAmbientSound>::begin(); 117 it != ObjectList<WorldAmbientSound>::end(); ++it) 118 { 119 while(it->ambientSound_->setAmbientSource(WorldAmbientSound::soundList_[WorldAmbientSound::soundNumber_]) == false){ 120 WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size(); 121 } 122 WorldAmbientSound::soundNumber_ = (WorldAmbientSound::soundNumber_ + 1) % WorldAmbientSound::soundList_.size(); 123 } 124 } 96 125 } -
code/branches/sfxThilo/src/orxonox/sound/WorldAmbientSound.h
r9667 r9889 34 34 #include "core/BaseObject.h" 35 35 #include "network/synchronisable/Synchronisable.h" 36 #include <string> 37 #include <vector> 38 36 39 37 40 namespace orxonox … … 54 57 void play(); 55 58 59 //This function changes the current ambient song. 60 //You can call nextSong() active in the level 61 //by pressing the key 'M'. 62 static void nextSong(); 63 56 64 private: 57 65 void registerVariables(); 58 66 67 //Vector with the diffrent available level sounds. 68 //The sound names are pushed in the WorldAmbientSound-constructor. 69 static std::vector<std::string> soundList_; 70 71 // This value will be initialized below, don't make this into 72 // a const, since we want to change it in nextSong(). 73 static int soundNumber_; 74 75 59 76 AmbientSound* ambientSound_; 60 77 }; 78 79 // This is an initialization for the soundnumber variable. Since it is 80 // static, we have to initialize it this way. 81 int WorldAmbientSound::soundNumber_ = 0; 82 std::vector<std::string> WorldAmbientSound::soundList_; 83 61 84 } 62 85 -
code/branches/sfxThilo/src/orxonox/sound/WorldSound.cc
r9667 r9889 81 81 alSourcef(this->audioSource_, AL_REFERENCE_DISTANCE, refDist); 82 82 // TODO: 500 is very magical here. Derive something better 83 alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 500);83 alSourcef(this->audioSource_, AL_MAX_DISTANCE, refDist * 20); 84 84 } 85 85 this->tick(0); // update position, orientation and velocity
Note: See TracChangeset
for help on using the changeset viewer.