[Scummvm-cvs-logs] CVS: scummvm/sound imuse.cpp,1.38,1.39
Max Horn
fingolfin at users.sourceforge.net
Tue Jul 23 03:30:03 CEST 2002
Update of /cvsroot/scummvm/scummvm/sound
In directory usw-pr-cvs1:/tmp/cvs-serv22986
Modified Files:
imuse.cpp
Log Message:
renamed SPECIAL_CHANNEL to PERCUSSION_CHANNEL; don't apply MT32->GM conversion on percussion channel; some indention fixes
Index: imuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/imuse.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- imuse.cpp 22 Jul 2002 12:44:57 -0000 1.38
+++ imuse.cpp 23 Jul 2002 10:29:11 -0000 1.39
@@ -32,7 +32,7 @@
#define TICKS_PER_BEAT 480
#define SYSEX_ID 0x7D
-#define SPECIAL_CHANNEL 9
+#define PERCUSSION_CHANNEL 9
#define TRIGGER_ID 0
#define COMMAND_ID 1
@@ -210,15 +210,12 @@
struct MidiChannel {
Part *_part;
- MidiChannelAdl *adl() {
- return (MidiChannelAdl *)this;
- } MidiChannelGM *gm() {
- return (MidiChannelGM *) this;
- }
+ MidiChannelAdl *adl() { return (MidiChannelAdl *)this; }
+ MidiChannelGM *gm() { return (MidiChannelGM *)this; }
};
-struct MidiChannelGM:MidiChannel {
+struct MidiChannelGM : MidiChannel {
byte _chan;
uint16 _actives[8];
};
@@ -488,7 +485,7 @@
byte duration;
};
-struct MidiChannelAdl:MidiChannel {
+struct MidiChannelAdl : MidiChannel {
MidiChannelAdl *_next, *_prev;
byte _waitforpedal;
byte _note;
@@ -588,7 +585,7 @@
/* IMuseGM classes */
-class IMuseGM:public IMuseDriver {
+class IMuseGM : public IMuseDriver {
IMuseInternal *_se;
OSystem *_system;
MidiDriver *_md;
@@ -618,34 +615,25 @@
void midiInit();
public:
- IMuseGM(MidiDriver *midi) {
- _md = midi;
- } void uninit();
+ IMuseGM(MidiDriver *midi) { _md = midi; }
+ void uninit();
void init(IMuseInternal *eng, OSystem *os);
void update_pris();
void part_off(Part *part);
int part_update_active(Part *part, uint16 *active);
- void on_timer() {
- }
- void set_instrument(uint slot, byte *instr) {
- }
- void part_set_instrument(Part *part, Instrument * instr) {
- }
- void part_set_param(Part *part, byte param, int value) {
- }
+ void on_timer() {}
+ void set_instrument(uint slot, byte *instr) {}
+ void part_set_instrument(Part *part, Instrument * instr) {}
+ void part_set_param(Part *part, byte param, int value) {}
void part_key_on(Part *part, byte note, byte velocity);
void part_key_off(Part *part, byte note);
void part_changed(Part *part, byte what);
static int midi_driver_thread(void *param);
- uint32 get_base_tempo() {
- return 0x460000;
- }
- byte get_hardware_type() {
- return 5;
- }
+ uint32 get_base_tempo() { return 0x460000; }
+ byte get_hardware_type() { return 5; }
};
@@ -4202,12 +4190,12 @@
void IMuseGM::midiProgram(byte chan, byte program, bool mt32emulate)
{
-// if ((chan + 1) != 10) { /* Ignore percussion prededed by patch change */
- if (mt32emulate)
- program = mt32_to_gmidi[program];
+ if (mt32emulate) { /* Don't convert the percussion channel, it is the same in GM and MT32 */
+ if (chan != PERCUSSION_CHANNEL)
+ program = mt32_to_gmidi[program];
+ }
_md->send(program << 8 | 0xC0 | chan);
-// }
}
void IMuseGM::midiPan(byte chan, int8 pan)
@@ -4243,9 +4231,9 @@
mc->_actives[note >> 4] |= (1 << (note & 0xF));
midiNoteOn(mc->_chan, note, velocity);
} else if (part->_percussion) {
- midiVolume(SPECIAL_CHANNEL, part->_vol_eff);
- midiProgram(SPECIAL_CHANNEL, part->_bank, part->_player->_mt32emulate);
- midiNoteOn(SPECIAL_CHANNEL, note, velocity);
+ midiVolume(PERCUSSION_CHANNEL, part->_vol_eff);
+ midiProgram(PERCUSSION_CHANNEL, part->_bank, part->_player->_mt32emulate);
+ midiNoteOn(PERCUSSION_CHANNEL, note, velocity);
}
}
@@ -4257,7 +4245,7 @@
mc->_actives[note >> 4] &= ~(1 << (note & 0xF));
midiNoteOff(mc->_chan, note);
} else if (part->_percussion) {
- midiNoteOff(SPECIAL_CHANNEL, note);
+ midiNoteOff(PERCUSSION_CHANNEL, note);
}
}
More information about the Scummvm-git-logs
mailing list