ScummVM API documentation
sound.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef SUPERNOVA_SOUND_H
23 #define SUPERNOVA_SOUND_H
24 
25 #include "audio/mixer.h"
26 
27 namespace Supernova {
28 
29 class SupernovaEngine;
30 class ResourceManager;
31 
32 enum AudioId {
33  // Supernova 1
34  kAudioFoundLocation, // 44|0
35  kAudioCrash, // 45|0
36  kAudioVoiceHalt, // 46|0
37  kAudioGunShot, // 46|2510
38  kAudioSmash, // 46|4020
39  kAudioVoiceSupernova, // 47|0
40  kAudioVoiceYeah, // 47|24010
41  kAudioRobotShock, // 48|0
42  kAudioRobotBreaks, // 48|2510
43  kAudioShock, // 48|10520
44  kAudioTurntable, // 48|13530
45  kAudioSiren, // 50|0
46  kAudioSnoring, // 50|12786
47  kAudioRocks, // 51|0
48  kAudioDeath, // 53|0
49  kAudioAlarm, // 54|0
50  kAudioSuccess, // 54|8010
51  kAudioSlideDoor, // 54|24020
52  kAudioDoorOpen, // 54|30030
53  kAudioDoorClose, // 54|31040
54  kAudioNumSamples1,
55 
56  // Supernova 2
57  kAudioIntroDing = 0,
58  kAudioSuccess2,
59  kAudioTaxiOpen,
60  kAudioTaxiLeaving,
61  kAudioTaxiArriving,
62  kAudioKiosk,
63  kAudioStage1,
64  kAudioStage2,
65  kAudioAppearance1,
66  kAudioAppearance2,
67  kAudioAppearance3,
68  kAudioElevatorBell,
69  kAudioElevator1,
70  kAudioShip1,
71  kAudioShip2,
72  kAudioShip3,
73  kAudioShipDeath,
74  kAudioDeath2,
75  kAudioCaught,
76  kAudioNumSamples2
77 };
78 
79 enum MusicId {
80  kMusicIntro,
81  kMusicOutro,
82  kMusicMadMonkeys
83 };
84 
85 class Sound {
86 public:
87 
88 public:
89  Sound(Audio::Mixer *mixer, ResourceManager *resMan);
90 
91  void play(AudioId index);
92  void play(MusicId index);
93  void playSiren();
94  void setVolume(int volume);
95  int getVolume();
96  void stop();
97  bool isPlaying();
98 private:
99  Audio::Mixer *_mixer;
100  ResourceManager *_resMan;
101  Audio::SoundHandle _soundHandle;
102 };
103 
104 }
105 
106 #endif
Definition: console.h:27
Definition: resman.h:41
Definition: sound.h:85
Definition: mixer.h:49
Definition: mixer.h:59