[Scummvm-cvs-logs] CVS: scummvm/scumm midiparser_eup.cpp,1.1,1.2
Jamieson Christian
jamieson630 at users.sourceforge.net
Tue Sep 16 14:29:07 CEST 2003
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm imuse.cpp,2.93,2.94 imuse_player.cpp,2.29,2.30 scummvm.cpp,2.392,2.393 sound.cpp,1.252,1.253
- Next message: [Scummvm-cvs-logs] CVS: scummvm/bs2 layers.cpp,1.5,1.6 layers.h,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv31438/scummvm/scumm
Modified Files:
midiparser_eup.cpp
Log Message:
Removed redundant presets storage.
Index: midiparser_eup.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/midiparser_eup.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- midiparser_eup.cpp 16 Sep 2003 11:42:35 -0000 1.1
+++ midiparser_eup.cpp 16 Sep 2003 21:28:46 -0000 1.2
@@ -34,11 +34,11 @@
class MidiParser_EUP : public MidiParser {
protected:
struct {
- bool mute;
- uint8 channel;
- int8 volume;
- int8 transpose;
- } _presets[32];
+ byte *enable;
+ int8 *channel;
+ int8 *volume;
+ int8 *transpose;
+ } _presets;
bool _loop;
byte _presend; // Tracks which startup implied events have been sent.
@@ -84,15 +84,15 @@
byte cmd = *pos;
if ((cmd & 0xF0) == 0x90) {
byte preset = pos[1];
- byte channel = _presets[preset].channel;
+ byte channel = _presets.channel[preset];
if (channel >= 16)
channel = cmd & 0x0F;
uint16 tick = pos[2] | ((uint16) pos[3] << 7);
- int note = (int) pos[4] + _presets[preset].transpose;
- int volume = (int) pos[5] + _presets[preset].volume;
+ int note = (int) pos[4] + _presets.transpose[preset];
+ int volume = (int) pos[5] + _presets.volume[preset];
pos += 6;
if ((*pos & 0xF0) == 0x80) {
- if (!_presets[preset].mute) {
+ if (_presets.enable[preset]) {
uint16 duration = pos[1] | (pos[2] << 4) | (pos[3] << 8) | (pos[4] << 12);
info.start = pos;
uint32 last = _position._last_event_tick;
@@ -157,13 +157,16 @@
byte numInstruments = pos[16];
pos += (16 + 2 + numInstruments * 48);
- for (int i = 0; i < 32; ++i) {
- _presets[i].mute = ((int8) pos[i] == 0);
- _presets[i].channel = pos[i+32];
- _presets[i].volume = (int8) pos[i+64];
- _presets[i].transpose = (int8) pos[i+96];
- }
- pos += 32 * 4; // Jump past presets
+ // Load the prest pointers
+ _presets.enable = pos;
+ pos += 32;
+ _presets.channel = (int8 *) pos;
+ pos += 32;
+ _presets.volume = (int8 *) pos;
+ pos += 32;
+ _presets.transpose = (int8 *) pos;
+ pos += 32;
+
pos += 8; // Unknown bytes
pos += 6; // Instrument-to-channel mapping (not supported yet)
pos += 4; // Skip the music size for now.
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm imuse.cpp,2.93,2.94 imuse_player.cpp,2.29,2.30 scummvm.cpp,2.392,2.393 sound.cpp,1.252,1.253
- Next message: [Scummvm-cvs-logs] CVS: scummvm/bs2 layers.cpp,1.5,1.6 layers.h,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list