44 Commits

Author SHA1 Message Date
Max Horn
088bd7a70b ENGINES: Remove unused MIDI pass-through code 2011-03-23 17:07:48 +01:00
Max Horn
e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Max Horn
29847ea42d AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
2011-03-23 15:25:47 +01: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
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn
abe1959d36 COMMON: Simplify DECLARE_SINGLETON macro
This makes it possible to write
  DECLARE_SINGLETON(foo);
instead of
  DECLARE_SINGLETON(foo)
without causing a warning about an extra semicolon.
The extra semicolon helps some editors at parsing the C++ code.

svn-id: r54258
2010-11-16 08:23:13 +00:00
Johannes Schickel
6588398ce6 MIDI: Send a reset MIDI device signal on startup.
This is currently done in the engine code. I adapted AGI, AGOS, DRACI,
GROOVIE, LURE, MADE, QUEEN, SAGA, SKY, TINSEL and TOUCHE to send a reset
device on startup. The sound output still works fine (started up a game
from every engine), so this should hopefully not introduce any regressions.

As far as I can tell it seems that SCUMM does send a proper device reset, so
I did not touch it. KYRA only sends a proper reset for MT-32 currently. I am
not sure about SCI though.

This fixes bug #3066826 "SIMON: MIDI notes off when using RTL after SCI".

svn-id: r52736
2010-09-15 22:00:20 +00:00
Johannes Schickel
e3d1ec482c LURE: Make LURE respect the mute settings.
svn-id: r51101
2010-07-21 20:12:35 +00:00
Florian Kagerer
c35e350531 AUDIO: get rid of MDT_PREFER_MIDI since it should be sufficient to either select MDT_PREFER_MT32 or MDT_PREFER_GM
svn-id: r50288
2010-06-25 20:51:57 +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
40562798d6 Fix our DECLARE_SINGLETON macro to conform to the C++ specs.
We need to use a namespace Common { } there to make strict C++ compilers
like clang++ and comeau happy. I also added a slight comment about why
that is needed to the macro definition and a note that you need to use
it from the global namespace.

svn-id: r48254
2010-03-13 21:55:49 +00:00
Johannes Schickel
bfcdbae648 Change some comments to use "AdLib" instead of "adlib".
svn-id: r47534
2010-01-25 00:39:46 +00:00
Arnaud Boutonné
1f79fd5788 Some more header modifications ("Graphic Adventure Engine" and the legal property paragraph)
svn-id: r47489
2010-01-23 22:50:24 +00:00
Max Horn
bce959e046 LURE: Remove evil 'using namespace' from header files
svn-id: r47396
2010-01-19 23:48:55 +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
c8873d8492 Changed MidiDriver::createMidi to take a MidiDriverType instead of an int
svn-id: r46316
2009-12-09 18:12:51 +00:00
Max Horn
f242266f6d Change a couple places from 'end of namespace' to 'End of namespace', for consistency
svn-id: r44634
2009-10-04 21:26:33 +00:00
Eugene Sandulenko
696897b058 Whoa! Removing trailing spaces.
svn-id: r35648
2009-01-01 15:06:43 +00:00
Christopher Page
e30d16ddc2 Fixed more warnings
svn-id: r33649
2008-08-05 21:56:45 +00:00
Christopher Page
7ecd54a9da Reverted some incorrect changes and fixed sound settings issues for LURE. Fixed issues with quitting and calling GMM during intro sequences in LURE. Added a KEYCODE_MAINMENU in common/keyboard.h for the GMM.
svn-id: r33081
2008-07-15 22:54:39 +00:00
Christopher Page
113aa1e77f LURE: Made sure to lock _soundMutex in syncSounds()
svn-id: r32934
2008-07-07 03:30:34 +00:00
Christopher Page
563e28b668 Fixed some warnings
svn-id: r32857
2008-06-30 23:06:38 +00:00
Christopher Page
c1ae3f7dd0 Sound settings for Lure can be modified through the GMM
svn-id: r32855
2008-06-30 22:41:55 +00:00
Christopher Page
a596879c8e LURE: Fixed memory leaks in the LURE engine
svn-id: r32675
2008-06-12 18:11:09 +00:00
Filippos Karapetis
bd1224e36c Replaced ManagedList with Common::SharedPtr in lure's sound system
svn-id: r31419
2008-04-06 11:12:42 +00:00
Paul Gilbert
74e5ef5c56 Commit of Hans de Goede's patches to the sound handling code
svn-id: r31194
2008-03-19 10:37:33 +00:00
Jordi Vilalta Prat
66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Paul Gilbert
dde154c3ed Removed old copyright 2005-2006 line from several files so that their headers are consistant with the other files
svn-id: r30433
2008-01-12 01:30:11 +00:00
Paul Gilbert
6eb64102a4 Fix to remove a tab character from the GPL header
svn-id: r30238
2008-01-05 12:45:14 +00:00
Torbjörn Andersson
943ab421a4 The _nativeMT32 in MidiMusic was never initialised. Rather than storing it in
two different classes, use the value in SoundManager instead. As a consequence
the engine now remaps the instruments from MT-32 to General MIDI for me, since
isRoland() is true and hasNativeMT32() is false. Earlier, it didn't since the
uninitialised _nativeMT32 happened to be true for me.

