aboutsummaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2010-01-07Create a wrapper makeLoopingAudioStream to reduce code duplcation.Johannes Schickel
svn-id: r47128
2010-01-07Let ADPCM streams subclass RewindableAudioStreams and thus allow them to be ↵Johannes Schickel
looped with the new looping code. svn-id: r47127
2010-01-07Get rid of calculatePlayTime, instead store playtimes as TimestampsMax Horn
svn-id: r47122
2010-01-07Add Timestamp::totalNumberOfFrames() method, clarify some commentsMax Horn
svn-id: r47120
2010-01-07Fix warningMax Horn
svn-id: r47119
2010-01-07Add important note for engine authors about SubSeekableAudioStream.Johannes Schickel
svn-id: r47114
2010-01-07Add a playInputStreamLooping for RewindableAudioStream to Mixer.Johannes Schickel
svn-id: r47113
2010-01-07Cleanup.Johannes Schickel
svn-id: r47112
2010-01-07- Strip custom looping code out of FLAC, Vorbis and MP3 streamsJohannes Schickel
- Adapt the legacy make*Stream factories to use the new AudioStream subclasses - Change return value of make*Stream back to AudioStream * svn-id: r47111
2010-01-07Switch Mixer back to use only one Channel implementation. (partial revert of ↵Johannes Schickel
r47031 + r47034). svn-id: r47110
2010-01-07First step of a slight revision of the new AudioStream looping API:Johannes Schickel
- Create a RewinadableAudioStream, for streams which can only be reset to the start - Create a LoopableAudioStream, which loops a whole RewindableAudioStream - Make SeekableAudioStream a subclass of RewindableAudioStream - Create a SubSeekableAudioStream, which allows of limiting the range of an SeekableAudioStream to be played. - Adapt AudioCD code. svn-id: r47109
2010-01-06Fix FLAC's getLength implementation.Johannes Schickel
svn-id: r47093
2010-01-06Add a constructor to Timestamp, which allows for specifying seconds + start ↵Johannes Schickel
frames directly. svn-id: r47091
2010-01-06Adapt FLAC and Vorbis to use calculateSampleOffset in their seek implementation.Johannes Schickel
svn-id: r47085
2010-01-06Rename some Timestamp methods: getNumberOfFrames -> numberOfFrames and ↵Max Horn
getFramerate -> framerate svn-id: r47083
2010-01-06- Simplify Audio::calculateSampleOffset.Johannes Schickel
- Made Audio::calculateSampleOffset accessable from outside audiostream.cpp. - Adapt KYRA's AUDStream to use Audio::calculateSampleOffset. svn-id: r47082
2010-01-06- Add some functionallity to query the seconds and number of frames stored ↵Johannes Schickel
in a Timestamp. - Add tests for these svn-id: r47081
2010-01-06- Move openStreamFile from AudioStream to SeekableAudioStream.Johannes Schickel
- Fix documentation of openStreamFile. svn-id: r47080
2010-01-06Add more comparision operators to TimestampMax Horn
svn-id: r47071
2010-01-06Change the way Timestamp stores its data.Max Horn
Instead of storing milliseconds and frames (which causes rounding errors, and causes ambiguity in how a given time is stored), we now do things differently: We store a number of seconds, and frames. To make sure that we can still handle milliseconds accurately, though, we change the framerate to the least common multiple of the original framerate and 1000. So 60 becomes 6000, and 44100 becomes 441000. There are no visible changes for client code, except for the increased accuracy. svn-id: r47070
2010-01-06The current AIFF stream implementations returns a SeekableAudioStream, ↵Johannes Schickel
reflect that in its factory method. svn-id: r47067
2010-01-06Change the AudioStream::openStreamFile API to return SeekableAudioStreams ↵Johannes Schickel
and remove parameter for depreacted loop support. (We could consider moving this to SeekableAudioStream). svn-id: r47065
2010-01-05- Put the new factories for MP3, Vorbis and FLAC in place.Johannes Schickel
- Marked the loop factories with loop related parameters as deprecated. svn-id: r47061
2010-01-05Properly initialize _pos in LoopingChannel.Johannes Schickel
svn-id: r47055
2010-01-05Implement Timestamp::operator== as equality in time.Johannes Schickel
svn-id: r47054
2010-01-05Cleanup.Johannes Schickel
svn-id: r47052
2010-01-05Update ARM version of rate filler code in line with LordHoto's changeRobin Watts
in revision 47014. svn-id: r47051
2010-01-05Cleanup.Johannes Schickel
svn-id: r47046
2010-01-05- Initial implementation of looping of SeekableAudioStreams in Mixer.Johannes Schickel
- Adapted AudioCD code to use this for audio CD emulation. svn-id: r47045
2010-01-05Remove unsafe getTotalPlayTime from AudioStream.Johannes Schickel
svn-id: r47037
2010-01-05Add a "getLength" function to SeekableAudioStream.Johannes Schickel
svn-id: r47036
2010-01-05Add some basic documentation to the new Channel interface.Johannes Schickel
svn-id: r47034
2010-01-05- Do not calculate left/right channel volume every SimpleChannel::mix call ↵Johannes Schickel
anymore, but do it once - Notify a channel, when it's channel volume type changed from inside MixerImpl::setVolumeForSoundType svn-id: r47033
2010-01-05Get rid of public variables in Channel.Johannes Schickel
svn-id: r47032
2010-01-05Create a generic Channel interface for the default Mixer implementation.Johannes Schickel
svn-id: r47031
2010-01-05- Fix a bug in Channel::pause for recursive pausing.Johannes Schickel
- Fix bug in Channel:getElapsedTime, when called while the channel is paused. svn-id: r47029
2010-01-05Oops somehow I must have missed CopyRateConverter::flow, in r47014.Johannes Schickel
svn-id: r47016
2010-01-05Use the return value of RateConverter::flow to calculate the decoded samples ↵Johannes Schickel
and not the upper bound "len". (This should only be a difference when the audio stream has no more samples left) svn-id: r47015
2010-01-05Make RateConverter::flow return the number of sample pairs written, like ↵Johannes Schickel
it's documented in the .cpp file. svn-id: r47014
2010-01-05- Add a new SeekableAudioStream interface. Soon to be used to replace audio ↵Johannes Schickel
stream specific looping code by generic code in Mixer... - Adapted some existing AudioStreams to implement that interface (not tested!) svn-id: r47013
2010-01-04Switch Channel::getElapsedTime() to use a Timestamp for its computationsMax Horn
svn-id: r46995
2010-01-04Make some improvements for Audio::Timestamp.Max Horn
* Add convertToFramerate() method * Add framerate() method * Add operator == and != * Improve frameDiff() to work for two timestamps with distinct framerates * Improve Doxygen comments svn-id: r46994
2010-01-03- Remove unsafe default constructor of Audio::Timestamp.Johannes Schickel
- Add an assert which prevents the _frameRate from being 0 in the Audio::Timestamp constructor. svn-id: r46958
2010-01-03Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is nullTorbjörn Andersson
before freeing it, which isn't necessary. svn-id: r46941
2010-01-02SCI/new music code: Don't stop notes when looping for a holdWillem Jan Palenstijn
svn-id: r46897
2010-01-01This time properly fix getTotalPlayTime for looped FLAC, MP3 and VORBIS ↵Johannes Schickel
audio streams. svn-id: r46863
2010-01-01Mention in documentation of AudioStream::setNumLoops, that this function ↵Johannes Schickel
also resets the number of loops played counter. svn-id: r46862
2010-01-01Properly reset _numPlayedLoops in setNumLoops in all AudioStream ↵Johannes Schickel
implementations implementing setNumLoops. svn-id: r46861
2010-01-01init _numPlayedLoops inside LinearMemoryStreamMartin Kiewitz
svn-id: r46857
2010-01-01Fix getTotalPlayTime for MP3, FLAC, Vorbis and LinearMemoryStream after the ↵Johannes Schickel
latest loop related changes. svn-id: r46838