|
From: Seb <whi...@us...> - 2004-11-20 16:08:38
|
Update of /cvsroot/epfl/tgengine-0.1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29219 Modified Files: soundmanager.cc soundmanager.h Log Message: Plus de thread pour activer/desactiver le soundmanager Utilisation de l'enregistrement de fonctions dans la console -sound active le son -nosound désactive le son Index: soundmanager.cc =================================================================== RCS file: /cvsroot/epfl/tgengine-0.1/soundmanager.cc,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** soundmanager.cc 20 Nov 2004 08:38:25 -0000 1.18 --- soundmanager.cc 20 Nov 2004 16:08:26 -0000 1.19 *************** *** 24,29 **** Init(); - - LoopThread = SDL_CreateThread(SoundManager::MainLoop,NULL); } --- 24,27 ---- *************** *** 71,100 **** #endif ! Engine::pVarManager->AddVar("sound", 1); ! enable = &Engine::pVarManager->GetVar("sound")->intValue; ! ParseSoundFile("data/sounds/file.snd"); - - } - - // Main Loop running in LoopThread - int SoundManager::MainLoop(void* arg) - { - bool done = false; - int* check; - - while (!done) - { - check = &Engine::pVarManager->GetVar("sound")->intValue; - - if(!*check) - pSoundManager->DisableSoundManager(); - //else - //pSoundManager->EnableSoundManager(); - - SDL_Delay(80); - } - - return 0; } --- 69,78 ---- #endif ! Engine::pConsole->Register("nosound", this, DISABLE); ! Engine::pConsole->Register("sound", this, ENABLE); ! ! enable = true; ! ParseSoundFile("data/sounds/file.snd"); } *************** *** 102,105 **** --- 80,89 ---- void SoundManager::DisableSoundManager() { + #ifdef SOUND_DEBUG + cout << "[OpenAL] DisableSoundManager" << endl; + #endif + + enable = false; + map<string, ALuint>::iterator iter = SoundList.begin (); for (; iter!=SoundList.end(); iter++) *************** *** 110,113 **** --- 94,102 ---- void SoundManager::EnableSoundManager() { + #ifdef SOUND_DEBUG + cout << "[OpenAL] EnableSoundManager" << endl; + #endif + + enable = true; } *************** *** 584,592 **** bool SoundManager::CheckSound(string name) { - enable = &Engine::pVarManager->GetVar("sound")->intValue; - if(SoundList[name] && SoundNodeList[name]) { ! if(*enable) { return AL_TRUE; --- 573,579 ---- bool SoundManager::CheckSound(string name) { if(SoundList[name] && SoundNodeList[name]) { ! if(enable) { return AL_TRUE; *************** *** 662,665 **** --- 649,654 ---- return SoundNodeList[name]; } + + return (new SoundNode("undefined")); } Index: soundmanager.h =================================================================== RCS file: /cvsroot/epfl/tgengine-0.1/soundmanager.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** soundmanager.h 20 Nov 2004 08:38:25 -0000 1.9 --- soundmanager.h 20 Nov 2004 16:08:27 -0000 1.10 *************** *** 23,32 **** #include <vorbis/vorbisfile.h> - #ifdef TGWIN32 - #include <SDL/SDL_thread.h> - #else - #include <SDL_thread.h> - #endif - #include "engine.h" --- 23,26 ---- *************** *** 43,47 **** //SoundManager ! class SoundManager { --- 37,41 ---- //SoundManager ! class SoundManager: public Function { *************** *** 49,55 **** static SoundManager* pSoundManager; ! int* enable; // Check if soundmanager is enable or not ! ~SoundManager(); SoundManager(); --- 43,49 ---- static SoundManager* pSoundManager; ! bool enable; // Check if soundmanager is enable or not ! virtual ~SoundManager(); SoundManager(); *************** *** 75,84 **** void EnableSoundManager(); void DisableSoundManager(); private: int endian; // 0 for Little-Endian, 1 for Big-Endian - - SDL_Thread *LoopThread; void Init(); --- 69,92 ---- void EnableSoundManager(); void DisableSoundManager(); + + enum + { + ENABLE=1, + DISABLE=2 + }; + + void Exec (const string& s, int arg) + { + switch(arg) + { + case ENABLE: EnableSoundManager(); break; + case DISABLE: DisableSoundManager(); break; + default: break; + } + } private: int endian; // 0 for Little-Endian, 1 for Big-Endian void Init(); |