aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/music.cpp
AgeCommit message (Collapse)Author
2011-05-12GIT: Clean up: Suppress SVN tags, now uselessstrangerke
2011-03-28AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use itMax Horn
2011-03-25SAGA: Change Sage to use Audio::MidiPlayerMax Horn
2011-03-24SAGA: Rename some MusicDriver members to match Audio::MidiPlayerMax Horn
2011-03-23ENGINES: Further simplify pseudo MidiDrivers; fix some regressionsMax Horn
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-23AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclassesMax Horn
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-22AUDIO: Add pure virtual MidiDriver::isOpen() methodMax Horn
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-19SAGA: Cleanup syncSoundSettings()dhewg
And respect global mute settings
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2011-02-02MIDI: Fix for bug #3170988 - "MONKEY2: Messed up MT-32 music"Filippos Karapetis
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
2010-11-19COMMON: Split common/stream.h into several headersMax Horn
svn-id: r54385
2010-10-24SAGA: replace Resource:loadResource malloc with ByteArray classAndrew Kurushin
svn-id: r53779
2010-10-22SAGA: replace Actor::_pathCell, Anim::*, Converse::text, IsoMap::*, ↵Andrew Kurushin
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-09-28SAGA: Initialise _driverTypeTorbjörn Andersson
svn-id: r52922
2010-09-15MIDI: Send a reset MIDI device signal on startup.Johannes Schickel
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-07-16The standalone MIDI files for one of the re-releases of Inherit the Earth areTorbjörn Andersson
General MIDI, not MT-32. (I hope this doesn't break anything else.) svn-id: r50927
2010-07-14Don't close the MIDI driver twice. It's unnecessary, and some of our driversTorbjörn Andersson
may crash. (The ALSA one did, until a few minutes ago.) svn-id: r50871
2010-06-25AUDIO: get rid of MDT_PREFER_MIDI since it should be sufficient to either ↵Florian Kagerer
select MDT_PREFER_MT32 or MDT_PREFER_GM svn-id: r50288
2010-06-21Patch #1956501: "GUI/LAUNCHER: Midi device selection"Max Horn
svn-id: r50128
2010-06-15SAGA: fix timers.Eugene Sandulenko
Second parameter to intallTimerCallback is in _micro_seconds. Correct calls which assumed milliseconds. svn-id: r49771
2010-06-12SAGA: Music code cleanup. The music driver is now placed inside the ↵Filippos Karapetis
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-05-16Added automatic detection of the IHNM demoFilippos Karapetis
svn-id: r49047
2010-04-12AUDIO: Rename Mixer::playInputStream to playStreamMax Horn
svn-id: r48637
2010-02-26Fixed the music in some Mac versions of ITE and disabled some unused code ↵Filippos Karapetis
for the original DOS demo of ITE svn-id: r48139
2010-02-03- Rename FlacStream to FLACStream.Johannes Schickel
- Rename makeFlacStream to makeFLACStream. svn-id: r47846
2010-01-30- Mark makeRawDiskStream factory as deprecated.Johannes Schickel
- Introduce two new makeRawStream factories, one is using RawStreamBlockList instead of an RawDiskStreamAudioBlock array. svn-id: r47713
2010-01-26Moved audio stream implementations (for MP3, FLAC, etc.) to new dir ↵Max Horn
sound/decoders/ svn-id: r47579
2010-01-25Strip trailing spaces/tabs.Johannes Schickel
svn-id: r47541
2010-01-23Disabled the unused resource loading code for the unsupported QT MIDI ↵Filippos Karapetis
format, used in the Mac version of IHNM svn-id: r47474
2010-01-19Move raw audio flags from sound/mixer.h to sound/raw.hMax Horn
svn-id: r47395
2010-01-19Get rid of Mixer::FLAG_AUTOFREE.Max Horn
Also fix several recently introduced new/delete vs. malloc/free mismatches. svn-id: r47369
2010-01-19Move raw audio streams to new header sound/raw.hMax Horn
svn-id: r47368
2010-01-19Rename 'Linear' audio streams to 'raw'Max Horn
svn-id: r47367
2010-01-16Switch most AudioStream factories to use DisposeAfterUse::FlagMax Horn
svn-id: r47334
2010-01-12Rename all "Adlib" uses to "AdLib" to match the real name of the sound card ↵Johannes Schickel
/ 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-10Fix a memory leak.Johannes Schickel
svn-id: r47227
2010-01-10- Add a SubLoopingAudioStream, which loops a nested part of a stream and ↵Johannes Schickel
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-08Since AudioStream looping is no longer handled by the Mixer, drop ↵Johannes Schickel
Mixer::playAudioStreamLooping. (There's Audio::makeLoopingAudioStream). svn-id: r47160
2010-01-06- Move openStreamFile from AudioStream to SeekableAudioStream.Johannes Schickel
- Fix documentation of openStreamFile. svn-id: r47080
2010-01-06Adapt SAGA to use Mixer::playAudioStreamLooping instead of relying the ↵Johannes Schickel
depracted in AudioStream looping support. svn-id: r47063
2009-12-04refactor resource module:Andrew Kurushin
- struct ResourceContext => class ResourceContext - replace "*alloc","free" with array templates - simplify createContexts routines svn-id: r46254
2009-11-02Changed foo(void) to foo() in almost all non-backend source filesMax Horn
svn-id: r45616
2009-08-17Put back the code for playing external digital music, used by the MIDI ↵Filippos Karapetis
enhancement project, which was removed in rev. #43480 svn-id: r43485
2009-08-17Slight cleanup to makeLinearDiskStream interface.Johannes Schickel
svn-id: r43481
2009-08-17- Removed the custom DigitalMusicInputStream used in SAGA for the digital ↵Filippos Karapetis
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-03-08- Reworked the different file types a bitFilippos Karapetis
- Some initial work on Dinotopia's intro sequence svn-id: r39234
2009-01-04Got rid of explicit game sound infoFilippos Karapetis
svn-id: r35727
2009-01-04Improved handling of sound resourcesFilippos Karapetis
svn-id: r35724
2009-01-01Whoa! Removing trailing spaces.Eugene Sandulenko
svn-id: r35648
2008-12-25Made Engine::_timer protectedMax Horn
svn-id: r35543