Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
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.
|
|
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.
|
|
svn-id: r55850
|
|
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
|
|
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
|
|
svn-id: r51101
|
|
select MDT_PREFER_MT32 or MDT_PREFER_GM
svn-id: r50288
|
|
svn-id: r50128
|
|
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
|
|
svn-id: r47534
|
|
property paragraph)
svn-id: r47489
|
|
svn-id: r47396
|
|
before freeing it, which isn't necessary.
svn-id: r46941
|
|
svn-id: r46316
|
|
consistency
svn-id: r44634
|
|
svn-id: r35648
|
|
svn-id: r33649
|
|
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
|
|
svn-id: r32934
|
|
svn-id: r32857
|
|
svn-id: r32855
|
|
svn-id: r32675
|
|
svn-id: r31419
|
|
svn-id: r31194
|
|
svn-id: r30664
|
|
headers are consistant with the other files
svn-id: r30433
|
|
svn-id: r30238
|
|
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
|
|
added code from the original game that used the high bit of sounds to distinguish between the two
svn-id: r29873
|
|
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
|
|
svn-id: r29554
|
|
crashes
svn-id: r29553
|
|
restorable are restarted after loading a savegame)
svn-id: r29271
|
|
svn-id: r29257
|
|
svn-id: r29114
|
|
how to use Common::set_to)
svn-id: r29081
|
|
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
|
|
svn-id: r28978
|
|
svn-id: r28917
|
|
svn-id: r28887
|
|
svn-id: r28545
|
|
svn-id: r27604
|