Commit graph

123 commits

Author SHA1 Message Date
Filippos Karapetis
98da344a67 SAGA: Remove obsolete disabled code 2017-08-21 22:31:33 +03:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Johannes Schickel
01020089da SAGA: Add comments about possibly race conditions to timer callbacks.
(cherry picked from commit 93f627441a)
2016-02-09 02:52:29 +01:00
Filippos Karapetis
5b7dc80a64 SAGA: Fix typo in commit 6a49654 2015-07-13 02:29:07 +03:00
Filippos Karapetis
6a49654d86 SAGA: Fall back to the default Adlib driver for non-DOS versions of ITE
Only the DOS version of ITE uses the Miles audio driver
2015-07-13 02:21:51 +03:00
Filippos Karapetis
a95d22a2cd SAGA: Initial work on the DOS ITE demo 2015-07-04 01:51:45 +03:00
Kirben
1d204c752f SAGA: Fix Adlib in original DOS CD version of Inherit the Earth. 2015-07-03 09:39:30 +10:00
Torbjörn Andersson
a1929c6887 SAGA: Use the new "Miles" drivers for AdLib and MT-32
Note that this breaks the IHNM demo, as provided on the ScummVM web
page, since it doesn't have the sample.ad and sample.opl files
needed, but I have a feeling that this is a packaging error on
our part.

I don't have the original release of ITE, so I can't test that.
2015-06-28 16:08:49 +02:00
Filippos Karapetis
e88d6265d8 SAGA: Add support for MIDI music in SAGA2 games 2014-07-20 21:19:20 +03:00
Filippos Karapetis
b14a2599bc SAGA: Get rid of the MUSIC_DEFAULT flag 2014-07-20 17:10:55 +03:00
Johannes Schickel
c1be2aedbb SAGA: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Sven Hesse
989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Filippos Karapetis
0d53b7f628 SAGA: Fix some non-initialized variables in the Music class - CID 1003131 2013-05-01 02:01:23 +03:00
Matthew Hoops
b996a6a270 SAGA: Add support for IHNM Mac music 2012-09-12 19:31:29 -04:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Eugene Sandulenko
78f1ea7690 OSYSTEM: extended installTimerProc() with timer ID parameter 2011-08-06 11:28:35 +01:00
eriktorbjorn
1b231ed7ff SAGA: Mute the music while the game is paused
It already paused the music, but any notes that were playing were
just left hanging. At least with the ALSA MIDI driver. This was
quite annoying when using the debug console.
2011-07-10 07:39:38 +02:00
Filippos Karapetis
0d3a2267c7 SAGA: Removed several game flags, which are now found more reliably on the fly
- The logo screens of all ITE versions are shown correctly now
- Wyrmkeep versions, demo versions with scene substitutes, demos with
mono music and demo versions with LE VOX encoded voices are all found
automatically now
2011-07-09 15:59:30 +03:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn
8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it 2011-03-28 18:06:36 +02:00
Max Horn
9e65daef3b SAGA: Change Sage to use Audio::MidiPlayer 2011-03-25 17:00:54 +01:00
Max Horn
06b5432e94 SAGA: Rename some MusicDriver members to match Audio::MidiPlayer 2011-03-24 16:46: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
dhewg
2cb6641786 SAGA: Cleanup syncSoundSettings()
And respect global mute settings
2011-03-19 16:04:55 +01:00
Max Horn
42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Filippos Karapetis
9b8c04045b MIDI: Fix for bug #3170988 - "MONKEY2: Messed up MT-32 music"
This is a regression from r55256. Apparently, SCUMM has issues when sending a sustain
off on a notes off event. Thus, this has been turned into a feature, which is disabled
by default. Since MADE, SAGA and tinsel all share the same music code and play regular
MIDI files, and this feature fixes hanging notes for them, it has been enabled for them.
Also, applied a patch for a bug regarding the notes off event in MADE and tinsel,
which has been applied in SAGA already

