Commit Graph

62 Commits

Author SHA1 Message Date
Matthew Hoops
9539017ee3 ALL: initialise -> initialize 2011-05-25 11:17:11 -04:00
Matthew Hoops
eea482fa43 ALL: behaviour -> behavior 2011-05-25 10:50:46 -04:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
eriktorbjorn
3b2c3907a0 ALSA: Warn if events or SysEx messages are received when not open.
This should make it easier to spot errors like the one spotted in
the Queen engine yesterday. The Windows MIDI driver already seems
to do something like this; I don't know about the others.
2011-05-08 07:34:46 +02:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Max Horn
8982fff1b7 AUDIO: Add pure virtual MidiDriver::isOpen() method
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.

The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom

Also fixed some engines which were leaking MidiDriver instances.
2011-03-22 23:51:47 +01:00
Johannes Schickel
ff9653ddea ALSA: Fix formatting. 2011-03-10 04:45:06 +01:00
Johannes Schickel
601a09e417 ALSA: Work around a firmware bug in USB-MIDI cables.
Thanks to waltervn (and wjp) for their investigation on this and Walter's SCI
specific workaround which I more or less just copied here so it will apply for
all engines.
2011-03-10 04:40:30 +01:00
Johannes Schickel
40e9374679 ALSA: Strip trailing spaces in device name.
This might fix odd problems when storing the device name in the config file,
when the name ends with a space by chance.
2011-03-10 02:54:32 +01:00
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn
44393b2dc8 ALL: Add code to help stop people from accidentally using "bad" APIs
A new header file common/forbidden.h is included by scummsys.h and it
re-#defines numerous symbols like fopen(), fread(), system(), etc. with
garbage, in order to provoke compile errors in any code using them.

If a .cpp file really *must* use any of these (e.g. because it is a
backend file), then these redefinitions can be disabled by #defining
FORBIDDEN_SYMBOL_ALLOW_ALL as the first thing in the .cpp file. Whenever
this is done, an explanatory comment should be added.

Note that this system cannot catch all "bad" usages (notably the Lua
code in the sword25 engine), as it can only work if scummsys.h is
included.

svn-id: r53961
2010-10-30 21:27:42 +00:00
Torbjörn Andersson
bbd3f0dbb3 ALSA: Be more intelligent when picking MIDI port
Often, a client has more than one available port. Pick the first one
that isn't already in use. For instance, on my computer client 17 is
the "Emu10k1 WaveTable", and it has four available ports. If, say,
aplaymidi is already playing on port 17:0, ScummVM will use port 17:1
instead. Otherwise the two programs will mess up each others
instruments and controller settings.

Of course, in reality I doubt that anyone will run two different MIDI
playing applications at once.

svn-id: r51380
2010-07-27 17:18:02 +00:00
Torbjörn Andersson
47f93e9d07 ALSA: Tweak capability and type flags for the MIDI port
This keeps ScummVM's own port from being included in the list of
available MIDI devices.

svn-id: r51378
2010-07-27 16:35:28 +00:00
Johannes Schickel
2db4e71b66 ALSA: Simplify device querying code.
Thanks to eriktorbjorn for some quick testing.

svn-id: r51366
2010-07-27 13:01:10 +00:00
Max Horn
211fcfe7ba MIDI: Build and use ALSA driver if and only if USE_ALSA is defined
svn-id: r51053
2010-07-20 08:24:34 +00:00
Torbjörn Andersson
abae29a2dc ALSA: Get ALSA port settings from the new device config settings.
This is also an attempt to make the transition from the old settings to the
new ones a little less rough, by trying to put something sensible into the
first device, which is what's used by default. Currently it prefers 17:x
and 65:x since they're the old defaults, followed by 128:x since that's
probably TiMidity.

The old SCUMMVM_PORT environment variable still overrides any config
settings. I haven't made up my mind whether or not that's a good idea, but
at least it prints a warning message.

TODO: The old 'alsa_port' setting is not handled. It should probably be
used to set sensible defaults for the new settings, but I'm not sure where
this should be done.

TODO: The documentation will need to be updated, once everything is working
the way it should.

svn-id: r51019
2010-07-19 07:47:11 +00:00
Torbjörn Andersson
75dd75a737 SUBSYSTEM: ALSA music driver
We should probably open the sequencer the exact same way, both when
opening the driver and when asking it for available MIDI devices. Not
that I've been able to figure out the difference between "hw" and
"default" from the fine ALSA manual...

And I'm not sure we really need to try and keep compatibility with
ancient (pre-0.9.0?) ALSA any longer...

