22 #ifndef ACCESS_SOUND_H 23 #define ACCESS_SOUND_H 25 #include "common/scummsys.h" 26 #include "access/files.h" 27 #include "audio/midiplayer.h" 47 SoundEntry() : _res(
nullptr), _priority(0), _fileNum(0), _subFileNum(0) { }
48 SoundEntry(
Resource *res,
int priority,
int fileNum = -1,
int subFileNum = -1) :
49 _res(res), _priority(priority), _fileNum(fileNum), _subFileNum(subFileNum) { }
51 bool matches(
const FileIdent &ident)
const {
return _fileNum == ident._fileNum && _subFileNum == ident._subFile; }
58 QueuedSound() : _stream(
nullptr), _soundId(-1) {}
59 QueuedSound(
Audio::AudioStream *stream,
int soundIdx) : _stream(stream), _soundId(soundIdx) {}
70 void playSound(
Resource *res,
int priority,
bool loop,
int soundIndex = -1);
72 bool isSoundQueued(
int soundId)
const;
79 void loadSoundTable(
int idx,
int fileNum,
int subfile,
int priority = 1);
82 int loadAndAddSound(
int fileNum,
int subfile,
int priority = 1);
83 int loadAndAddSound(
const FileIdent &ident,
int priority = 1);
85 bool hasLoadedSound(
const FileIdent &ident)
const;
87 void playSound(
int soundIndex,
bool loop =
false);
88 void playSoundByIdent(
const FileIdent &ident,
bool loop =
false);
89 void checkSoundQueue();
93 int loadRawSound(
const Common::Path &path,
int priority);
98 void freeSound(
int idx);
99 bool hasSounds()
const {
return _soundTable.
size() > 0 && _soundTable[0]._res; }
107 bool isMusicLoaded() {
return _music !=
nullptr; }
109 virtual void loadMusic(
int fileNum,
int subfile);
110 void loadMusic(
FileIdent ident) { loadMusic(ident._fileNum, ident._subFile); };
112 virtual void midiPlay() = 0;
113 virtual bool isPlaying() = 0;
114 virtual void midiRepeat() = 0;
115 virtual void stopSong() = 0;
116 virtual void newMusic(
int musicId,
int mode) = 0;
117 virtual void startMusicFade() = 0;
118 virtual void setLoop(
bool loop) = 0;
119 virtual void syncVolume() = 0;
130 void send(uint32 b)
override;
136 void midiPlay()
override;
138 void midiRepeat()
override;
139 void stopSong()
override;
140 void newMusic(
int musicId,
int mode)
override;
141 void startMusicFade()
override;
142 void setLoop(
bool loop)
override;
155 ~MusicManagerOGG()
override;
157 void midiPlay()
override;
158 bool isPlaying()
override;
159 void midiRepeat()
override;
160 void stopSong()
override;
161 void newMusic(
int musicId,
int mode)
override;
162 void startMusicFade()
override;
163 void setLoop(
bool loop)
override;
164 void syncVolume()
override;
166 void loadMusic(
int fileNum,
int subfile)
override;
Definition: midiplayer.h:63
bool isPlaying() const
Definition: midiplayer.h:94
Definition: audiostream.h:50
size_type size() const
Definition: array.h:316