Commit Graph

77 Commits

Author SHA1 Message Date
Eugene Sandulenko
cda17beff5 Patch #1365914: "SCUMM: CMS support." Disabled by default. Still plenty to do.
svn-id: r41282
2009-06-06 18:21:49 +00:00
Max Horn
e5e1615280 MidiDriver cleanup: findMusicDriver now returns a pointer (makes it possible to distinguish 'no match found' from other results); updated parseMusicDriver accordingly; some methods now return MidiDriverType instead of int
svn-id: r39702
2009-03-26 13:52:43 +00:00
Johannes Schickel
2ebe04ac3e - Extended MidiDriver::sysEx to allow 264 byte sysEx messages
- Updated all drivers to allow 264+2 byte sysEx messages
- Implemented sysEx processing for MT-32 for Kyra1 and HoF. MT-32 should now be working properly.

svn-id: r35180
2008-11-30 04:42:30 +00:00
Max Horn
31320430de Partial commit of patch #2012839: Atari Patch for adding Native MIDI and Fix Compile
svn-id: r34194
2008-08-27 18:52:21 +00:00
Jordi Vilalta Prat
eb6c809d2b - Added more information (ID and capabilities) to the MIDI drivers
- Added the MidiPlugin interface to the remaining MIDI drivers
- Added an initial MidiManager to handle the MIDI plugins (just static plugins by now)

svn-id: r32117
2008-05-14 14:56:29 +00:00
Jordi Vilalta Prat
02fbdd1f05 Removed the remaining traces of the MorphOS ETUDE driver.
svn-id: r31994
2008-05-11 02:37:41 +00:00
Jordi Vilalta Prat
d696ed6ea2 Added the MidiPlugin interface (first step towards the MIDI plugins)
svn-id: r31993
2008-05-11 02:10:05 +00:00
Jordi Vilalta Prat
672a508bdd Added CAMD MIDI driver for AmigaOS4
svn-id: r30910
2008-02-20 17:07:58 +00:00
Jordi Vilalta Prat
66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Max Horn
8eb73f2694 Patch #1815526: Add TiMidity++ MIDI server support
svn-id: r29377
2007-11-02 16:01:52 +00:00
Max Horn
5a07c3c552 Patch #1804801: DMedia MIDI driver for IRIX
svn-id: r29142
2007-09-30 12:12:22 +00:00
Max Horn
218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn
4db72c8762 Unified how we deal with (and how we generate) MIDI sysex messages -- in particular, we now always do so w/o framing the message (documented this with a Doxygen comment in the MidiDriver class)
svn-id: r25630
2007-02-16 13:30:41 +00:00
Max Horn
75628fe9d7 Renamed class Timer to TimerManager (the old name was somewhat incorrect/confusing)
svn-id: r23278
2006-06-24 09:34:49 +00:00
Torbjörn Andersson
ccac2aea20 Whitespace changes. (Oh dear, now *I'm* forcing myself to large re-compiles.)
svn-id: r22413
2006-05-12 12:03:36 +00:00
Jamieson Christian
2469e00248 SysEx data now passed around with const pointers. Permits simplification of some SysEx client code.
Testing on Windows. Developers on other platforms, please verify integrity of music handling in your respective MidiDrivers.

svn-id: r20952
2006-02-27 01:59:07 +00:00
Max Horn
406703148f Change CVS keywords to SVN keywords
svn-id: r20515
2006-02-11 10:05:31 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +00:00
Max Horn
60fcd5a171 * Replaced MDT_PREFER_NATIVE/MDT_NATIVE by MDT_PREFER_MIDI/MDT_MIDI).
* Changed MidiDriver::createMidi so that if MD_ADLIB is passed, it
  now *does* instantiate the adlib driver.
* Rewrote MidiDriver::detectMusicDriver (code should be clearer now,
  and hopefully easier to adapt/maintain). Note that the behavior
  changed slightly (this may require some tweaking).
