aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/sound.h
diff options
context:
space:
mode:
authorTravis Howell2009-03-28 09:56:39 +0000
committerTravis Howell2009-03-28 09:56:39 +0000
commit49791796219a0dbd0638b84b79ea6ee53f95cc79 (patch)
treead4f7492a70d7128c6c87ac5a92907510d83bb1d /engines/parallaction/sound.h
parent9131f20587485237956ce8971e12dab533e651da (diff)
downloadscummvm-rg350-49791796219a0dbd0638b84b79ea6ee53f95cc79.tar.gz
scummvm-rg350-49791796219a0dbd0638b84b79ea6ee53f95cc79.tar.bz2
scummvm-rg350-49791796219a0dbd0638b84b79ea6ee53f95cc79.zip
Add sound effects support for PC version of BRA.
svn-id: r39716
Diffstat (limited to 'engines/parallaction/sound.h')
-rw-r--r--engines/parallaction/sound.h33
1 files changed, 18 insertions, 15 deletions
diff --git a/engines/parallaction/sound.h b/engines/parallaction/sound.h
index 5ae4701a02..bef90a866b 100644
--- a/engines/parallaction/sound.h
+++ b/engines/parallaction/sound.h
@@ -141,7 +141,7 @@ public:
void pause(bool p);
};
-#define NUM_AMIGA_CHANNELS 4
+#define NUM_SFX_CHANNELS 4
class AmigaSoundMan_ns : public SoundMan_ns {
@@ -155,7 +155,7 @@ class AmigaSoundMan_ns : public SoundMan_ns {
bool dispose;
Audio::SoundHandle handle;
uint32 flags;
- } _channels[NUM_AMIGA_CHANNELS];
+ } _channels[NUM_SFX_CHANNELS];
void loadChannelData(const char *filename, Channel *ch);
@@ -193,11 +193,23 @@ protected:
virtual void stopMusic() = 0;
virtual void pause(bool p) = 0;
+ struct Channel {
+ Audio::Voice8Header header;
+ int8 *data;
+ uint32 dataSize;
+ bool dispose;
+ Audio::SoundHandle handle;
+ uint32 flags;
+ } _channels[NUM_SFX_CHANNELS];
+
+ virtual void loadChannelData(const char *filename, Channel *ch) = 0;
+
public:
SoundMan_br(Parallaction_br *vm);
+ ~SoundMan_br();
virtual void playSfx(const char *filename, uint channel, bool looping, int volume = -1) { }
- virtual void stopSfx(uint channel) { }
+ void stopSfx(uint channel);
virtual void execute(int command, const char *parm);
void setMusicFile(const char *parm);
@@ -207,6 +219,8 @@ class DosSoundMan_br : public SoundMan_br {
MidiPlayer_MSC *_midiPlayer;
+ void loadChannelData(const char *filename, Channel *ch);
+
public:
DosSoundMan_br(Parallaction_br *vm, MidiDriver *midiDriver);
~DosSoundMan_br();
@@ -216,7 +230,6 @@ public:
void pause(bool p);
void playSfx(const char *filename, uint channel, bool looping, int volume);
- void stopSfx(uint channel);
};
class AmigaSoundMan_br : public SoundMan_br {
@@ -224,16 +237,7 @@ class AmigaSoundMan_br : public SoundMan_br {
Audio::AudioStream *_musicStream;
Audio::SoundHandle _musicHandle;
- struct Channel {
- Audio::Voice8Header header;
- int8 *data;
- uint32 dataSize;
- bool dispose;
- Audio::SoundHandle handle;
- uint32 flags;
- } _channels[NUM_AMIGA_CHANNELS];
-
- bool loadChannelData(const char *filename, Channel *ch);
+ void loadChannelData(const char *filename, Channel *ch);
public:
AmigaSoundMan_br(Parallaction_br *vm);
@@ -244,7 +248,6 @@ public:
void pause(bool p);
void playSfx(const char *filename, uint channel, bool looping, int volume);
- void stopSfx(uint channel);
};
} // namespace Parallaction