- Timestamp:
- Apr 17, 2006, 2:55:51 AM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/sound/sound_engine.cc
r7317 r7318 124 124 * @param sourceNode The sourceNode to bind this SoundSource to. 125 125 * @returns The newly created SoundSource 126 127 126 * 127 * acctualy this is nothing more than a wrapper around the ResourceManager. 128 128 */ 129 129 SoundSource* SoundEngine::createSource(const std::string& fileName, PNode* sourceNode) 130 130 { 131 return new SoundSource(sourceNode, (SoundBuffer*)ResourceManager::getInstance()->load(fileName, WAV, RP_LEVEL)); 131 SoundBuffer* buffer = NULL; 132 if (!fileName.empty()) 133 { 134 buffer= (SoundBuffer*)ResourceManager::getInstance()->load(fileName, WAV, RP_LEVEL); 135 if (buffer == NULL) 136 PRINTF(2)("Wav-Sound %s could not be loaded onto new Source\n", fileName.c_str()); 137 } 138 return new SoundSource(sourceNode, buffer); 132 139 } 133 140 … … 151 158 * @param source the Source to fill with the Value. 152 159 */ 153 boolSoundEngine::popALSource(ALuint& source)160 void SoundEngine::popALSource(ALuint& source) 154 161 { 155 162 assert (source == 0); 156 157 163 /// @TODO try to create more sources if needed 158 164 if (!this->ALSources.empty()) … … 162 168 this->ALSources.pop(); 163 169 SDL_mutexV(this->sourceMutex); 164 return true; 165 } 166 else 167 return false; 170 } 168 171 } 169 172 -
trunk/src/lib/sound/sound_engine.h
r7317 r7318 49 49 50 50 // administrative 51 boolpopALSource(ALuint& source);51 void popALSource(ALuint& source); 52 52 void pushALSource(ALuint& source); 53 53 -
trunk/src/lib/sound/sound_source.cc
r7317 r7318 117 117 void SoundSource::play() 118 118 { 119 if (this->retrieveSource()) 120 { 121 alSourcePlay(this->sourceID); 119 if (this->buffer && this->retrieveSource()) 120 { 121 if (this->bPlay) 122 alSourceStop(this->sourceID); 123 alSourcei (this->sourceID, AL_BUFFER, this->buffer->getID()); 124 alSourcePlay(this->sourceID); 125 122 126 if (DEBUG >= 3) 123 127 SoundEngine::checkError("Play Source", __LINE__); -
trunk/src/story_entities/simple_game_menu.cc
r7317 r7318 35 35 #include "graphics_engine.h" 36 36 #include "object_manager.h" 37 37 #include "sound_engine.h" 38 #include "sound_source.h" 38 39 39 40 #include "cd_engine.h" … … 62 63 this->layerIndex = 0; 63 64 this->menuSelectedIndex = 0; 65 this->selectorSource = NULL; 64 66 65 67 if (root != NULL) … … 134 136 if (this->dataXML != NULL) 135 137 { 138 LoadParam(dataXML, "selector-sound", this, SimpleGameMenu, setSelectorSound); 139 136 140 TiXmlElement* element = this->dataXML->FirstChildElement("Elements"); 141 137 142 138 143 if( element == NULL) … … 237 242 } 238 243 244 /** 245 * @brief set the Sound to play when switching menu entry. 246 * @param selectorSound the sound to load. 247 */ 248 void SimpleGameMenu::setSelectorSound(const std::string& selectorSound) 249 { 250 this->selectorSource = SoundEngine::getInstance()->createSource(selectorSound, NULL); 251 printf("=============== %s\n", selectorSound.c_str()); 252 } 239 253 240 254 ErrorMessage SimpleGameMenu::unloadData() … … 257 271 } 258 272 273 // delete the SoundSource. 274 if (this->selectorSource != NULL) 275 delete this->selectorSource; 276 this->selectorSource = NULL; 259 277 260 278 GameWorld::unloadData(); … … 375 393 this->menuSelected = this->menuLayers[this->layerIndex].menuList[++this->menuSelectedIndex]; 376 394 this->sliderTo(this->menuSelected, 5.0f); 395 if (this->selectorSource != NULL) 396 this->selectorSource->play(); 377 397 378 398 if( this->layerIndex == 1) … … 389 409 this->menuSelected = this->menuLayers[this->layerIndex].menuList[--this->menuSelectedIndex]; 390 410 this->sliderTo(this->menuSelected, 5.0f); 411 if (this->selectorSource != NULL) 412 this->selectorSource->play(); 391 413 392 414 if( this->layerIndex == 1) -
trunk/src/story_entities/simple_game_menu.h
r7063 r7318 20 20 class TiXmlElement; 21 21 class ImageEntity; 22 class SoundSource; 22 23 23 24 … … 70 71 void switchMenuLayer(int layer1, int layer2); 71 72 void sliderTo(const Element2D* element, float bias = 0.0f); 73 void setSelectorSound(const std::string& selectorSound); 72 74 73 75 … … 86 88 87 89 Vector cameraVector; 90 91 SoundSource* selectorSource; 88 92 }; 89 93
Note: See TracChangeset
for help on using the changeset viewer.