Commit Graph
15 Commits
Author SHA1 Message Date
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Bastien Bouclet 1e6640ab33 LASTEXPRESS: Add override keywords 2020-02-09 12:43:15 +01:00
Evgeny Grechnikov af580eaa85 LASTEXPRESS: save/load sound state
Warning: breaks compatibility with previous savefiles.
They were mostly broken anyway, locking any NPC who
waited for kActionEndSound when savefile was created.
2018-10-20 16:35:23 +03:00
Evgeny Grechnikov b7b5fbbad2 LASTEXPRESS: support for looped sounds 2018-10-17 23:03:00 +03:00
Evgeny Grechnikov d561fd8a83 LASTEXPRESS: dynamic adjusting of sound volume
Now it works just like in the original game,
including fading where it is applicable
(e.g. in a passengers list if closing the list while a sound is playing).

By the way, p2s sequence is known as http://oeis.org/A000265 ,
p1s is 4 - A007814, and p2s[i]/2**p1s[i] is just i/16.
It is time to get rid of these arrays.
2018-10-16 23:57:25 +03:00
Evgeny Grechnikov 8162309212 LASTEXPRESS: fix race condition in sound code
SoundEntry::play() calls StreamedSound::setFilterId(),
StreamSound::setFilterId() requires the underlying reference to be alive.
SoundQueue::handleTimer() checks that the stream is still alive
by calling SoundEntry::isFinished(). However, if the stream is finalized
just between calls to SoundEntry::isFinished() and SoundEntry::play(),
the sound mixer frees the stream leading to use-after-free in setFilterId().

Turn off the automatical disposing, delete the stream in SoundEntry::~SoundEntry().
2018-10-16 00:49:07 +03:00
Matthew Hoops 030e4d0608 AUDIO: Make Rewindable- and SeekableAudioStream inherit virtually 2015-08-30 19:53:53 -04:00
Johannes Schickel 3d4f409572 LASTEXPRESS: Make GPL headers consistent in themselves. 2014-02-18 02:39:35 +01:00
Littleboy 47e9a6ccdc LASTEXPRESS: Move sound filtering to base Sound class
- Rename kSoundStatusRemoved to kSoundStatusClosed
 - Rename kSoundStatusClear2 to kSoundStatusCached
 - Remove sound cache handling
2011-07-04 14:26:31 -04:00
Littleboy 2788cb8bf7 LASTEXPRESS: Update sound timer and sound entry playing
- Move filtering to SoundEntry class
 - Make some methods of SoundEntry class private
 - Add methods to check if a StreamedSound/AppendableSound is done playing
2011-06-29 11:07:28 -04:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Max Horn a0df86955f ALL: Push down deps on stream.h from .h to .cpp files
svn-id: r54358
2010-11-19 01:37:04 +00:00
Eugene Sandulenko 86d650926f LASTEXPRESS: Merge in the engine.
svn-id: r53579
2010-10-18 19:17:38 +00:00