Changeset 10
- Timestamp:
- 15.06.2008 13:36:46 (4 years ago)
- Location:
- trunk
- Files:
-
- 7 modified
-
lineo (modified) (previous)
-
src/Lineo.cpp (modified) (1 diff)
-
src/Musique.cpp (modified) (6 diffs)
-
src/Musique.h (modified) (2 diffs)
-
src/Sample.cpp (modified) (1 diff)
-
src/Sample.h (modified) (2 diffs)
-
src/VueSousOption.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/Lineo.cpp
r9 r10 108 108 SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,SDL_DEFAULT_REPEAT_INTERVAL); 109 109 SDL_EnableUNICODE(1); 110 // on précise aux classes manipulant des sons si elles doivent être silencieuses ou non 111 bool mute = Config::getInstance()->get("musique")!="ON"; 112 Musique::getInstance()->mute(mute); 113 Sample::getInstance()->mute(mute); 110 114 // on initialise la musique du jeu 111 if(Config::getInstance()->get("musique")=="ON"){ 112 // on initialise la musique 113 Musique::getInstance()->init(MUSIQUE_MENUS); 114 } 115 Musique::getInstance()->init(MUSIQUE_MENUS); 115 116 // on créé les fonts 116 117 VFont::getInstance()->add(FONT_12_WHITE,(string)(DATA_PATH)+"fonts/arial_12_white_blueout_flat","png"); -
trunk/src/Musique.cpp
r1 r10 52 52 { 53 53 if(_Singleton != NULL){ 54 // on termine proprement la musique éventuellement jouée à ce moment 55 Musique::getInstance()->stop(); 54 56 // On quitte SDL_mixer 55 57 Mix_CloseAudio(); … … 59 61 } 60 62 63 // il faut bien vérifier de tout fermer ce qui aurait pu être ouvert 64 void Musique::mute(bool mute) 65 { 66 _Mute = mute; 67 if(_Mute){ 68 stop(); 69 } 70 } 71 61 72 // initialise la classe 62 73 void Musique::init(string file_name) 63 74 { 75 // si le son est désactivé on ne va pas plus loin, et en plaçant l'instance à NULL 76 // toutes les fonctions de la classe seront sans effet 77 if(_Mute){ 78 _Music = NULL; 79 return; 80 } 64 81 // on enregistre le nom du fichier 65 82 _FileName = file_name; … … 119 136 if(_Music == NULL) return; 120 137 Mix_HaltMusic(); 138 _Music = NULL; 121 139 } 122 140 … … 125 143 void Musique::decrechendo(Uint32 duration) 126 144 { 145 if(_Music == NULL) return; 127 146 // on enregistre la durée pour plus tard 128 147 _Duration = duration; … … 149 168 // on boucle et on descent d'un pas à chaque fois 150 169 for(Uint16 pas=255;pas>0;pas--){ 170 if(_Mute){ 171 // on termine le thread, car ça ne sert à rien de rester... 172 return 0; 173 } 151 174 // on descend d'un palier le son 152 175 if(!Mix_SetPanning(MIX_CHANNEL_POST, pas, pas)) { … … 163 186 SDL_Delay(delay); 164 187 } 165 // on s'assure qu'au final elson est bien coupé188 // on s'assure qu'au final le son est bien coupé 166 189 stop(); 167 190 // c'est fini on quitte le thread -
trunk/src/Musique.h
r1 r10 45 45 Uint32 _Duration; 46 46 SDL_Thread *_Thread; 47 bool _Mute; 47 48 48 49 //******************* … … 52 53 static void kill (); 53 54 55 void mute(bool mute); 54 56 void init(string file_name); 55 57 void play(); -
trunk/src/Sample.cpp
r1 r10 52 52 } 53 53 54 void Sample::mute(bool mute) 55 { 56 _Mute = mute; 57 } 58 54 59 void Sample::play(string file_name) 55 60 { 56 Mix_Chunk *sample; 57 sample=Mix_LoadWAV(((string)(DATA_PATH)+"son/"+file_name).c_str()); 58 if(!sample) { 59 fprintf(stderr, 60 "\nErreur: Je ne peux pas charger le sample!\n" 61 "L'erreur que SDL(mixer) a renvoyé était:\n" 62 "%s\n\n", Mix_GetError()); 63 } 64 if(Mix_PlayChannel(-1, sample, 0)==-1) { 65 fprintf(stderr, 66 "\nErreur: Je ne peux pas jouer le sample!\n" 67 "L'erreur que SDL(mixer) a renvoyé était:\n" 68 "%s\n\n", Mix_GetError()); 61 if(!_Mute){ 62 Mix_Chunk *sample; 63 sample=Mix_LoadWAV(((string)(DATA_PATH)+"son/"+file_name).c_str()); 64 if(!sample) { 65 fprintf(stderr, 66 "\nErreur: Je ne peux pas charger le sample!\n" 67 "L'erreur que SDL(mixer) a renvoyé était:\n" 68 "%s\n\n", Mix_GetError()); 69 } 70 if(Mix_PlayChannel(-1, sample, 0)==-1) { 71 fprintf(stderr, 72 "\nErreur: Je ne peux pas jouer le sample!\n" 73 "L'erreur que SDL(mixer) a renvoyé était:\n" 74 "%s\n\n", Mix_GetError()); 75 } 69 76 } 70 77 } -
trunk/src/Sample.h
r1 r10 50 50 private: 51 51 static Sample *_Singleton; 52 bool _Mute; 52 53 53 54 //******************* … … 57 58 static void kill(); 58 59 60 void mute(bool mute); 59 61 void play(string file_name); 60 62 -
trunk/src/VueSousOption.cpp
r1 r10 103 103 _Menu->setItemOn(_NoItemMusiqueOn); 104 104 Config::getInstance()->set("musique","ON"); 105 // on permet à Musique et à Sample de jouer des sons 106 Musique::getInstance()->mute(false); 107 Sample::getInstance()->mute(false); 105 108 // on commence à jouer de la musique 106 109 Musique::getInstance()->init(MUSIQUE_MENUS); … … 110 113 _Menu->setItemOn(_NoItemMusiqueOff); 111 114 Config::getInstance()->set("musique","OFF"); 112 // on arrête de jouer la musique pour pas énerver pendant la partie113 Musique::getInstance()-> stop();114 Musique::kill();115 // on ne permet plus à Musique et à Sample de jouer des sons 116 Musique::getInstance()->mute(true); 117 Sample::getInstance()->mute(true); 115 118 }break; 116 119 }
