Changeset 5961 in orxonox.OLD for branches/avi_play/src/lib
- Timestamp:
- Dec 7, 2005, 2:53:43 PM (19 years ago)
- Location:
- branches/avi_play/src/lib
- Files:
-
- 2 deleted
- 17 edited
- 14 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/avi_play/src/lib/Makefile.am
r5822 r5961 15 15 network/libORXnet.a \ 16 16 graphics/spatial_separation/libORXquadtree.a \ 17 tinyxml/libtinyxml.a \ 17 parser/tinyxml/libtinyxml.a \ 18 parser/ini_parser/libIniParser.a \ 18 19 shell/libORXshell.a 19 20 … … 29 30 network/libORXnet.a \ 30 31 graphics/spatial_separation/libORXquadtree.a \ 31 tinyxml/libtinyxml.a \32 32 shell/libORXshell.a \ 33 33 $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) … … 37 37 lang/base_object.cc \ 38 38 lang/class_list.cc \ 39 util/ini_parser.cc \40 39 util/substring.cc \ 41 40 util/color.cc \ … … 53 52 graphics/render2D/render_2d.h \ 54 53 lang/class_list.h \ 55 util/ini_parser.h \56 54 util/substring.h \ 57 55 util/array.h \ … … 75 73 collision_detection \ 76 74 network \ 77 tinyxml\75 parser \ 78 76 shell \ 79 77 gui \ -
branches/avi_play/src/lib/event/key_mapper.cc
r5924 r5961 24 24 25 25 #include "globals.h" 26 #include " ini_parser.h"26 #include "parser/ini_parser/ini_parser.h" 27 27 #include "key_names.h" 28 28 #include "debug.h" … … 132 132 int* index; 133 133 134 iniParser-> getFirstVar();134 iniParser->firstVar(); 135 135 while(iniParser->getCurrentName()) 136 136 { … … 151 151 } 152 152 153 iniParser-> getFirstVar();153 iniParser->firstVar(); 154 154 while(iniParser->getCurrentName()) 155 155 { -
branches/avi_play/src/lib/graphics/graphics_engine.cc
r5924 r5961 26 26 #include "debug.h" 27 27 28 #include " ini_parser.h"28 #include "parser/ini_parser/ini_parser.h" 29 29 #include "substring.h" 30 30 #include "text.h" -
branches/avi_play/src/lib/graphics/light.cc
r5750 r5961 22 22 #include "glincl.h" 23 23 #include "vector.h" 24 #include " tinyxml.h"24 #include "parser/tinyxml/tinyxml.h" 25 25 #include "load_param.h" 26 26 #include "factory.h" -
branches/avi_play/src/lib/graphics/render2D/element_2d.cc
r5783 r5961 23 23 #include "graphics_engine.h" 24 24 #include "load_param.h" 25 #include " tinyxml.h"25 #include "parser/tinyxml/tinyxml.h" 26 26 #include "class_list.h" 27 27 -
branches/avi_play/src/lib/gui/gtk_gui/gui_audio.cc
r5298 r5961 42 42 { 43 43 CheckButton* enableSound; //!< A Ckeckbutton for enabling Sound. 44 Slider* audioChannels; //!< A Slider for the count of audio-channels. 44 45 Slider* musicVolume; //!< A Slider for music volume. 45 46 Slider* effectsVolume; //!< A Slider for effects volume. … … 51 52 enableSound->saveability(); 52 53 audioBox->fill(enableSound); 54 55 Label* audioChannelsLabel = new Label(CONFIG_NAME_AUDIO_CHANNELS); 56 audioBox->fill(audioChannelsLabel); 57 audioChannels = new Slider(CONFIG_NAME_AUDIO_CHANNELS, 0, 32); 58 audioChannels->setFlagName("channels", "c", 32); 59 audioChannels->setDescription("Sets the count of channels in the game"); 60 audioChannels->saveability(); 61 audioBox->fill (audioChannels); 62 63 53 64 Label* musicVolumeLabel = new Label(CONFIG_NAME_MUSIC_VOLUME); 54 65 audioBox->fill(musicVolumeLabel); … … 58 69 musicVolume->saveability(); 59 70 audioBox->fill (musicVolume); 71 60 72 Label* effectsVolumeLabel = new Label (CONFIG_NAME_EFFECTS_VOLUME); 61 73 audioBox->fill (effectsVolumeLabel); -
branches/avi_play/src/lib/gui/gtk_gui/gui_exec.cc
r5241 r5961 27 27 28 28 #include "resource_manager.h" 29 #include " ini_parser.h"29 #include "parser/ini_parser/ini_parser.h" 30 30 31 31 #include <string.h> … … 254 254 255 255 /** 256 * Reads in Configuration Data.256 * @brief Reads in Configuration Data. 257 257 * @param widget from which Widget on should be saved. 258 258 */ … … 265 265 return; 266 266 267 iniParser. getFirstSection();267 iniParser.firstSection(); 268 268 Widget* groupWidget = widget; 269 269 const char* groupName; … … 272 272 while (groupName = iniParser.getCurrentSection()) 273 273 { 274 printf("GROUP:::%s\n", groupName); 274 275 if((groupWidget = locateGroup(widget, groupName, 1))==NULL) 275 {276 277 278 279 }276 { 277 PRINTF(2)("!!There is no group called %s in this GUI.\n First best Widget will get the Infos assigned.\n Config-File will be updated in next Save\n", groupName); 278 groupWidget = widget; 279 continue; 280 } 280 281 else 281 PRINT(0)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName); 282 283 iniParser.getFirstVar(); 284 while(iniParser.getCurrentName()) 285 { 286 varInfo.variableName = iniParser.getCurrentName(); 282 PRINT(4)("Group %s located.\n", static_cast<Packer*>(groupWidget)->groupName); 283 284 const char* entryName; 285 iniParser.firstVar(); 286 while(entryName = iniParser.getCurrentName()) 287 { 288 PRINTF(4)("ENTRY:::%s = %s\n", entryName, iniParser.getCurrentValue()); 289 varInfo.variableName = entryName; 287 290 varInfo.variableValue = iniParser.getCurrentValue(); 288 291 groupWidget->walkThrough(this->readFileText, &varInfo, 0); … … 303 306 { 304 307 VarInfo* info =(VarInfo*)varInfo; 308 if (info == NULL || info->variableName == NULL) 309 return; 310 305 311 if(widget->title && !strcmp(widget->title, info->variableName)) 306 312 { 307 313 PRINT(5)("Located Option %s.\n", widget->title); 308 314 if(widget->optionType > GUI_NOTHING) 309 static_cast<Option*>(widget)->load(info->variableValue); 315 if (info->variableValue != NULL) 316 static_cast<Option*>(widget)->load(info->variableValue); 310 317 } 311 318 } … … 323 330 { 324 331 Widget* tmp; 332 if (widget == NULL || groupName == NULL) 333 return NULL; 325 334 326 335 if(widget->optionType < GUI_NOTHING) 327 336 { 328 if(static_cast<Packer*>(widget)->getGroupName() &&337 if(static_cast<Packer*>(widget)->getGroupName() != NULL && 329 338 !strcmp(groupName, static_cast<Packer*>(widget)->getGroupName())) 330 { 331 return widget; 332 } 339 return widget; 333 340 else 334 341 { 335 if((tmp = locateGroup(static_cast<Packer*>(widget)->down, groupName, depth+1)) != NULL) 342 if((tmp = locateGroup(static_cast<Packer*>(widget)->down, 343 groupName, depth+1)) != NULL) 336 344 return tmp; 337 345 } -
branches/avi_play/src/lib/gui/gtk_gui/gui_keys.cc
r5766 r5961 119 119 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_LEFT, "LEFT")); 120 120 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_RIGHT, "RIGHT")); 121 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_FIRE, " MOUSE_LEFT"));121 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_FIRE, "BUTTON_LEFT")); 122 122 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_NEXT_WEAPON, "m")); 123 123 pKeysBox->fill(addKey(CONFIG_NAME_PLAYER_PREV_WEAPON, "n")); -
branches/avi_play/src/lib/particles/particle_engine.h
r5447 r5961 12 12 #include "particle_emitter.h" 13 13 14 #include " tinyxml.h"14 #include "parser/tinyxml/tinyxml.h" 15 15 16 16 // FORWARD DECLARATION -
branches/avi_play/src/lib/particles/particle_system.cc
r5750 r5961 30 30 #include "shell_command.h" 31 31 32 #include " tinyxml.h"32 #include "parser/tinyxml/tinyxml.h" 33 33 34 34 CREATE_FACTORY(ParticleSystem, CL_PARTICLE_SYSTEM); -
branches/avi_play/src/lib/physics/physics_engine.cc
r5779 r5961 20 20 #include "class_list.h" 21 21 #include "list.h" 22 #include " tinyxml.h"22 #include "parser/tinyxml/tinyxml.h" 23 23 #include "factory.h" 24 24 #include "load_param.h" -
branches/avi_play/src/lib/sound/sound_buffer.cc
r5422 r5961 20 20 #include "sound_engine.h" 21 21 22 23 22 using namespace std; 24 25 23 26 24 ////////////////// … … 36 34 this->setName(fileName); 37 35 38 SoundEngine::getInstance()->addBuffer(this);39 40 36 ALenum format; 41 37 ALvoid* data; … … 47 43 alGenBuffers(1, &this->bufferID); 48 44 if ((result = alGetError()) != AL_NO_ERROR) 49 SoundEngine::PrintALErrorString(result);45 PRINTF(2)("%s\n", SoundEngine::getALErrorString(result)); 50 46 51 47 // read in the wav data … … 59 55 #endif 60 56 if ((result = alGetError()) != AL_NO_ERROR) 61 SoundEngine::PrintALErrorString(result);57 PRINTF(2)("%s\n", SoundEngine::getALErrorString(result)); 62 58 63 59 // send the loaded wav data to the buffer 64 60 alBufferData(this->bufferID, format, data, this->size, freq); 65 61 if ((result = alGetError()) != AL_NO_ERROR) 66 SoundEngine::PrintALErrorString(result);62 PRINTF(2)("%s\n", SoundEngine::getALErrorString(result)); 67 63 68 64 // remove the wav data (redundant) 69 65 alutUnloadWAV(format, data, this->size, freq); 70 66 if ((result = alGetError()) != AL_NO_ERROR) 71 SoundEngine::PrintALErrorString(result);67 PRINTF(2)("%s\n", SoundEngine::getALErrorString(result)); 72 68 } 73 69 -
branches/avi_play/src/lib/sound/sound_engine.cc
r5924 r5961 27 27 #include "resource_manager.h" 28 28 #include "debug.h" 29 #include " ini_parser.h"29 #include "parser/ini_parser/ini_parser.h" 30 30 #include "globals.h" 31 31 … … 47 47 this->bufferList = NULL; 48 48 this->sourceList = NULL; 49 50 this->device = NULL; 51 this->context = NULL; 52 53 this->maxSourceCount = 32; 49 54 } 50 55 … … 64 69 while (this->sourceList->size() > 0) 65 70 delete dynamic_cast<SoundSource*>(this->sourceList->front()); 71 } 72 73 while(!this->ALSources.empty()) 74 { 75 alDeleteSources(1, &this->ALSources.top()); 76 this->ALSources.pop(); 66 77 } 67 78 … … 86 97 void SoundEngine::loadSettings(IniParser* iniParser) 87 98 { 99 const char* channels = iniParser->getVar(CONFIG_NAME_AUDIO_CHANNELS, CONFIG_SECTION_AUDIO, "32"); 100 this->maxSourceCount = atoi(channels); 88 101 const char* musicVolume = iniParser->getVar(CONFIG_NAME_MUSIC_VOLUME, CONFIG_SECTION_AUDIO, "80"); 89 102 this->musicVolume = atof(musicVolume)/100.0; … … 118 131 119 132 120 /** 121 * adds a SoundBuffer to the bufferList of the SoundEngine 122 * @param buffer The buffer to add to the bufferList 123 */ 124 void SoundEngine::addBuffer(SoundBuffer* buffer) 125 { 126 if (unlikely(this->bufferList == NULL)) 127 this->bufferList = ClassList::getList(CL_SOUND_BUFFER); 128 } 129 130 /** 131 * removes a SoundBuffer from the bufferList of the SoundEngine 132 * @param buffer The buffer to delete from the SoundEngine 133 */ 134 void SoundEngine::removeBuffer(SoundBuffer* buffer) 135 { 136 // look if there are any sources that have the buffer still loaded 137 if (this->sourceList != NULL) 138 { 139 list<BaseObject*>::const_iterator source; 140 for (source = this->sourceList->begin(); source != this->sourceList->end(); source++) 141 { 142 if (buffer == static_cast<SoundSource*>(*source)->getBuffer()) 143 delete (*source); 133 void SoundEngine::popALSource(ALuint& source) 134 { 135 if (source != 0) 136 return; 137 else 138 { 139 140 /// @TODO try to create more sources if needed 141 if (!this->ALSources.empty()) 142 { 143 144 source = this->ALSources.top(); 145 printf("test: : %d\n", source); 146 this->ALSources.pop(); 144 147 } 145 148 } 146 149 } 147 150 148 /**149 * adds a SoundSource to the sourceList of the SoundEngine150 * @param source The source to add to the sourceList151 */152 void SoundEngine::addSource(SoundSource* source)153 {154 this->sourceList = ClassList::getList(CL_SOUND_SOURCE);155 }156 151 157 152 /** … … 180 175 181 176 // updating all the Sources positions 182 if (likely(this->sourceList != NULL ))177 if (likely(this->sourceList != NULL || (this->sourceList = ClassList::getList(CL_SOUND_SOURCE)) != NULL)) 183 178 { 184 179 list<BaseObject*>::const_iterator sourceIT; … … 187 182 { 188 183 source = static_cast<SoundSource*>(*sourceIT); 189 if ( likely(source->getNode() != NULL))184 if (source->isPlaying()) 190 185 { 191 alSource3f(source->getID(), AL_POSITION, 192 source->getNode()->getAbsCoor().x, 193 source->getNode()->getAbsCoor().y, 194 source->getNode()->getAbsCoor().z); 195 alSource3f(source->getID(), AL_VELOCITY, 196 source->getNode()->getVelocity().x, 197 source->getNode()->getVelocity().y, 198 source->getNode()->getVelocity().z); 186 int play; 187 alGetSourcei(source->getID(), AL_SOURCE_STATE, &play); 188 if(play == AL_PLAYING) 189 { 190 if (likely(source->getNode() != NULL)) 191 { 192 alSource3f(source->getID(), AL_POSITION, 193 source->getNode()->getAbsCoor().x, 194 source->getNode()->getAbsCoor().y, 195 source->getNode()->getAbsCoor().z); 196 alSource3f(source->getID(), AL_VELOCITY, 197 source->getNode()->getVelocity().x, 198 source->getNode()->getVelocity().y, 199 source->getNode()->getVelocity().z); 200 } 201 202 } 203 else 204 { 205 source->stop(); 206 } 199 207 } 200 208 } … … 281 289 282 290 // INITIALIZING THE DEVICE: 283 #if ndef AL_VERSION_1_1291 #ifdef AL_VERSION_1_1 284 292 ALubyte deviceName[] = 285 293 #else … … 300 308 301 309 if ((result = alGetError()) != AL_NO_ERROR) 302 SoundEngine::PrintALErrorString(result);310 PRINTF(2)("%s\n", SoundEngine::getALErrorString(result)); 303 311 304 312 this->setDopplerValues(SOUND_DOPPLER_FACTOR, SOUND_DOPPLER_VELOCITY); … … 313 321 bool SoundEngine::allocateSources(unsigned int count) 314 322 { 315 ALuint* sourceList = new ALuint[count];316 323 ALenum result; 317 318 alGenSources(count, sourceList);319 if ((result = alGetError()) != AL_NO_ERROR)320 {321 SoundEngine::PrintALErrorString(result);322 return false;323 }324 325 /// @TODO check syntax326 327 328 324 // Setting default values. 329 for (int i = 0; i < count; i++) 330 { 331 alSourcef (sourceList[i], AL_PITCH, 1.0 ); 332 alSourcef (sourceList[i], AL_GAIN, this->getEffectsVolume() ); 333 alSourcei (sourceList[i], AL_LOOPING, AL_FALSE ); 334 this->ALSources.push(sourceList[i]); 325 for (unsigned int i = 0; i < count; i++) 326 { 327 ALuint source; 328 329 alGenSources(1, &source); 330 if ((result = alGetError()) != AL_NO_ERROR) 331 PRINTF(1)("Error Generating Sources: '%s'\n", SoundEngine::getALErrorString(result)); 332 333 alSourcef (source, AL_PITCH, 1.0 ); 334 alSourcef (source, AL_GAIN, this->getEffectsVolume() ); 335 alSourcei (source, AL_LOOPING, AL_FALSE ); 336 this->ALSources.push(source); 335 337 } 336 338 return true; … … 341 343 * @param err The error found 342 344 */ 343 void SoundEngine::PrintALErrorString(ALenum err)345 const char* SoundEngine::getALErrorString(ALenum err) 344 346 { 345 347 switch(err) 346 348 { 347 349 case AL_NO_ERROR: 348 PRINTF(4)("AL_NO_ERROR\n"); 349 break; 350 350 return ("AL_NO_ERROR"); 351 351 case AL_INVALID_NAME: 352 PRINTF(2)("AL_INVALID_NAME\n"); 353 break; 354 352 return ("AL_INVALID_NAME"); 355 353 case AL_INVALID_ENUM: 356 PRINTF(2)("AL_INVALID_ENUM\n"); 357 break; 358 354 return ("AL_INVALID_ENUM"); 359 355 case AL_INVALID_VALUE: 360 PRINTF(2)("AL_INVALID_VALUE\n"); 361 break; 362 356 return ("AL_INVALID_VALUE"); 363 357 case AL_INVALID_OPERATION: 364 PRINTF(2)("AL_INVALID_OPERATION\n"); 365 break; 366 358 return ("AL_INVALID_OPERATION"); 367 359 case AL_OUT_OF_MEMORY: 368 PRINTF(2)("AL_OUT_OF_MEMORY\n"); 369 break; 360 return ("AL_OUT_OF_MEMORY"); 370 361 }; 371 362 } … … 373 364 void SoundEngine::listDevices() 374 365 { 375 376 366 printf("%s\n",(const char*)alcGetString(NULL, ALC_DEVICE_SPECIFIER)); 377 367 } -
branches/avi_play/src/lib/sound/sound_engine.h
r5924 r5961 26 26 //! A class that handles audio via the openAudioLibrary 27 27 class SoundEngine : public BaseObject { 28 29 28 public: 30 29 virtual ~SoundEngine(); … … 49 48 50 49 // administrative 51 void addBuffer(SoundBuffer* buffer); 52 void removeBuffer(SoundBuffer* buffer); 53 void addSource(SoundSource* source); 50 void popALSource(ALuint& source); 51 void pushALSource(ALuint& source) { if (source != 0) this->ALSources.push(source); }; 54 52 55 53 void flushUnusedBuffers(); … … 57 55 void flushAllSources(); 58 56 57 bool initAudio(); 59 58 bool allocateSources(unsigned int count); 60 bool initAudio();61 59 62 60 // error handling: 63 static void PrintALErrorString(ALenum err); 64 // static void PrintALCErrorString(ALenum err); 65 61 static const char* getALErrorString(ALenum err); 66 62 67 63 private: 68 64 SoundEngine(); 65 69 66 void listDevices(); 70 67 -
branches/avi_play/src/lib/sound/sound_source.cc
r5924 r5961 34 34 35 35 // adding the Source to the SourcesList of the SoundEngine 36 SoundEngine::getInstance()->addSource(this);37 38 36 this->buffer = buffer; 39 37 this->sourceNode = sourceNode; 40 38 41 alGenSources(1, &this->sourceID); 42 if ((result = alGetError()) != AL_NO_ERROR) 43 SoundEngine::PrintALErrorString(result); 44 if (this->buffer != NULL) 45 alSourcei (this->sourceID, AL_BUFFER, this->buffer->getID()); 46 alSourcef (this->sourceID, AL_PITCH, 1.0 ); 47 alSourcef (this->sourceID, AL_GAIN, SoundEngine::getInstance()->getEffectsVolume() ); 48 alSourcei (sourceID, AL_LOOPING, AL_FALSE ); 39 this->sourceID = 0; 40 this->bPlay = false; 49 41 } 50 42 … … 54 46 SoundSource::~SoundSource() 55 47 { 56 //SoundEngine::getInstance()->removeSource(this); 57 alDeleteSources(1, &this->sourceID); 48 SoundEngine::getInstance()->pushALSource(this->sourceID); 58 49 } 59 50 … … 63 54 void SoundSource::play() 64 55 { 56 if (this->sourceID == 0) 57 SoundEngine::getInstance()->popALSource(this->sourceID); 65 58 alSourcePlay(this->sourceID); 59 this->bPlay = true; 66 60 } 67 61 … … 72 66 void SoundSource::play(const SoundBuffer* buffer) 73 67 { 68 if (unlikely(this->sourceID == 0)) 69 SoundEngine::getInstance()->popALSource(this->sourceID); 70 71 printf("%d\n",sourceID); 74 72 alSourceStop(this->sourceID); 75 73 alSourcei (this->sourceID, AL_BUFFER, buffer->getID()); … … 78 76 if (unlikely(this->buffer != NULL)) 79 77 alSourcei (this->sourceID, AL_BUFFER, this->buffer->getID()); 78 this->bPlay = true; 80 79 } 81 80 … … 85 84 void SoundSource::stop() 86 85 { 86 this->bPlay = false; 87 87 alSourceStop(this->sourceID); 88 SoundEngine::getInstance()->pushALSource(this->sourceID); 88 89 } 89 90 -
branches/avi_play/src/lib/sound/sound_source.h
r5924 r5961 31 31 /** @returns The ID of this Source */ 32 32 inline ALuint getID() const { return this->sourceID; } 33 /** @returns true, if the Source is Playing */ 34 inline bool isPlaying() const { return this->bPlay; }; 33 35 /** @returns the SoundBuffer of this Source */ 34 36 inline const SoundBuffer* getBuffer() const { return this->buffer; } -
branches/avi_play/src/lib/util/executor/executor_specials.h
r5754 r5961 10 10 11 11 #include "compiler.h" 12 #include " tinyxml.h"12 #include "parser/tinyxml/tinyxml.h" 13 13 // FORWARD DECLARATION 14 14
Note: See TracChangeset
for help on using the changeset viewer.