Commit Graph

299 Commits

Author SHA1 Message Date
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
Johannes Schickel
3b81a9489e SOUND: Allow TiMidity support to be disabled via configure.
svn-id: r53395
2010-10-13 00:48:40 +00:00
Torbjörn Andersson
c91a07229a JANITORIAL: Removed most punctuation at end of warning() and error()
Our warning() and error() functions always add an exclamation mark
to the end of the message anyway.

svn-id: r52791
2010-09-18 10:55:16 +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
Torbjörn Andersson
5b3f31feec General: Fixed building the SEQ MIDI driver
An #include was missing, causing the driver to never be built. Also fixed what
looked like a cut-and-paste error in generating the features string.

svn-id: r51056
2010-07-20 08:56:53 +00:00
Max Horn
37aa8a7499 BUILD: Unify adding -DUNIX to DEFINES; complete SEQ MIDI detection
* Added a yes/no variable _unix to configure, which controls when
  -DUNIX is added to DEFINES
* Enable SEQ MIDI via _seq_midi by default on UNIX type systems,
  except for those which override that.
* Switch SEQ MIDI code to check #define USE_SEQ_MIDI
  (alternatively, we could compile it only conditionally...)

svn-id: r51055
2010-07-20 08:25:13 +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
Max Horn
0b48a71c99 Remove PalmOS port
svn-id: r50964
2010-07-17 18:41:38 +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
Angus Lees
bb300ec671 Skip /dev/sequencer MIDI on Android.
svn-id: r50664
2010-07-05 00:09:41 +00:00
Johannes Schickel
09b4f7cbed Define WIN32_LEAN_AND_MEAN before including windows.h.
This will cause our code to include less functionality, but might on the other hand fasten up the compilation.

svn-id: r50346
2010-06-26 21:55:52 +00:00
Jordi Vilalta Prat
063cef0c28 GUI: Add and improve some messages to translate
svn-id: r50324
2010-06-26 15:48:03 +00:00
Max Horn
bbad3f333a Patch #1956501: "GUI/LAUNCHER: Midi device selection"
svn-id: r50128
2010-06-21 21:36:36 +00:00
Johannes Schickel
caf31ee5af Replace various strncpy usages by strlcpy.
svn-id: r48955
2010-05-05 17:54:12 +00:00
Max Horn
0e0e11e641 Fix warnings
svn-id: r48277
2010-03-18 15:04:57 +00:00
Arnaud Boutonné
b14396edf2 Replace header by a standard header
svn-id: r47449
2010-01-22 23:56:25 +00:00
Torbjörn Andersson
72eb9ec9ea Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is null
before freeing it, which isn't necessary.

svn-id: r46941
2010-01-03 19:37:43 +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
Max Horn
76132409d6 Removed Mac OS X QuickTime MIDI backend. It breaks on OS X 10.6, and it's not as good as the CoreAudio backend anyway
svn-id: r44428
2009-09-27 22:43:32 +00:00
Max Horn
6ec05c48f9 Fix CoreAudio MIDI backend on Mac OS X 10.6
svn-id: r44427
2009-09-27 22:42:51 +00:00
Bertrand Augereau
d454c9b379 Minor constness fixes
svn-id: r43974
2009-09-06 10:51:20 +00:00
Johannes Schickel
1431944294 Add GCC_PRINTF parameter.
svn-id: r42104
2009-07-04 18:54:06 +00:00
Max Horn
531e7a8c78 Silenced the reamining warnings reported in patch #2684986 (gcc warnings with -DFORTIFY_SOURCE=2 -fstack-protector)
svn-id: r41930
2009-06-28 19:56:58 +00:00
Torbjörn Andersson
0999534749 The error() and warning() functions add ! and newline automatically. (I didn't
look at debug() and debugC(), since I'm really bored with this now. :-)

svn-id: r41061
2009-05-31 10:02:16 +00:00
Filippos Karapetis
ca330071be Fixed compilation error
svn-id: r41037
2009-05-30 17:06:30 +00:00
Max Horn
a3efc5611c Fixed various GCC 4.2 warnings, among them an actual longstanding bug (3 years :) in the quicktime midi code
svn-id: r40577
2009-05-14 23:09:04 +00:00
Johannes Schickel
b9ac179b2e Silence another g++ 4.4 warning.
svn-id: r40527
2009-05-13 17:33:58 +00:00
Johannes Schickel
931c8c27e2 Fix parameter in Windows MIDI backend (this is according to API documentation from M$).
svn-id: r39556
2009-03-20 00:20:29 +00:00
Max Horn
ffa97e6626 Patch #2658665: Implement getDevices() in backends/midi/dmedia.cpp
svn-id: r39437
2009-03-16 04:15:03 +00:00
Max Horn
eb5ec2369f #define usleep on BeOS
svn-id: r36201
2009-02-02 18:33:38 +00:00
Eugene Sandulenko
696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Johannes Schickel
b12ebf7218 Fixed sysEx buffer sizes.
svn-id: r35192
2008-11-30 13:03: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
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
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
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
Max Horn
0860df5d0e Fixed code formatting
svn-id: r33056
2008-07-14 07:54:18 +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
Max Horn
8d0766f4f7 Hack to disable 'depracted' warnings on OS X 10.5
svn-id: r32173
2008-05-18 17:20:59 +00:00
Max Horn
ebe1009335 Fixed QuickTime MIDI plugin
svn-id: r32127
2008-05-14 21:28:55 +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
Max Horn
d123c67174 Fix QuickTime MIDI driver compilation
svn-id: r32038
2008-05-11 21:28:51 +00:00
Filippos Karapetis
d6fafb4ad1 Fixed compilation under windows
svn-id: r32010
2008-05-11 10:52:58 +00:00