Commit Graph

24 Commits

Author SHA1 Message Date
James Brown
4aa5649c1e Erm, this was never meant to be commited. I might as well leave the .h change for now, until kyra is investigated further.
svn-id: r15788
2004-11-11 14:19:38 +00:00
James Brown
cb4b3c1f7e Prevent infinite loop by displaying the launcher after a game start FAILURE too.
svn-id: r15787
2004-11-11 14:01:11 +00:00
Torbjörn Andersson
6dc0191e03 Make allNotesOff() also turn off all "hanging notes". Without this change,
I wasn't able to fully stop ITE's XMIDI music - there would always be a
couple of notes hanging even after unloading it. Apparently this music
doesn't use the "active notes" mechanism at all, and I guess the ALSA
driver doesn't support the "All Note Off" event.

I'm still not 100% sure this is the correct fix, but unless someone has any
better idea...

svn-id: r13910
2004-05-31 08:51:10 +00:00
Torbjörn Andersson
a0623e6012 Changed printf() to warning(). (Even in the case where the message used to
say "ERROR".)

svn-id: r13677
2004-04-29 11:57:25 +00:00
Max Horn
033ff78ae9 updated copyright notice
svn-id: r12176
2004-01-06 12:45:34 +00:00
Max Horn
3472e93051 explicitly turn off all active sounds -> not all MIDI devices support the 'All note off' event, at least according to http://crystal.apana.org.au/ghansper/midi_introduction/midi_channel_mode.html ; and now, the quicktime MIDI code doesn't support it anymore, too ;-)
svn-id: r11885
2003-12-24 12:54:33 +00:00
Paweł Kołodziejski
1f99fbe77c cleanup whitespaces
svn-id: r11221
2003-11-08 23:05:04 +00:00
Jamieson Christian
93c90f4674 Fix for Bug [780924] IMUSE: Pitchbend isn't reset when changing tracks
When scanning (not jumping) to a target location
in a different track, the current track is first
scanned to the end to update the player state
before starting into the new track.

Miscellaneous scan-related cleanup is included.

svn-id: r9589
2003-08-07 23:42:15 +00:00
Jamieson Christian
7c16006cc7 Fix for RC bug [780675] MI2: Reoccuring crash
Tightened up OOB track selection handling in
MidiParser. Apparently some SMFs in the Mac
version of MI2 (and other games?) specify
track -1 in their jump commands to indicate
a jump within the same track.

svn-id: r9321
2003-07-31 06:50:13 +00:00
Jamieson Christian
be898b414f For for Bug [775654] DOTT: Hanging notes
Corrected active notes tracking when switching
between Type 2 SMF tracks. Although Note Off
events from the previous track are properly
simulated, those sustaining notes are cleared
from the active notes list so that jumps
within the new track will not attempt to
sustain them again.

svn-id: r9194
2003-07-26 19:37:54 +00:00
Jamieson Christian
4ac4d76718 Fix for Bug [766426]: V5 Games: Adlib SFX not looped
Modified Smart Jump logic to deal with active notes
whose Note On and Note Off events BOTH occur OUTSIDE
the range of the jump. While this is not a thorough
way to deal with Note On events that occur outside
jump points, it at least deals with the issue of
long, unchanging Adlib SFX used by some earlier
SCUMM games.

svn-id: r8892
2003-07-10 04:34:44 +00:00
Marcus Comstedt
2aed2d9284 Use stdafx.h instead of manually including system headers.
svn-id: r8541
2003-06-18 21:10:05 +00:00
Jamieson Christian
42f6d10581 Fixed hanging notes on Smart Jump when Note Off event cannot be found.
(I'm not sure why the Note Off would not be found,
but at least we're properly dealing with such notes now.)

svn-id: r8250
2003-06-01 18:24:10 +00:00
Jamieson Christian
11e59488ef Fixed occassional music crashes when loading games.
Thanks to eriktorbjorn for finding this issue.

svn-id: r7959
2003-05-25 15:47:06 +00:00
Jamieson Christian
f8e9e55fba allNotesOff() now sends to all 16 channels, not just the first 15. Duh.
svn-id: r7899
2003-05-24 19:11:49 +00:00
Jamieson Christian
982883c637 Fixed problem with hanging notes on some synth modules.
Various little MidiParser fixes.

svn-id: r7863
2003-05-23 15:04:41 +00:00
Jamieson Christian
0be2b4673c Removed annoying warning
svn-id: r7851
2003-05-23 04:35:50 +00:00
Jamieson Christian
08b5337b20 Fixed gcc warning
svn-id: r7850
2003-05-23 04:30:50 +00:00
Jamieson Christian
c6568530bd Revamped iMuse and Player classes. Player now uses MidiParser to parse its data, which will allow it to parse other MIDI formats. To receive parsed data, Player now derives from MidiDriver to act as a "fake MIDI driver".
Miscellaneous upgrades and fixes to MidiParser, including the Smart Jump (which could not be tested before iMuse started making use of the MidiParser).

*** THIS IS A BIG UPGRADE! EXTENSIVE REGRESSION TESTING IS NEEDED! ***

This has been tested through the intros and a number of other scenes from MI2, FOA and S&M.

NOTE! This upgrade introduces savegame format version V19. Earlier version savegames will load, but the music will simply start over from the beginning. Only V19 and later games will properly restore the position of the music! Don't say you weren't warned....

svn-id: r7849
2003-05-23 04:19:47 +00:00
Jamieson Christian
1918dc555f Added "smart-jump" capability to MidiParser.
svn-id: r7831
2003-05-22 15:34:30 +00:00
Jamieson Christian
622e3578b4 More Simon music fixes
svn-id: r7769
2003-05-21 06:14:14 +00:00
Jamieson Christian
a768deb83f Simon music fixes
svn-id: r7744
2003-05-20 16:43:53 +00:00
Jamieson Christian
996614936a Fixed anonymous structs warning.
svn-id: r7696
2003-05-19 19:24:22 +00:00
Jamieson Christian
3dc788da63 Moved common parsing logic into MidiParser base class.
Added auto-loop capability.

svn-id: r7692
2003-05-19 18:48:18 +00:00