00001 /* 00002 Copyright (C) 2004 Parallel Realities 00003 00004 This program is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU General Public License 00006 as published by the Free Software Foundation; either version 2 00007 of the License, or (at your option) any later version. 00008 00009 This program is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 00013 See the GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 00019 */ 00020 00021 class Audio { 00022 00023 private: 00024 00025 char levelMusicName[128]; 00026 00027 Engine *engine; 00028 00029 Mix_Chunk *sound[MAX_SOUNDS]; 00030 Mix_Chunk *quickSound; 00031 00032 int musicVolume; 00033 int soundVolume; 00034 00035 Mix_Music *music; 00036 00037 public: 00038 00039 int output; 00040 bool useSound, useMusic; 00041 00042 Audio(); 00043 void setSoundVolume(int soundVolume); 00044 void setMusicVolume(int musicVolume); 00045 void registerEngine(Engine *engine); 00046 bool loadSound(int i, char *filename); 00047 bool loadMusic(char *filename); 00048 void playSound(int snd, int channel); 00049 void playMusic(); 00050 void playMusicOnce(); 00051 int playMenuSound(int sound); 00052 bool loadGameOverMusic(); 00053 bool reloadLevelMusic(); 00054 void playAmbiance(); 00055 void stopAmbiance(); 00056 void pause(); 00057 void resume(); 00058 void stopMusic(); 00059 void fadeMusic(); 00060 void free(); 00061 void destroy(); 00062 00063 };