aboutsummaryrefslogtreecommitdiff
path: root/sound/iff_sound.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sound/iff_sound.cpp')
-rw-r--r--sound/iff_sound.cpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/sound/iff_sound.cpp b/sound/iff_sound.cpp
index 267a332500..c201830f60 100644
--- a/sound/iff_sound.cpp
+++ b/sound/iff_sound.cpp
@@ -27,17 +27,35 @@
#include "sound/audiostream.h"
#include "sound/mixer.h"
#include "sound/raw.h"
+#include "common/iff_container.h"
#include "common/func.h"
namespace Audio {
+struct Voice8Header {
+ uint32 oneShotHiSamples;
+ uint32 repeatHiSamples;
+ uint32 samplesPerHiCycle;
+ uint16 samplesPerSec;
+ byte octaves;
+ byte compression;
+ uint32 volume;
+
+ Voice8Header() {
+ memset(this, 0, sizeof(Voice8Header));
+ }
+
+ void load(Common::ReadStream &stream);
+};
+
void Voice8Header::load(Common::ReadStream &stream) {
- stream.read(this, sizeof(Voice8Header));
- oneShotHiSamples = FROM_BE_32(oneShotHiSamples);
- repeatHiSamples = FROM_BE_32(repeatHiSamples);
- samplesPerHiCycle = FROM_BE_32(samplesPerHiCycle);
- samplesPerSec = FROM_BE_16(samplesPerSec);
- volume = FROM_BE_32(volume);
+ oneShotHiSamples = stream.readUint32BE();
+ repeatHiSamples = stream.readUint32BE();
+ samplesPerHiCycle = stream.readUint32BE();
+ samplesPerSec = stream.readUint16BE();
+ octaves = stream.readByte();
+ compression = stream.readByte();
+ volume = stream.readUint32BE();
}