svn-id: r55746
2011-02-02 23:27:59 +00:00
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Andrew Kurushin
67cc1b8a84 SAGA: replace Resource:loadResource malloc with ByteArray class
svn-id: r53779
2010-10-24 22:17:44 +00:00
Andrew Kurushin
f24394b85f SAGA: replace Actor::_pathCell, Anim::*, Converse::text, IsoMap::*, Music::_songTable, ObjectMap::*, PalAnim::*, Scene::sceneLut, SndRes::_fxTable* malloc based arrays with Common::Array implementation
add ByteArray type
fix debug Tile Hittest frame drawing
debug 0x%x => 0x%X

svn-id: r53719
2010-10-22 23:13:17 +00:00
Torbjörn Andersson
5d1e26d804 SAGA: Initialise _driverType
svn-id: r52922
2010-09-28 04:53:38 +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
Torbjörn Andersson
ae1afee564 The standalone MIDI files for one of the re-releases of Inherit the Earth are
General MIDI, not MT-32. (I hope this doesn't break anything else.)

svn-id: r50927
2010-07-16 03:32:59 +00:00
Torbjörn Andersson
3cb59d237e Don't close the MIDI driver twice. It's unnecessary, and some of our drivers
may crash. (The ALSA one did, until a few minutes ago.)

svn-id: r50871
2010-07-14 04:34:57 +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
Eugene Sandulenko
9d4d191baa SAGA: fix timers.
Second parameter to intallTimerCallback is in _micro_seconds.
Correct calls which assumed  milliseconds.

svn-id: r49771
2010-06-15 10:50:49 +00:00
Filippos Karapetis
0492bd6aa6 SAGA: Music code cleanup. The music driver is now placed inside the MusicPlayer class, instead of the SagaEngine class. Split the functionality that the music parser should handle from the functionality that the music driver should handle. Also, fixed a bug in MusicDriver::send() (the notes off signal was sent to unallocated channels, not allocated ones)
svn-id: r49607
2010-06-12 18:20:22 +00:00
Filippos Karapetis
80acb21a56 Added automatic detection of the IHNM demo
svn-id: r49047
2010-05-16 10:36:21 +00:00
Max Horn
a1840bd573 AUDIO: Rename Mixer::playInputStream to playStream
svn-id: r48637
2010-04-12 09:14:17 +00:00
Filippos Karapetis
3f2471418d Fixed the music in some Mac versions of ITE and disabled some unused code for the original DOS demo of ITE
svn-id: r48139
2010-02-26 22:24:48 +00:00
Johannes Schickel
fe35d372da - Rename FlacStream to FLACStream.
- Rename makeFlacStream to makeFLACStream.

svn-id: r47846
2010-02-03 09:42:11 +00:00
Johannes Schickel
ec3f58e626 - Mark makeRawDiskStream factory as deprecated.
- Introduce two new makeRawStream factories, one is using RawStreamBlockList instead of an RawDiskStreamAudioBlock array.

svn-id: r47713
2010-01-30 15:17:57 +00:00
Max Horn
1565f14bc1 Moved audio stream implementations (for MP3, FLAC, etc.) to new dir sound/decoders/
svn-id: r47579
2010-01-26 22:48:45 +00:00
Johannes Schickel
aed02365ec Strip trailing spaces/tabs.
svn-id: r47541
2010-01-25 01:39:44 +00:00
Filippos Karapetis
18a18701f7 Disabled the unused resource loading code for the unsupported QT MIDI format, used in the Mac version of IHNM
svn-id: r47474
2010-01-23 13:46:43 +00:00
Max Horn
dc5e08e623 Move raw audio flags from sound/mixer.h to sound/raw.h
svn-id: r47395
2010-01-19 22:30:33 +00:00
Max Horn
557bb394de Get rid of Mixer::FLAG_AUTOFREE.
Also fix several recently introduced new/delete vs. malloc/free mismatches.

svn-id: r47369
2010-01-19 00:56:29 +00:00
Max Horn
69be747621 Move raw audio streams to new header sound/raw.h
svn-id: r47368
2010-01-19 00:54:06 +00:00