aboutsummaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2003-07-28added CopyRateConverter (used if inrate == outrate)Max Horn
svn-id: r9214
2003-07-28use a single converter for both channels (if input data is stereo), for ↵Max Horn
improved efficency; renamed MemoryAudioInputStream -> LinearMemoryStream and use some template voodoo to make the baseclass of Input8bitSignedStream etc. variable; added (commented out) draf of WrappedMemoryStream svn-id: r9209
2003-07-26For for Bug [775654] DOTT: Hanging notesJamieson Christian
Corrected active notes tracking when switching between Type 2 SMF tracks. Although Note Off events from the previous track are properly simulated, those sustaining notes are cleared from the active notes list so that jumps within the new track will not attempt to sustain them again. svn-id: r9194
2003-07-26oops accidentally broke the 'old' 8bit resampling code :-(Max Horn
svn-id: r9192
2003-07-25move AudioInputStream implementations & makeInputStream into separate .cpp fileMax Horn
svn-id: r9190
2003-07-25reduced source code duplicationMax Horn
svn-id: r9189
2003-07-25lots of mixer changes: replaced _volumeTable by _globalVolume (applying ↵Max Horn
volume after resampling is more accurate); made more member vars of SoundMixer protected (and thus added some new getter methods); added (untested) support for a second (stereo) channel when playing MP3 svn-id: r9184
2003-07-25round to nearestMax Horn
svn-id: r9183
2003-07-24whitespaceMax Horn
svn-id: r9181
2003-07-24added volume support; some cleanup; provided exactly as many samples as were ↵Max Horn
requested in the 'resample' algorithm (if possible) svn-id: r9180
2003-07-24added RateConverter classes as thin wrappers around st_* functions; renamed ↵Max Horn
InputStream -> AudioInputStream and cleaned up the hierarchy of its subclasses; added makeInputStream() auxillary function svn-id: r9179
2003-07-24new files, based on SoX (http://sox.sf.net): better resampling code. Note ↵Max Horn
that my mixer.cpp changes are on purpose not yet in CVS since they are not complete. Only reasons I checkin these files is that it's much more comfortable to have CVS, since I need to rewrite parts of resample.cpp now (I already have lots of modifications in). Also expect more OO in the future svn-id: r9176
2003-07-23Fixed regression in clamped_add_16() that kept it from clamping. This wasTorbjörn Andersson
quite noticeable in the BASS floppy intro. Of course, if it turns out that 'int' is also only 16 bits it still won't work, but in that case we run into problems even before this function is called. svn-id: r9145
2003-07-17simplified codeMax Horn
svn-id: r9061
2003-07-14oopsMax Horn
svn-id: r9023
2003-07-14removed whitespaces at line ends; added stopHandleMax Horn
svn-id: r9022
2003-07-12Fixed RTTI warnings with PalmOS portChris Apers
svn-id: r8951
2003-07-12verify chan != 0 even on WinCEMax Horn
svn-id: r8940
2003-07-12Give sample rate to channel classes (WinCE downsampling) / Do not use ↵Nicolas Bacca
dynamic cast with EVC 3 / Fix Tremor Ogg support svn-id: r8937
2003-07-11Reverted to "old" YM3812 (FMOPL) emulator code.Jamieson Christian
Until specific information regarding the benefits of migrating to the new emulator can be made available, the "old" code will remain in effect for the benefit of slower hardware platforms such as some WinCE-based devices. svn-id: r8903
2003-07-10Fix for Bug [766426]: V5 Games: Adlib SFX not loopedJamieson Christian
Modified Smart Jump logic to deal with active notes whose Note On and Note Off events BOTH occur OUTSIDE the range of the jump. While this is not a thorough way to deal with Note On events that occur outside jump points, it at least deals with the issue of long, unchanging Adlib SFX used by some earlier SCUMM games. svn-id: r8892
2003-07-07#include scummsys.h so that our custome free() gets usedMax Horn
svn-id: r8849
2003-07-06mix() is really a private method, only to be called by the audio thread; ↵Max Horn
cover setupPremix by the mutex, too (that helps preventing race conditions upon exit) svn-id: r8809
2003-07-06now that we mutex-protect everything properly, we can get rid of ↵Max Horn
_toBeDestroyed; also, instead of keeping a global _handles array in the mixer, let each Channel manage its own handle svn-id: r8808
2003-07-06the mutex must be locked by everything which might access _channels while ↵Max Horn
the mixer thread is running, because the mixer thread may modify _channels svn-id: r8805
2003-07-06More fixes from HibernatusTravis Howell
svn-id: r8792
2003-07-06cleanup to the mixer helper proc interface and to ChannelStreamMax Horn
svn-id: r8785
2003-07-05protect calls to insertChannel with mutex, too (and switch to using StackLock)Max Horn
svn-id: r8782
2003-07-05updated code to use type MutexRef; added class StackLock (from sdl backend, ↵Max Horn
now in util.*) svn-id: r8777
2003-07-05hack for proper compile for vc6, why I need this ?Paweł Kołodziejski
svn-id: r8763
2003-07-04make SoundMixer::playRaw only check sound IDs if you actually pass oneRobert Göffringmann
svn-id: r8746
2003-07-04Prevent apparantly possible race condition. I don't get this stuff, and I ↵James Brown
don't see why the next call to insertChannel is immune to the same theoretical problem :) svn-id: r8742
2003-07-04Insert preliminary Zak256 sound looping support. It's not perfect, as some ↵James Brown
Zak256 sounds only loop a part of the sample - which our mixer API doesn't yet support. svn-id: r8741
2003-07-03cleanup for -WundefMax Horn
svn-id: r8726
2003-07-02cleanup (code easier to read; slightly less rounding errors for the volume; ↵Max Horn
and on BE systems, READ_BE_UINT16 is actually faster ;-) svn-id: r8706
2003-06-27fixed warningPaweł Kołodziejski
svn-id: r8664
2003-06-24cleanupMax Horn
svn-id: r8645
2003-06-22fixed warningsPaweł Kołodziejski
svn-id: r8613
2003-06-22d'ohMax Horn
svn-id: r8611
2003-06-22fixed Vorbis CD track codeMax Horn
svn-id: r8610
2003-06-22don't memset the output buffer to 0 if _eof_flag is set; rather, we should ↵Max Horn
'add 0' to every byte in the output buffer, i.e.: do nothing svn-id: r8609
2003-06-22properly init member vars instead of using memsetMax Horn
svn-id: r8608
2003-06-22Change names of the stream API in the mixer; added endStream method (stop() ↵Max Horn
halts stream immediately; endStream() lets it first finish playing) svn-id: r8603
2003-06-22fix compile when vorbis is enabled, loomcd is now broken with vorbis after ↵Jonathan Gray
recent changes :/ svn-id: r8598
2003-06-22renamed SoundMixer::hasActiveChannel->hasActiveSFXChannel, and fixed the ↵Max Horn
regression in it caused by removing _beginSlots (I hope); added isActiveChannel method used by scumm/sound.cpp (this allowed me to move the Channel class from mixer.h into mixer.cpp); replaced Channel::soundFinished method by isActive svn-id: r8597
2003-06-22remove the realDestroy methods and instead use destructors; renamed insertAt ↵Max Horn
to insertChannel and simplified/unified its usage; delete the mutex when exiting; cleanup svn-id: r8596
2003-06-21lots of mixer cleanup / refactoring / reengineeringMax Horn
svn-id: r8594
2003-06-21modified & cleaned up the playStream/append code a bit; but this API really ↵Max Horn
could stand some refinement svn-id: r8592
2003-06-21cleanupMax Horn
svn-id: r8584
2003-06-21make gcc happyJonathan Gray
svn-id: r8583