aboutsummaryrefslogtreecommitdiff
path: root/backends/midi/mt32/structures.h
diff options
context:
space:
mode:
authorJerome Fisher2004-11-14 04:13:15 +0000
committerJerome Fisher2004-11-14 04:13:15 +0000
commit1aeca6838b1ba5405674d0f5e38174fe6dedd138 (patch)
tree29452d977920959157474f6902c12d456b96c83a /backends/midi/mt32/structures.h
parent5e442766e533339c1e2f3389a2859601c6ab1127 (diff)
downloadscummvm-rg350-1aeca6838b1ba5405674d0f5e38174fe6dedd138.tar.gz
scummvm-rg350-1aeca6838b1ba5405674d0f5e38174fe6dedd138.tar.bz2
scummvm-rg350-1aeca6838b1ba5405674d0f5e38174fe6dedd138.zip
MT32 MidiDriver:
- Cleanup MT32Emu: - Lots more cleanup. - Properly implemented pitch bending (not fast, but theoretically perfect). - Full position delta is now calculated before PCM interpolation/decimation is performed, so that pitch modifiers will be considered. - Now reports when using SSE or 3DNow, and when the samplerate is invalid. svn-id: r15801
Diffstat (limited to 'backends/midi/mt32/structures.h')
-rw-r--r--backends/midi/mt32/structures.h28
1 files changed, 10 insertions, 18 deletions
diff --git a/backends/midi/mt32/structures.h b/backends/midi/mt32/structures.h
index 5b1db5921b..4c1e237f3e 100644
--- a/backends/midi/mt32/structures.h
+++ b/backends/midi/mt32/structures.h
@@ -22,19 +22,10 @@
#ifndef MT32EMU_STRUCTURES_H
#define MT32EMU_STRUCTURES_H
-#if (defined (_MSC_VER) && defined(_M_IX86)) || (defined(__GNUC__) && defined(__i386__))
-#define HAVE_X86
-#endif
-
-#define MAX_SAMPLE_OUTPUT 4096
-#ifdef HAVE_X86
-#define USE_MMX 1
-#else
-#define USE_MMX 0
-#endif
-
namespace MT32Emu {
+const unsigned int MAX_SAMPLE_OUTPUT = 4096;
+
#ifdef _MSC_VER
#define MT32EMU_ALIGN_PACKED __declspec(align(1))
typedef unsigned __int64 Bit64u;
@@ -195,7 +186,8 @@ union MT32RAMFormat {
#pragma pack()
#endif
-struct sampleFormat {
+struct PCMWave {
+ char name[16];
Bit32u addr;
Bit32u len;
bool loop;
@@ -203,7 +195,7 @@ struct sampleFormat {
Bit32s ampval;
};
-struct sampleTable {
+struct PCMWaveEntry {
Bit32u addr;
Bit32u len;
Bit32u pcmnum;
@@ -216,7 +208,7 @@ struct soundaddr {
Bit16u pcmoffset;
};
-struct volset {
+struct StereoVolume {
Bit16s leftvol;
Bit16s rightvol;
};
@@ -257,6 +249,7 @@ struct PatchCache {
int tvfdepth;
bool useBender;
+ float benderRange; // 0.0, 1.0, .., 24.0 (semitones)
TimbreParam::partialParam::envParam pitchEnv;
TimbreParam::partialParam::tvaParam ampEnv;
@@ -266,7 +259,7 @@ struct PatchCache {
Bit32s pitchsustain;
Bit32s filtsustain;
- Bit32u mix;
+ Bit32u structureMix;
int structurePosition;
int structurePair;
@@ -288,9 +281,8 @@ struct dpoly {
bool reverb;
bool isDecay;
- const Bit32u *bendptr;
- Bit32s *volumeptr;
- volset *pansetptr;
+ const Bit32s *volumeptr;
+ const StereoVolume *pansetptr;
Partial *partials[4];