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
Max Horn
349fcd1d71
Rename 'Linear' audio streams to 'raw'
...
svn-id: r47367
2010-01-19 00:52:41 +00:00
Max Horn
7ec2da968c
Switch most AudioStream factories to use DisposeAfterUse::Flag
...
svn-id: r47334
2010-01-16 21:36:08 +00:00
Johannes Schickel
0d995c5920
Rename all "Adlib" uses to "AdLib" to match the real name of the sound card / company.
...
Check this for reference:
http://en.wikipedia.org/wiki/Ad_Lib,_Inc .
http://www.crossfire-designs.de/images/articles/soundcards/adlib.jpg (note the upper left of the card)
This commit does not touch "adlib" and "ADLIB" uses!
Also it does not update all the SCUMM detection entries, which still use "Adlib".
svn-id: r47279
2010-01-12 21:07:56 +00:00
Johannes Schickel
0447a7f9f8
Fix a memory leak.
...
svn-id: r47227
2010-01-10 15:23:35 +00:00
Johannes Schickel
6ca0570fe3
- Add a SubLoopingAudioStream, which loops a nested part of a stream and thus features the same looping capabilites as LinearMemoryStream and LinearDiskStream.
...
- Remove custom looping code from LinearMemoryStream and LinearDiskStream.
- Adapt various client code to the changes.
svn-id: r47226
2010-01-10 15:20:14 +00:00
Johannes Schickel
616e4626f5
Since AudioStream looping is no longer handled by the Mixer, drop Mixer::playAudioStreamLooping. (There's Audio::makeLoopingAudioStream).
...
svn-id: r47160
2010-01-08 16:27:29 +00:00
Johannes Schickel
84f3034406
- Move openStreamFile from AudioStream to SeekableAudioStream.
...
- Fix documentation of openStreamFile.
svn-id: r47080
2010-01-06 15:23:33 +00:00
Johannes Schickel
fb9017c51e
Adapt SAGA to use Mixer::playAudioStreamLooping instead of relying the depracted in AudioStream looping support.
...
svn-id: r47063
2010-01-06 00:00:50 +00:00
Andrew Kurushin
aa147a2f5a
refactor resource module:
...
- struct ResourceContext => class ResourceContext
- replace "*alloc","free" with array templates
- simplify createContexts routines
svn-id: r46254
2009-12-04 17:52:42 +00:00
Max Horn
51933629d1
Changed foo(void) to foo() in almost all non-backend source files
...
svn-id: r45616
2009-11-02 21:54:57 +00:00
Filippos Karapetis
4a4ae33825
Put back the code for playing external digital music, used by the MIDI enhancement project, which was removed in rev. #43480
...
svn-id: r43485
2009-08-17 18:25:51 +00:00
Johannes Schickel
516dd5c9a4
Slight cleanup to makeLinearDiskStream interface.
...
svn-id: r43481
2009-08-17 13:49:56 +00:00
Filippos Karapetis
77689a05a2
- Removed the custom DigitalMusicInputStream used in SAGA for the digital music in ITE CD and replaced it with the common LinearDiskStream class
...
- Removed leftover code which plays standalone tracks (it's not used anywhere)
svn-id: r43480
2009-08-17 13:25:44 +00:00
Filippos Karapetis
9d7111006d
- Reworked the different file types a bit
...
- Some initial work on Dinotopia's intro sequence
svn-id: r39234
2009-03-08 15:39:19 +00:00
Filippos Karapetis
80832ffb8f
Got rid of explicit game sound info
...
svn-id: r35727
2009-01-04 15:44:33 +00:00
Filippos Karapetis
203358bcb7
Improved handling of sound resources
...
svn-id: r35724
2009-01-04 14:38:03 +00:00
Eugene Sandulenko
696897b058
Whoa! Removing trailing spaces.
...
svn-id: r35648
2009-01-01 15:06:43 +00:00
Max Horn
6837416556
Made Engine::_timer protected
...
svn-id: r35543
2008-12-25 20:53:59 +00:00
Filippos Karapetis
437384a838
- Split the SAGA resource manager in 3 different ones, depending on the resource type (RSC for ITE, RES for IHNM and HRS for DINO/FTA2). The SAGA 2 HRS resource manager is still a stub
...
- Added detection for the voice file of FTA2
svn-id: r35484
2008-12-22 14:13:15 +00:00
Filippos Karapetis
d0f4f97ea9
Cleaned up the mess with game IDs and game types: removed game types, reduced the game IDs and added game features where necessary
...
svn-id: r35467
2008-12-21 15:59:05 +00:00
Robin Watts
8f3b2e9b4d
Remove warnings from NDS build.
...
svn-id: r35172
2008-11-29 18:01:16 +00:00
Filippos Karapetis
113a83c0da
Implemented pauseEngineIntern() for the SAGA engine
...
svn-id: r35007
2008-11-11 17:34:52 +00:00
Max Horn
6aa12974bd
SAGA: Some code cleanup
...
svn-id: r34703
2008-09-30 12:58:27 +00:00