svn-id: r51014
2010-07-19 05:30:40 +00:00
Torbjörn Andersson
bc0c306110 If the ALSA driver hasn't been opened, closing it should do nothing. This keeps
ScummVM from crashing if, for instance, someone accidentally closes the driver
twice.

svn-id: r50870
2010-07-14 04:33:35 +00:00
Max Horn
bbad3f333a Patch #1956501: "GUI/LAUNCHER: Midi device selection"
svn-id: r50128
2010-06-21 21:36:36 +00:00
Max Horn
84f3c98fad Remove the Audio::Mixer parameter from the midi/music plugins
svn-id: r46315
2009-12-09 18:05:20 +00:00
Bertrand Augereau
d454c9b379 Minor constness fixes
svn-id: r43974
2009-09-06 10:51:20 +00:00
Filippos Karapetis
ca330071be Fixed compilation error
svn-id: r41037
2009-05-30 17:06:30 +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
f32be87633 Turned enum PluginError into Common::Error, which in the future is to be used in more places. Help with this is highly welcome
svn-id: r34906
2008-11-05 17:24:56 +00:00
Torbjörn Andersson
4e66938e8c Committed my patch #2026097 ("ALSA: Try both 65:0 and 17:0 by default"), with a
slight modification to the README changes. (I don't know how to interpret all
the output from aconnect, so I'm only documenting "the most important bit".)

svn-id: r33648
2008-08-05 21:43:10 +00:00
Jordi Vilalta Prat
256036d4af Fixed ALSA's invalid port error message
svn-id: r32698
2008-06-14 04:52:10 +00:00
Jordi Vilalta Prat
8eac356946 Added initial interface to list music devices and their types
svn-id: r32695
2008-06-13 16:04:43 +00:00
Jordi Vilalta Prat
177993b145 Renamed MIDI plugins to Music plugins
svn-id: r32693
2008-06-13 14:30:47 +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
d942fd42bb Moved midiplugin.h to sound/ since it will be used for more than just the native MIDI drivers.
svn-id: r32097
2008-05-14 05:47:29 +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
Nicola Mettifogo
258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +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
Torbjörn Andersson
a3ea44fd48 Some updates (mostly guesswork) for the ALSA MIDI driver, mostly prompted by
Waxworks (Simon engine). See http://www.borg.com/~jglatt/tech/midispec.htm for
reference.

* Added case for Aftertouch (Key Pressure).

* Changed Channel Pressure to flush the event immediatley. The message could
  apply to notes while they are playing.

* Downgraded the error for unknown MIDI messages to a warning, and clarified it
  slightly.

svn-id: r23949
2006-09-20 17:16:58 +00:00
Max Horn
e4930bd96d Don't use HAVE_CONFIG_H / config.h directly, use scummsys.h instead
svn-id: r21605
2006-04-04 21:45:13 +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
Willem Jan Palenstijn
2d2258f596 clear ALSA event structure before use
svn-id: r20951
2006-02-27 00:01:29 +00:00
Max Horn
cbb2ca005c Change CVS keywords to SVN keywords
svn-id: r20535
2006-02-11 12:47:47 +00:00
Eugene Sandulenko
ea42bad781 Update copyright notice
svn-id: r20088
2006-01-18 17:39:49 +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
8b1d7b9166 When including files from common/, explicitly use the common/ prefix
svn-id: r18444
2005-06-24 15:23:51 +00:00
Max Horn
47280d9433 Updated copyright
svn-id: r16398
2005-01-01 16:09:25 +00:00
Jonathan Gray
d1616e1cb5 Add passthrough ability. Patch by Christian Schoenebeck with slight modifications
svn-id: r14354
2004-07-27 13:21:52 +00:00
Joost Peters
11c8ff9544 Handle command 0xD0 (queen uses this) - thanks aholler.
svn-id: r12533
2004-01-20 10:51:53 +00:00
Max Horn
033ff78ae9 updated copyright notice
svn-id: r12176
2004-01-06 12:45:34 +00:00
Jonathan Gray
7c320d63de add config file parameter to specify the desired port when using the ALSA music driver
svn-id: r11583
2003-12-11 14:38:43 +00:00
Torbjörn Andersson
3342a20578 Extend the ALSA version check to look at SND_LIB_MAJOR as well. They're
bound to hit 1.0 any year now.

Of course, this is completely untested.

svn-id: r10288
2003-09-18 07:27:48 +00:00
Max Horn
925ddb1b86 moved declaration of error/warning/debug from engine.h to util.h
svn-id: r10151
2003-09-10 12:23:42 +00:00