svn-id: r29878
2007-12-16 14:46:48 +00:00
Paul Gilbert
706e779236 Hooked up the sound code to use the configuration for sfx and music, and added code from the original game that used the high bit of sounds to distinguish between the two
svn-id: r29873
2007-12-16 08:19:56 +00:00
Paul Gilbert
cdd9fa3556 - Changed sound creation to automatically reset volume so that introduction sound sequences play correctly
- Cleaned up my channel sharing code to allow for either cropping the number of channels used or use the same channel multiple times. Ideally, though, I need to find out if the MidiParser can be set to use less than 8 channels

svn-id: r29648
2007-11-27 10:09:42 +00:00
Paul Gilbert
9195905008 Further fixes to sound code (thanks to eriktorbjorn)
svn-id: r29554
2007-11-18 08:11:29 +00:00
Paul Gilbert
ab445635cb Added some extra mutex locks to the sound code to hopefully prevent randomo crashes
svn-id: r29553
2007-11-18 07:42:49 +00:00
Paul Gilbert
5f1ef91820 Added storing of playing sounds to savegame (note: only sounds flagged as restorable are restarted after loading a savegame)
svn-id: r29271
2007-10-28 03:32:13 +00:00
Paul Gilbert
864ed910fa Bugfix to make sound toggle work correctly, and added flag state to savegames
svn-id: r29257
2007-10-25 10:39:19 +00:00
Paul Gilbert
c5edcaa2ef Wrapped access to the playing sounds list in a mutex
svn-id: r29114
2007-09-28 07:55:02 +00:00
Johannes Schickel
63d59b2ee6 Changes some code to use Common::set_to instead of loops. (as an example on how to use Common::set_to)
svn-id: r29081
2007-09-24 00:08:18 +00:00
Torbjörn Andersson
828158a82a I'm probably being overly paranoid, but I'm nervous about initializing an array
of boolean with memset(). Maybe it's perfectly fine and healthy, but using a
loop is consistent with how we do it in killSounds() anyway.

svn-id: r28979
2007-09-20 04:13:37 +00:00
Torbjörn Andersson
4c4d4e7b15 Fixed out-of-bounds writing in killSounds().
svn-id: r28978
2007-09-20 04:09:55 +00:00
Paul Gilbert
b2e97060ad Initial sound implementation
svn-id: r28917
2007-09-16 04:06:49 +00:00
Max Horn
4a302b25ad Lots of source code formatting corrections
svn-id: r28887
2007-09-10 13:17:20 +00:00
Paul Gilbert
c247257721 Added part of the framework for playing sounds
svn-id: r28545
2007-08-12 11:08:44 +00:00
Paul Gilbert
5e92ea378f Initial commit
svn-id: r27604
2007-06-22 12:30:18 +00:00