aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/mixer.cpp16
-rw-r--r--sound/mixer.h4
2 files changed, 16 insertions, 4 deletions
diff --git a/sound/mixer.cpp b/sound/mixer.cpp
index c49d09b908..f1cab83ff7 100644
--- a/sound/mixer.cpp
+++ b/sound/mixer.cpp
@@ -23,6 +23,16 @@
#include "stdafx.h"
#include "scumm.h"
+SoundMixer::SoundMixer()
+{
+ _volume_table = (int16 *)calloc(256 * sizeof(int16), 1);
+}
+
+SoundMixer::~SoundMixer()
+{
+ free(_volume_table);
+}
+
void SoundMixer::uninsert(Channel * chan)
{
@@ -146,8 +156,6 @@ void SoundMixer::on_generate_samples(void *s, byte *samples, int len)
bool SoundMixer::bind_to_system(OSystem *syst)
{
- _volume_table = (int16 *)calloc(256 * sizeof(int16), 1);
-
uint rate = (uint) syst->property(OSystem::PROP_GET_SAMPLE_RATE, 0);
_output_rate = rate;
@@ -211,10 +219,10 @@ void SoundMixer::set_volume(int volume)
// The volume table takes 8 bit unsigned data as index and returns 16 bit signed
for (i = 0; i < 128; i++)
- _volume_table[i] = i * volume ;
+ _volume_table[i] = i * volume;
for (i = -128; i < 0; i++)
- _volume_table[i+256] = i * volume ;
+ _volume_table[i+256] = i * volume;
}
void SoundMixer::set_music_volume(int volume)
diff --git a/sound/mixer.h b/sound/mixer.h
index 3bf5aaf755..9ce371acd7 100644
--- a/sound/mixer.h
+++ b/sound/mixer.h
@@ -24,6 +24,7 @@
#define MIXER_H
#include <stdio.h>
+
#ifdef COMPRESSED_SOUND_FILE
#include <mad.h>
#endif
@@ -146,6 +147,9 @@ public:
Channel *_channels[NUM_CHANNELS];
PlayingSoundHandle *_handles[NUM_CHANNELS];
+ SoundMixer();
+ ~SoundMixer();
+
int insert_at(PlayingSoundHandle *handle, int index, Channel * chan);
void append(void *data, uint32 len);
void uninsert(Channel * chan);