diff options
-rw-r--r-- | sound/mididrv.cpp | 4 | ||||
-rw-r--r-- | sound/mididrv.h | 44 | ||||
-rw-r--r-- | sound/midiparser.cpp | 115 | ||||
-rw-r--r-- | sound/midiparser.h | 46 | ||||
-rw-r--r-- | sound/midiparser_smf.cpp | 74 | ||||
-rw-r--r-- | sound/midiparser_xmidi.cpp | 8 |
6 files changed, 147 insertions, 144 deletions
diff --git a/sound/mididrv.cpp b/sound/mididrv.cpp index b233ad9a62..424ed915e8 100644 --- a/sound/mididrv.cpp +++ b/sound/mididrv.cpp @@ -126,7 +126,7 @@ int MidiDriver::detectMusicDriver(int midiFlags) { if (musicDriver == MD_AUTO || musicDriver < 0) { if (midiFlags & MDT_PREFER_NATIVE) { if (musicDriver == MD_AUTO) { - #if defined (WIN32) && !defined(_WIN32_WCE) + #if defined(WIN32) && !defined(_WIN32_WCE) musicDriver = MD_WINDOWS; // MD_WINDOWS is default MidiDriver on windows targets #elif defined(MACOSX) musicDriver = MD_COREAUDIO; @@ -134,7 +134,7 @@ int MidiDriver::detectMusicDriver(int midiFlags) { musicDriver = MD_YPA1; // TODO : change this and use Zodiac driver when needed #elif defined(__MORPHOS__) musicDriver = MD_ETUDE; - #elif defined (_WIN32_WCE) || defined(UNIX) || defined(X11_BACKEND) + #elif defined(_WIN32_WCE) || defined(UNIX) || defined(X11_BACKEND) // Always use MIDI emulation via adlib driver on CE and UNIX device // TODO: We should, for the Unix targets, attempt to detect diff --git a/sound/mididrv.h b/sound/mididrv.h index 7575916780..e4b569e5b6 100644 --- a/sound/mididrv.h +++ b/sound/mididrv.h @@ -133,7 +133,7 @@ public: static const char *getErrorName(int error_code); // HIGH-LEVEL SEMANTIC METHODS - virtual void setPitchBendRange (byte channel, uint range) + virtual void setPitchBendRange(byte channel, uint range) { send(( 0 << 16) | (101 << 8) | (0xB0 | channel)); send(( 0 << 16) | (100 << 8) | (0xB0 | channel)); @@ -143,15 +143,15 @@ public: send(( 127 << 16) | (100 << 8) | (0xB0 | channel)); } - virtual void sysEx (byte *msg, uint16 length) { } - virtual void sysEx_customInstrument (byte channel, uint32 type, byte *instr) { } - virtual void metaEvent (byte type, byte*data, uint16 length) { } + virtual void sysEx(byte *msg, uint16 length) { } + virtual void sysEx_customInstrument(byte channel, uint32 type, byte *instr) { } + virtual void metaEvent(byte type, byte*data, uint16 length) { } // Timing functions - MidiDriver now operates timers - virtual void setTimerCallback (void *timer_param, Common::Timer::TimerProc timer_proc) = 0; + virtual void setTimerCallback(void *timer_param, Common::Timer::TimerProc timer_proc) = 0; /** The time in microseconds between invocations of the timer callback. */ - virtual uint32 getBaseTempo (void) = 0; + virtual uint32 getBaseTempo(void) = 0; // Channel allocation functions virtual MidiChannel *allocateChannel() = 0; @@ -164,29 +164,29 @@ public: virtual byte getNumber() = 0; virtual void release() = 0; - virtual void send (uint32 b) = 0; // 4-bit channel portion is ignored + virtual void send(uint32 b) = 0; // 4-bit channel portion is ignored // Regular messages - virtual void noteOff (byte note) = 0; - virtual void noteOn (byte note, byte velocity) = 0; - virtual void programChange (byte program) = 0; - virtual void pitchBend (int16 bend) = 0; // -0x2000 to +0x1FFF + virtual void noteOff(byte note) = 0; + virtual void noteOn(byte note, byte velocity) = 0; + virtual void programChange(byte program) = 0; + virtual void pitchBend(int16 bend) = 0; // -0x2000 to +0x1FFF // Control Change messages - virtual void controlChange (byte control, byte value) = 0; - virtual void modulationWheel (byte value) { controlChange (1, value); } - virtual void volume (byte value) { controlChange (7, value); } - virtual void panPosition (byte value) { controlChange (10, value); } - virtual void pitchBendFactor (byte value) = 0; - virtual void detune (byte value) { controlChange (17, value); } - virtual void priority (byte value) { } - virtual void sustain (bool value) { controlChange (64, value ? 1 : 0); } - virtual void effectLevel (byte value) { controlChange (91, value); } - virtual void chorusLevel (byte value) { controlChange (93, value); } + virtual void controlChange(byte control, byte value) = 0; + virtual void modulationWheel(byte value) { controlChange (1, value); } + virtual void volume(byte value) { controlChange (7, value); } + virtual void panPosition(byte value) { controlChange (10, value); } + virtual void pitchBendFactor(byte value) = 0; + virtual void detune(byte value) { controlChange (17, value); } + virtual void priority(byte value) { } + virtual void sustain(bool value) { controlChange (64, value ? 1 : 0); } + virtual void effectLevel(byte value) { controlChange (91, value); } + virtual void chorusLevel(byte value) { controlChange (93, value); } virtual void allNotesOff() { controlChange (123, 0); } // SysEx messages - virtual void sysEx_customInstrument (uint32 type, byte *instr) = 0; + virtual void sysEx_customInstrument(uint32 type, byte *instr) = 0; }; diff --git a/sound/midiparser.cpp b/sound/midiparser.cpp index 327d6ed71e..046ab17be7 100644 --- a/sound/midiparser.cpp +++ b/sound/midiparser.cpp @@ -33,21 +33,21 @@ ////////////////////////////////////////////////// MidiParser::MidiParser() : -_hanging_notes_count (0), -_driver (0), -_timer_rate (0x4A0000), -_ppqn (96), -_tempo (500000), -_psec_per_tick (5208), // 500000 / 96 -_autoLoop (false), -_smartJump (false), -_num_tracks (0), -_active_track (255), -_abort_parse (0) { - memset (_active_notes, 0, sizeof(_active_notes)); +_hanging_notes_count(0), +_driver(0), +_timer_rate(0x4A0000), +_ppqn(96), +_tempo(500000), +_psec_per_tick(5208), // 500000 / 96 +_autoLoop(false), +_smartJump(false), +_num_tracks(0), +_active_track(255), +_abort_parse(0) { + memset(_active_notes, 0, sizeof(_active_notes)); } -void MidiParser::property (int prop, int value) { +void MidiParser::property(int prop, int value) { switch (prop) { case mpAutoLoop: _autoLoop = (value != 0); @@ -56,14 +56,14 @@ void MidiParser::property (int prop, int value) { } } -void MidiParser::setTempo (uint32 tempo) { +void MidiParser::setTempo(uint32 tempo) { _tempo = tempo; if (_ppqn) _psec_per_tick = (tempo + (_ppqn >> 2)) / _ppqn; } // This is the conventional (i.e. SMF) variable length quantity -uint32 MidiParser::readVLQ (byte * &data) { +uint32 MidiParser::readVLQ(byte * &data) { byte str; uint32 value = 0; int i; @@ -78,7 +78,7 @@ uint32 MidiParser::readVLQ (byte * &data) { return value; } -void MidiParser::activeNote (byte channel, byte note, bool active) { +void MidiParser::activeNote(byte channel, byte note, bool active) { if (note >= 128 || channel >= 16) return; @@ -99,7 +99,7 @@ void MidiParser::activeNote (byte channel, byte note, bool active) { } } -void MidiParser::hangingNote (byte channel, byte note, uint32 time_left, bool recycle) { +void MidiParser::hangingNote(byte channel, byte note, uint32 time_left, bool recycle) { NoteTimer *best = 0; NoteTimer *ptr = _hanging_notes; int i; @@ -115,7 +115,8 @@ void MidiParser::hangingNote (byte channel, byte note, uint32 time_left, bool re return; best = ptr; if (ptr->time_left) { - if (recycle) _driver->send (0x80 | channel | note << 8); + if (recycle) + _driver->send(0x80 | channel | note << 8); --_hanging_notes_count; } break; @@ -160,7 +161,7 @@ void MidiParser::onTimer() { for (i = ARRAYSIZE(_hanging_notes); i; --i, ++ptr) { if (ptr->time_left) { if (ptr->time_left <= _timer_rate) { - _driver->send (0x80 | ptr->channel | ptr->note << 8); + _driver->send(0x80 | ptr->channel | ptr->note << 8); ptr->time_left = 0; --_hanging_notes_count; } else { @@ -187,43 +188,43 @@ void MidiParser::onTimer() { if (info.event == 0xF0) { // SysEx event - _driver->sysEx (info.ext.data, (uint16) info.length); + _driver->sysEx (info.ext.data, (uint16)info.length); } else if (info.event == 0xFF) { // META event if (info.ext.type == 0x2F) { // End of Track must be processed by us, // as well as sending it to the output device. if (_autoLoop) { - jumpToTick (0); - parseNextEvent (_next_event); + jumpToTick(0); + parseNextEvent(_next_event); } else { allNotesOff(); resetTracking(); - _driver->metaEvent (info.ext.type, info.ext.data, (uint16) info.length); + _driver->metaEvent(info.ext.type, info.ext.data, (uint16)info.length); } return; } else if (info.ext.type == 0x51) { if (info.length >= 3) { - setTempo (info.ext.data[0] << 16 | info.ext.data[1] << 8 | info.ext.data[2]); + setTempo(info.ext.data[0] << 16 | info.ext.data[1] << 8 | info.ext.data[2]); } } - _driver->metaEvent (info.ext.type, info.ext.data, (uint16) info.length); + _driver->metaEvent(info.ext.type, info.ext.data, (uint16)info.length); } else { if (info.command() == 0x8) { - activeNote (info.channel(), info.basic.param1, false); + activeNote(info.channel(), info.basic.param1, false); } else if (info.command() == 0x9) { if (info.length > 0) - hangingNote (info.channel(), info.basic.param1, info.length * _psec_per_tick - (end_time - event_time)); + hangingNote(info.channel(), info.basic.param1, info.length * _psec_per_tick - (end_time - event_time)); else - activeNote (info.channel(), info.basic.param1, true); + activeNote(info.channel(), info.basic.param1, true); } - _driver->send (info.event | info.basic.param1 << 8 | info.basic.param2 << 16); + _driver->send(info.event | info.basic.param1 << 8 | info.basic.param2 << 16); } if (!_abort_parse) { _position._last_event_time = event_time; - parseNextEvent (_next_event); + parseNextEvent(_next_event); } } @@ -243,7 +244,7 @@ void MidiParser::allNotesOff() { for (i = 0; i < 128; ++i) { for (j = 0; j < 16; ++j) { if (_active_notes[i] & (1 << j)) { - _driver->send (0x80 | j | i << 8); + _driver->send(0x80 | j | i << 8); } } } @@ -251,7 +252,7 @@ void MidiParser::allNotesOff() { // Turn off all hanging notes for (i = 0; i < ARRAYSIZE(_hanging_notes); i++) { if (_hanging_notes[i].time_left) { - _driver->send (0x80 | _hanging_notes[i].channel | _hanging_notes[i].note << 8); + _driver->send(0x80 | _hanging_notes[i].channel | _hanging_notes[i].note << 8); _hanging_notes[i].time_left = 0; } } @@ -259,15 +260,15 @@ void MidiParser::allNotesOff() { // To be sure, send an "All Note Off" event (but not all MIDI devices support this...) for (i = 0; i < 16; ++i) - _driver->send (0x007BB0 | i); - memset (_active_notes, 0, sizeof(_active_notes)); + _driver->send(0x007BB0 | i); + memset(_active_notes, 0, sizeof(_active_notes)); } void MidiParser::resetTracking() { _position.clear(); } -bool MidiParser::setTrack (int track) { +bool MidiParser::setTrack(int track) { if (track < 0 || track >= _num_tracks) return false; else if (track == _active_track) @@ -279,30 +280,32 @@ bool MidiParser::setTrack (int track) { allNotesOff(); resetTracking(); - memset (_active_notes, 0, sizeof(_active_notes)); + memset(_active_notes, 0, sizeof(_active_notes)); _active_track = track; _position._play_pos = _tracks[track]; - parseNextEvent (_next_event); + parseNextEvent(_next_event); return true; } void MidiParser::hangAllActiveNotes() { // Search for note off events until we have // accounted for every active note. - uint16 temp_active [128]; - memcpy (temp_active, _active_notes, sizeof (temp_active)); + uint16 temp_active[128]; + memcpy(temp_active, _active_notes, sizeof (temp_active)); uint32 advance_tick = _position._last_event_tick; while (true) { int i, j; for (i = 0; i < 128; ++i) - if (temp_active[i] != 0) break; - if (i == 128) break; - parseNextEvent (_next_event); + if (temp_active[i] != 0) + break; + if (i == 128) + break; + parseNextEvent(_next_event); advance_tick += _next_event.delta; if (_next_event.command() == 0x8) { if (temp_active[_next_event.basic.param1] & (1 << _next_event.channel())) { - hangingNote (_next_event.channel(), _next_event.basic.param1, (advance_tick - _position._last_event_tick) * _psec_per_tick, false); + hangingNote(_next_event.channel(), _next_event.basic.param1, (advance_tick - _position._last_event_tick) * _psec_per_tick, false); temp_active[_next_event.basic.param1] &= ~ (1 << _next_event.channel()); } } else if (_next_event.event == 0xFF && _next_event.ext.type == 0x2F) { @@ -310,8 +313,8 @@ void MidiParser::hangAllActiveNotes() { for (i = 0; i < 128; ++i) { for (j = 0; j < 16; ++j) { if (temp_active[i] & (1 << j)) { - activeNote (j, i, false); - _driver->send (0x80 | j | i << 8); + activeNote(j, i, false); + _driver->send(0x80 | j | i << 8); } } } @@ -320,16 +323,16 @@ void MidiParser::hangAllActiveNotes() { } } -bool MidiParser::jumpToTick (uint32 tick, bool fireEvents) { +bool MidiParser::jumpToTick(uint32 tick, bool fireEvents) { if (_active_track >= _num_tracks) return false; - Tracker currentPos (_position); - EventInfo currentEvent (_next_event); + Tracker currentPos(_position); + EventInfo currentEvent(_next_event); resetTracking(); _position._play_pos = _tracks[_active_track]; - parseNextEvent (_next_event); + parseNextEvent(_next_event); if (tick > 0) { while (true) { EventInfo &info = _next_event; @@ -351,26 +354,26 @@ bool MidiParser::jumpToTick (uint32 tick, bool fireEvents) { return false; } else { if (info.ext.type == 0x51 && info.length >= 3) // Tempo - setTempo (info.ext.data[0] << 16 | info.ext.data[1] << 8 | info.ext.data[2]); + setTempo(info.ext.data[0] << 16 | info.ext.data[1] << 8 | info.ext.data[2]); if (fireEvents) - _driver->metaEvent (info.ext.type, info.ext.data, (uint16) info.length); + _driver->metaEvent(info.ext.type, info.ext.data, (uint16) info.length); } } else if (fireEvents) { if (info.event == 0xF0) - _driver->sysEx (info.ext.data, (uint16) info.length); + _driver->sysEx(info.ext.data, (uint16) info.length); else - _driver->send (info.event | info.basic.param1 << 8 | info.basic.param2 << 16); + _driver->send(info.event | info.basic.param1 << 8 | info.basic.param2 << 16); } - parseNextEvent (_next_event); + parseNextEvent(_next_event); } } if (!_smartJump || !currentPos._play_pos) { allNotesOff(); } else { - EventInfo targetEvent (_next_event); - Tracker targetPosition (_position); + EventInfo targetEvent(_next_event); + Tracker targetPosition(_position); _position = currentPos; _next_event = currentEvent; diff --git a/sound/midiparser.h b/sound/midiparser.h index 4247060a8c..d939de3131 100644 --- a/sound/midiparser.h +++ b/sound/midiparser.h @@ -58,13 +58,13 @@ struct Tracker { Tracker() { clear(); } //! Copy constructor for each duplication of Tracker information. - Tracker (const Tracker ©) : - _play_pos (copy._play_pos), - _play_time (copy._play_time), - _play_tick (copy._play_tick), - _last_event_time (copy._last_event_time), - _last_event_tick (copy._last_event_tick), - _running_status (copy._running_status) + Tracker(const Tracker ©) : + _play_pos(copy._play_pos), + _play_time(copy._play_time), + _play_tick(copy._play_tick), + _last_event_time(copy._last_event_time), + _last_event_tick(copy._last_event_tick), + _running_status(copy._running_status) { } //! Clears all data; used by the constructor for initialization. @@ -290,13 +290,13 @@ protected: bool _abort_parse; //!< If a jump or other operation interrupts parsing, flag to abort. protected: - static uint32 readVLQ (byte * &data); + static uint32 readVLQ(byte * &data); virtual void resetTracking(); virtual void allNotesOff(); - virtual void parseNextEvent (EventInfo &info) = 0; + virtual void parseNextEvent(EventInfo &info) = 0; - void activeNote (byte channel, byte note, bool active); - void hangingNote (byte channel, byte note, uint32 ticks_left, bool recycle = true); + void activeNote(byte channel, byte note, bool active); + void hangingNote(byte channel, byte note, uint32 ticks_left, bool recycle = true); void hangAllActiveNotes(); //! Platform independent BE uint32 read-and-advance. @@ -304,8 +304,8 @@ protected: * from a memory pointer, at the same time advancing * the pointer. */ - uint32 read4high (byte * &data) { - uint32 val = READ_BE_UINT32 (data); + uint32 read4high(byte * &data) { + uint32 val = READ_BE_UINT32(data); data += 4; return val; } @@ -315,8 +315,8 @@ protected: * from a memory pointer, at the same time advancing * the pointer. */ - uint16 read2low (byte * &data) { - uint16 val = READ_LE_UINT16 (data); + uint16 read2low(byte * &data) { + uint16 val = READ_LE_UINT16(data); data += 2; return val; } @@ -348,24 +348,24 @@ public: MidiParser(); virtual ~MidiParser() { allNotesOff(); } - virtual bool loadMusic (byte *data, uint32 size) = 0; + virtual bool loadMusic(byte *data, uint32 size) = 0; virtual void unloadMusic(); - virtual void property (int prop, int value); + virtual void property(int prop, int value); - void setMidiDriver (MidiDriver *driver) { _driver = driver; } - void setTimerRate (uint32 rate) { _timer_rate = rate; } - void setTempo (uint32 tempo); + void setMidiDriver(MidiDriver *driver) { _driver = driver; } + void setTimerRate(uint32 rate) { _timer_rate = rate; } + void setTempo(uint32 tempo); void onTimer(); - bool setTrack (int track); - bool jumpToTick (uint32 tick, bool fireEvents = false); + bool setTrack(int track); + bool jumpToTick(uint32 tick, bool fireEvents = false); uint32 getPPQN() { return _ppqn; } virtual uint32 getTick() { return _position._play_tick; } static MidiParser *createParser_SMF(); static MidiParser *createParser_XMIDI(); - static void timerCallback (void *data) { ((MidiParser *) data)->onTimer(); } + static void timerCallback(void *data) { ((MidiParser *) data)->onTimer(); } }; #endif diff --git a/sound/midiparser_smf.cpp b/sound/midiparser_smf.cpp index f4ddbd88a6..e23856c0f6 100644 --- a/sound/midiparser_smf.cpp +++ b/sound/midiparser_smf.cpp @@ -35,14 +35,14 @@ protected: protected: void compressToType0(); - void parseNextEvent (EventInfo &info); + void parseNextEvent(EventInfo &info); public: MidiParser_SMF() : _buffer(0), _malformedPitchBends(false) {} ~MidiParser_SMF(); - bool loadMusic (byte *data, uint32 size); - void property (int property, int value); + bool loadMusic(byte *data, uint32 size); + void property(int property, int value); }; @@ -51,21 +51,21 @@ static const byte special_lengths[16] = { 0, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, MidiParser_SMF::~MidiParser_SMF() { if (_buffer) - free (_buffer); + free(_buffer); } -void MidiParser_SMF::property (int prop, int value) { +void MidiParser_SMF::property(int prop, int value) { switch (prop) { case mpMalformedPitchBends: _malformedPitchBends = (value > 0); default: - MidiParser::property (prop, value); + MidiParser::property(prop, value); } } -void MidiParser_SMF::parseNextEvent (EventInfo &info) { +void MidiParser_SMF::parseNextEvent(EventInfo &info) { info.start = _position._play_pos; - info.delta = readVLQ (_position._play_pos); + info.delta = readVLQ(_position._play_pos); // Process the next info. If mpMalformedPitchBends // was set, we must skip over any pitch bend events @@ -113,14 +113,14 @@ void MidiParser_SMF::parseNextEvent (EventInfo &info) { break; case 0x0: // SysEx - info.length = readVLQ (_position._play_pos); + info.length = readVLQ(_position._play_pos); info.ext.data = _position._play_pos; _position._play_pos += info.length; break; case 0xF: // META event info.ext.type = *(_position._play_pos++); - info.length = readVLQ (_position._play_pos); + info.length = readVLQ(_position._play_pos); info.ext.data = _position._play_pos; _position._play_pos += info.length; break; @@ -128,7 +128,7 @@ void MidiParser_SMF::parseNextEvent (EventInfo &info) { } } -bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { +bool MidiParser_SMF::loadMusic(byte *data, uint32 size) { uint32 len; byte midi_type; uint32 total_size; @@ -138,17 +138,17 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { byte *pos = data; isGMF = false; - if (!memcmp (pos, "RIFF", 4)) { + if (!memcmp(pos, "RIFF", 4)) { // Skip the outer RIFF header. pos += 8; } - if (!memcmp (pos, "MThd", 4)) { + if (!memcmp(pos, "MThd", 4)) { // SMF with MTHd information. pos += 4; - len = read4high (pos); + len = read4high(pos); if (len != 6) { - warning("MThd length 6 expected but found %d", (int) len); + warning("MThd length 6 expected but found %d", (int)len); return false; } @@ -158,12 +158,12 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { _num_tracks = pos[2] << 8 | pos[3]; midi_type = pos[1]; if (midi_type > 2 /*|| (midi_type < 2 && _num_tracks > 1)*/) { - warning("No support for a Type %d MIDI with %d tracks", (int) midi_type, (int) _num_tracks); + warning("No support for a Type %d MIDI with %d tracks", (int)midi_type, (int)_num_tracks); return false; } _ppqn = pos[4] << 8 | pos[5]; pos += len; - } else if (!memcmp (pos, "GMF\x1", 4)) { + } else if (!memcmp(pos, "GMF\x1", 4)) { // Older GMD/MUS file with no header info. // Assume 1 track, 192 PPQN, and no MTrk headers. isGMF = true; @@ -178,14 +178,14 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { // Now we identify and store the location for each track. if (_num_tracks > ARRAYSIZE(_tracks)) { - warning("Can only handle %d tracks but was handed %d", (int) ARRAYSIZE(_tracks), (int) _num_tracks); + warning("Can only handle %d tracks but was handed %d", (int)ARRAYSIZE(_tracks), (int)_num_tracks); return false; } total_size = 0; int tracks_read = 0; while (tracks_read < _num_tracks) { - if (memcmp (pos, "MTrk", 4) && !isGMF) { + if (memcmp(pos, "MTrk", 4) && !isGMF) { warning("Position: %p ('%c')", pos, *pos); warning("Hit invalid block '%c%c%c%c' while scanning for track locations", pos[0], pos[1], pos[2], pos[3]); return false; @@ -195,7 +195,7 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { _tracks[tracks_read] = pos + (isGMF ? 0 : 8); if (!isGMF) { pos += 4; - len = read4high (pos); + len = read4high(pos); total_size += len; pos += len; } else { @@ -212,7 +212,7 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { // If this is a Type 1 MIDI, we need to now compress // our tracks down into a single Type 0 track. if (_buffer) { - free (_buffer); + free(_buffer); _buffer = 0; } @@ -220,7 +220,7 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { // FIXME: Doubled the buffer size to prevent crashes with the // Inherit the Earth MIDIs. Jamieson630 said something about a // better fix, but this will have to do in the meantime. - _buffer = (byte *) malloc (size * 2); + _buffer = (byte *)malloc(size * 2); compressToType0(); _num_tracks = 1; _tracks[0] = _buffer; @@ -230,8 +230,8 @@ bool MidiParser_SMF::loadMusic (byte *data, uint32 size) { // will persist beyond this call, i.e. we do NOT // copy the data to our own buffer. Take warning.... resetTracking(); - setTempo (500000); - setTrack (0); + setTempo(500000); + setTrack(0); return true; } @@ -247,7 +247,7 @@ void MidiParser_SMF::compressToType0() { for (i = 0; i < _num_tracks; ++i) { running_status[i] = 0; track_pos[i] = _tracks[i]; - track_timer[i] = readVLQ (track_pos[i]); + track_timer[i] = readVLQ(track_pos[i]); running_status[i] = 0; } @@ -258,7 +258,7 @@ void MidiParser_SMF::compressToType0() { byte event; uint32 copy_bytes; bool write; - byte active_tracks = (byte) _num_tracks; + byte active_tracks = (byte)_num_tracks; while (active_tracks) { write = true; @@ -293,14 +293,14 @@ void MidiParser_SMF::compressToType0() { } while (_malformedPitchBends && (event & 0xF0) == 0xE0 && pos++); running_status[best_i] = event; - if (command_lengths [(event >> 4) - 8] > 0) { - copy_bytes = command_lengths [(event >> 4) - 8]; - } else if (special_lengths [(event & 0x0F)] > 0) { - copy_bytes = special_lengths [(event & 0x0F)]; + if (command_lengths[(event >> 4) - 8] > 0) { + copy_bytes = command_lengths[(event >> 4) - 8]; + } else if (special_lengths[(event & 0x0F)] > 0) { + copy_bytes = special_lengths[(event & 0x0F)]; } else if (event == 0xF0) { // SysEx pos2 = pos; - length = readVLQ (pos); + length = readVLQ(pos); copy_bytes = 1 + (pos - pos2) + length; } else if (event == 0xFF) { // META @@ -310,13 +310,13 @@ void MidiParser_SMF::compressToType0() { write = false; } else { pos2 = pos; - length = readVLQ (pos); + length = readVLQ(pos); copy_bytes = 2 + (pos - pos2) + length; } if (event == 0x2F) --active_tracks; } else { - warning("Bad MIDI command %02X", (int) event); + warning("Bad MIDI command %02X", (int)event); track_pos[best_i] = 0; } @@ -334,24 +334,24 @@ void MidiParser_SMF::compressToType0() { // Write VLQ delta while (delta & 0x80) { - *output++ = (byte) (delta & 0xFF); + *output++ = (byte)(delta & 0xFF); delta >>= 8; } - *output++ = (byte) (delta & 0xFF); + *output++ = (byte)(delta & 0xFF); // Write MIDI data if (!implicitEvent) ++track_pos[best_i]; --copy_bytes; *output++ = running_status[best_i]; - memcpy (output, track_pos[best_i], copy_bytes); + memcpy(output, track_pos[best_i], copy_bytes); output += copy_bytes; } // Fetch new VLQ delta for winning track track_pos[best_i] += copy_bytes; if (active_tracks) - track_timer[best_i] += readVLQ (track_pos[best_i]); + track_timer[best_i] += readVLQ(track_pos[best_i]); } } diff --git a/sound/midiparser_xmidi.cpp b/sound/midiparser_xmidi.cpp index 1524e25541..3b86424c46 100644 --- a/sound/midiparser_xmidi.cpp +++ b/sound/midiparser_xmidi.cpp @@ -179,14 +179,14 @@ bool MidiParser_XMIDI::loadMusic(byte *data, uint32 size) { // Must be at least 2 bytes long if (chunk_len < 2) { - warning("Invalid chunk length %d for 'INFO' block!", (int) chunk_len); + warning("Invalid chunk length %d for 'INFO' block!", (int)chunk_len); return false; } - _num_tracks = (byte) read2low(pos); + _num_tracks = (byte)read2low(pos); if (chunk_len > 2) { - warning("Chunk length %d is greater than 2", (int) chunk_len); + warning("Chunk length %d is greater than 2", (int)chunk_len); pos += chunk_len - 2; } break; @@ -224,7 +224,7 @@ bool MidiParser_XMIDI::loadMusic(byte *data, uint32 size) { // Ok it's an XMIDI. // We're going to identify and store the location for each track. if (_num_tracks > ARRAYSIZE(_tracks)) { - warning("Can only handle %d tracks but was handed %d", (int) ARRAYSIZE(_tracks), (int) _num_tracks); + warning("Can only handle %d tracks but was handed %d", (int)ARRAYSIZE(_tracks), (int)_num_tracks); return false; } |