Some Window$ specific edits.
[dbw.git] / src / CAudio.h
blob9038b5196b548946606aaf3cc07030e3d575358c
1 /*
2 Copyright (C) 2004 Parallel Realities
3 Copyright (C) 2007 Kővágó Zoltán
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 See the GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 #ifndef CAUDIO_H
23 #define CAUDIO_H
25 #include "CEngine.h"
26 #include <SDL/SDL_mixer.h>
28 #include "defs.h"
30 #include <string>
32 class Audio {
34 private:
36 char levelMusicName[128];
38 Engine *engine;
40 Mix_Chunk *sound[MAX_SOUNDS];
41 Mix_Chunk *quickSound;
43 int musicVolume;
44 int soundVolume;
46 Mix_Music *music;
47 SDL_RWops *music_rwops;
49 public:
51 int output;
52 bool useSound, useMusic;
54 Audio();
55 void setSoundVolume(int soundVolume);
56 void setMusicVolume(int musicVolume);
57 void registerEngine(Engine *engine);
58 bool loadSound(int i, char *filename);
59 bool loadMusic(const char *filename);
60 bool loadMusic(const std::string& filename) { return loadMusic(filename.c_str()); };
61 void playSound(int snd, int channel);
62 void playMusic();
63 void playMusicOnce();
64 int playMenuSound(int sound);
65 bool loadGameOverMusic();
66 bool reloadLevelMusic();
67 void playAmbiance();
68 void stopAmbiance();
69 void pause();
70 void resume();
71 void stopMusic();
72 void fadeMusic();
73 void free();
74 void destroy();
78 #endif