* Added MidiDriver::findMusicDriver which works similar to the old
  MidiDriver::parseMusicDriver but returns the full MidiDriverDescription
  and ignores all characters in the passed driver name following a colon ":".
* Changed MidiDriver::parseMusicDriver to use MidiDriver::findMusicDriver.
* Changed game engines to match the changes made to MidiDriver.
* Modified SCUMM engine to not record the selected midi/music driver
  (in _midiDriver), but rather the music *type* (in _musicType).

svn-id: r19859
2005-12-30 14:18:21 +00:00
Max Horn
9de7536057 MidiDriver: Some cleanup, added some comments/TODOs, preparations for a potential cleanup
svn-id: r19844
2005-12-29 16:55:21 +00:00
Max Horn
fcf1af2ffc New CoreMIDI midi backend for OS X
svn-id: r19832
2005-12-26 11:18:25 +00:00
Eugene Sandulenko
b36677af71 Update FSF address. Eek. Actually that took place on May 1, 2005
svn-id: r19142
2005-10-18 01:30:26 +00:00
Eugene Sandulenko
6b4484472b Remove trailing whitespaces.
svn-id: r18604
2005-07-30 21:11:48 +00:00
Max Horn
21efddda22 Added virtual destructor, to silence a few more GCC 4 warnings
svn-id: r18420
2005-06-20 18:27:33 +00:00
Torbjörn Andersson
eeab93cf09 More whitespace changes.
svn-id: r18273
2005-05-27 12:43:19 +00:00
Max Horn
1a615346ab Moved class SoundMixer to Audio::Mixer (didn't call the namespace 'Sound' because we already have many classes with that name)
svn-id: r18039
2005-05-10 23:48:48 +00:00
Max Horn
72f4c03b0b Moved (In/Out)SaveFile(Manager) and Timer to namespace Common
svn-id: r18038
2005-05-10 23:17:38 +00:00
Eugene Sandulenko
bdbd56406c Patches #1164217 "Updated GS Support + Percussion Remapping Patch" and
#1181750 "Updated Native MIDI documentation". Thanks _tom a lot.

svn-id: r17571
2005-04-13 00:11:49 +00:00
Torbjörn Andersson
13dc149ded Applied patch #1175374 ("FluidSynth MIDI driver"), with a few documentation
changes. There are a few things that could use a bit more work, and I've
only tested it on my Linux box. I have verified that ScummVM still compiles
when it's disabled, though, so it shouldn't break anything too badly.

svn-id: r17512
2005-04-10 14:33:44 +00:00
Jerome Fisher
eda317924e Committed patch #1168149 (Shared GM/MT-32 mapping) by eriktorbjorn as-is. This does the following:
- Replaces multiple identical MT-32-to-General MIDI mapping tables with a common one in MidiDriver.
- Changes Sky's GmChannel class to allow NULL instrument and velocity mapping tables, giving a 1-to-1 mapping without creating a dummy table.

svn-id: r17361
2005-04-03 22:01:38 +00:00
Max Horn
47280d9433 Updated copyright
svn-id: r16398
2005-01-01 16:09:25 +00:00
Max Horn
5d5a13eec7 Moved MidiDriver creation code into the MidiDriver class (as static methods), same for some other MIDI related stuff
svn-id: r15968
2004-12-02 00:33:42 +00:00
Eugene Sandulenko
805b21181a Major MT-32 emu overhaul based on KingGuppy's code.
o added configure option
 o mi2 intro doesn't freeze anymore and has no sound glitches
 o missing instruments in many titles are fixed
 o numerous memory overwrite bugs are fixed
 o code is cleaned a lot and splitted into many smaller files
 o mt32.cpp went to backends/midi
 o synced with upstream code
 o reverberation fixed

 * don't complain about File class wrapper :)
 * all custom types are back
 * #pragmas are to do
 * maybe some indentation is wrong too

I prefer smaller commits, but this thing came in one piece.

svn-id: r15715
2004-11-06 01:41:32 +00:00
Eugene Sandulenko
9d0b746aaa Patch #1048326 Better MT-32 support
svn-id: r15635
2004-10-21 22:37:37 +00:00
Max Horn
697da0eb9b Add comment
svn-id: r15595
2004-10-17 19:39:54 +00:00
Max Horn
759cd67de5 cleanup of TimerProc mess
svn-id: r14683
2004-08-22 13:27:34 +00:00
Jamieson Christian
f7084c20e9 MIDI control change 18 is no longer transmitted.
It is not a valid MIDI control change message.
It is used internally in the SCUMM MIDI tracks
to indicate part priority.
The only MidiDriver that needs it is Adlib.
It should be noted that the priority values are
out of bounds for a regular MIDI message anyway.
Valid control change values are 0-127, but the
priority value ranges from 0-255.

This fixes a crash with a certain software MT-32
emulator running under Linux. Thanks to olki for
bringing up this issue.

svn-id: r13645
2004-04-26 20:34:59 +00:00
Torbjörn Andersson
7ae1cc0f96 Fixed "no newline at end of file" warning.
svn-id: r12746
2004-02-06 08:35:24 +00:00
Chris Apers
2420bf2900 Prepare Zodiac MIDI support
svn-id: r12734
2004-02-05 13:56:39 +00:00
Max Horn
033ff78ae9 updated copyright notice
svn-id: r12176
2004-01-06 12:45:34 +00:00
Max Horn
7eab653832 cleanup
svn-id: r10894
2003-10-18 13:04:59 +00:00
Max Horn
33f2fbff08 We proudly present the latest installment of our hit series 'Untangle the mess': 'Help! Space Invaders refactored the music detector'... in other news, I obviously need to sleep now
svn-id: r10883
2003-10-18 00:22:46 +00:00
Jamieson Christian
a722d0601e Preliminary preparation for new YM2612 FM emulator.
All the hooks are in, but actual implementation
needs to be checked for portability.

svn-id: r10615
2003-10-05 15:36:52 +00:00
Max Horn
bb6765f85d cleanup & restructuring; in particular move the midi driver list to its own source file
svn-id: r10550
2003-10-02 22:52:57 +00:00
Jamieson Christian
a30eb131bb Fix for Bug [810564] ALL: missing instruments with native MT-32
As defined in Patch [811623] MT-32 patch for Bug 810564

Added a channel mask to MPU-401 devices so that --native-mt32
may force the device to use only the subset of MIDI channels
actually supported by the MT-32. Also added a best-guess
interpretation of iMuse Part priority in the SysEx 0x00 msg,
since part priorities become more of an issue when the
channel count is cramped.

svn-id: r10409
2003-09-25 22:32:05 +00:00
Jamieson Christian
fb62ba61ca Added PC Speaker and PCjr command line options,
in preparation for Kirben's addition of WA support
for games that already have AD tracks.

svn-id: r9656
2003-08-13 14:08:21 +00:00
Jamieson Christian
154e872d5a Added generic send() option to MidiChannel.
This circumvents problems doing generic send()
calls to MidiDrivers that support more than
16 MIDI channels (i.e. Adlib). Because of the
way it interacts with MidiDriver, Simon could
have run into a problem if it tried to
allocate more than 15 Adlib music channels
(though this would only happen in very, VERY
rare circumstances).

Also fixed a problem with the channel
numbering scheme used by MidiDriver_Adlib,
in particular the percussion channel number.

svn-id: r9604
2003-08-08 11:54:24 +00:00
Max Horn
75db41750e getting rid of g_mixer; removing lots of whitespace
svn-id: r9527
2003-08-05 23:58:24 +00:00
Max Horn
0df319e952 #include cleanup (explicityl specify the location for headers from common/, so that we at some point can get rid of -Icommon; exception is made for stdafx.h, since a) we might want to rename it and b) might want to move it to the top level)
svn-id: r9359
2003-08-01 12:21:04 +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