1527 Commits

Author SHA1 Message Date
Max Horn
590481b12d Improve support for negative Timestamps, and add + and - operators
svn-id: r47244
2010-01-11 10:17:55 +00:00
Johannes Schickel
27957570bf Typo.
svn-id: r47230
2010-01-10 15:43:42 +00:00
Johannes Schickel
bfed78a5db Add some more comments.
svn-id: r47229
2010-01-10 15:42:22 +00:00
Johannes Schickel
59471e3f43 Fix missing type forward declaration in voc.h.
svn-id: r47228
2010-01-10 15:30:31 +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
Max Horn
a44c6e4323 Add Mixer::getElapsedTime() method returning a Timestamp, thus offering a higher precision than Mixer::getSoundElapsedTime(). Convert some video code to use it.
svn-id: r47213
2010-01-09 22:37:10 +00:00
Max Horn
4a832ceb01 Fix Timestamp::addMsecs; some cleanup
svn-id: r47212
2010-01-09 22:36:32 +00:00
Johannes Schickel
9c2fa534d1 Implement some safer handling of the "Extended" block in VOC files.
svn-id: r47203
2010-01-09 18:51:25 +00:00
Max Horn
be8371fb07 Replace AppendableAudioStream by QueuingAudioStream
svn-id: r47189
2010-01-09 00:19:13 +00:00
Willem Jan Palenstijn
229c53d485 Use DisposeAfterUse::Flag
svn-id: r47187
2010-01-08 23:05:00 +00:00
Johannes Schickel
b8727aefcc Fix LinearMemoryStream::seek, when the stream was created without request to dispose the memory itself.
svn-id: r47184
2010-01-08 22:14:55 +00:00
Max Horn
f720d99b0a Switch Mixer::playInputStream to use DisposeAfterUse::Flag
svn-id: r47182
2010-01-08 22:09:43 +00:00
Max Horn
474d49946f Rename QueuedAudioStream to QueuingAudioStream
svn-id: r47179
2010-01-08 22:06:04 +00:00
Max Horn
95726dfe50 Move Mohawk's QueuedAudioStream to sound/ (with some tweaks)
svn-id: r47177
2010-01-08 22:04:30 +00:00
Johannes Schickel
271956f2d7 Add some warning inside makeLoopingAudioStream, in case the give start time is after the given end time.
svn-id: r47162
2010-01-08 16:38:51 +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
e976b11995 Add another makeLoopingAudioStream factory for transparently looping a certain interval of a SeekableAudioStream.
svn-id: r47159
2010-01-08 16:25:51 +00:00
Johannes Schickel
a5adbb851a Fix use of getRate in VorbisInputStream's constructor. (Thanks to cyx for spotting this)
svn-id: r47144
2010-01-07 23:50:18 +00:00
Johannes Schickel
a15cc002bb Cleanup.
svn-id: r47139
2010-01-07 20:13:02 +00:00
Johannes Schickel
bd651c6c3d Fix a little bug in LoopingAudioStream::readBuffer.
svn-id: r47138
2010-01-07 19:34:19 +00:00
Johannes Schickel
127213f706 Remove setNumLoops and getNumPlayedLoops from AudioStream.
svn-id: r47137
2010-01-07 17:45:38 +00:00
Johannes Schickel
aa2f55ddc6 Remove the deprecated FLAC, Vorbis and MP3 factories.
svn-id: r47134
2010-01-07 17:14:44 +00:00
Johannes Schickel
b47725540f Cleanup.
svn-id: r47133
2010-01-07 17:04:32 +00:00
Johannes Schickel
a597e5fef9 Make VagStream a RewindableAudioStream.
svn-id: r47132
2010-01-07 17:04:01 +00:00
Johannes Schickel
d5fe29c3c9 Make makeWAVStream return a RewindableAudioStream.
svn-id: r47129
2010-01-07 16:34:56 +00:00
Johannes Schickel
ca5e137945 Create a wrapper makeLoopingAudioStream to reduce code duplcation.
svn-id: r47128
2010-01-07 16:18:03 +00:00
Johannes Schickel
2e9bae44c5 Let ADPCM streams subclass RewindableAudioStreams and thus allow them to be looped with the new looping code.
svn-id: r47127
2010-01-07 16:08:41 +00:00
Max Horn
4f463e288e Get rid of calculatePlayTime, instead store playtimes as Timestamps
svn-id: r47122
2010-01-07 15:25:14 +00:00
Max Horn
32ec5746be Add Timestamp::totalNumberOfFrames() method, clarify some comments
svn-id: r47120
2010-01-07 15:12:20 +00:00
Max Horn
423094cd5f Fix warning
svn-id: r47119
2010-01-07 15:11:46 +00:00
Johannes Schickel
c57549184b Add important note for engine authors about SubSeekableAudioStream.
svn-id: r47114
2010-01-07 14:25:16 +00:00
Johannes Schickel
6abc10c6ea Add a playInputStreamLooping for RewindableAudioStream to Mixer.
svn-id: r47113
2010-01-07 14:23:42 +00:00
Johannes Schickel
e00f36f9c7 Cleanup.
svn-id: r47112
2010-01-07 14:22:57 +00:00
Johannes Schickel
b80779824f - Strip custom looping code out of FLAC, Vorbis and MP3 streams
- 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-07 14:22:24 +00:00
Johannes Schickel
49e53ade00 Switch Mixer back to use only one Channel implementation. (partial revert of r47031 + r47034).
svn-id: r47110
2010-01-07 14:21:13 +00:00
Johannes Schickel
aa92e004f5 First step of a slight revision of the new AudioStream looping API:
- 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-07 14:20:36 +00:00
Johannes Schickel
b6fb8b349a Fix FLAC's getLength implementation.
svn-id: r47093
2010-01-06 20:25:19 +00:00
Johannes Schickel
f32aeb01bf Add a constructor to Timestamp, which allows for specifying seconds + start frames directly.
svn-id: r47091
2010-01-06 20:24:56 +00:00
Johannes Schickel
8c79b6f6ee Adapt FLAC and Vorbis to use calculateSampleOffset in their seek implementation.
svn-id: r47085
2010-01-06 16:11:21 +00:00
Max Horn
dd76e2bda0 Rename some Timestamp methods: getNumberOfFrames -> numberOfFrames and getFramerate -> framerate
svn-id: r47083
2010-01-06 15:56:04 +00:00
Johannes Schickel
297a955579 - Simplify Audio::calculateSampleOffset.
- Made Audio::calculateSampleOffset accessable from outside audiostream.cpp.
- Adapt KYRA's AUDStream to use Audio::calculateSampleOffset.

svn-id: r47082
2010-01-06 15:40:49 +00:00
Johannes Schickel
e72707b04e - Add some functionallity to query the seconds and number of frames stored in a Timestamp.
- Add tests for these

svn-id: r47081
2010-01-06 15:33:54 +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
Max Horn
1c6ccf8000 Add more comparision operators to Timestamp
svn-id: r47071
2010-01-06 12:15:05 +00:00
Max Horn
5b635fd610 Change the way Timestamp stores its data.
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-06 12:09:14 +00:00
Johannes Schickel
789f2ce255 The current AIFF stream implementations returns a SeekableAudioStream, reflect that in its factory method.
svn-id: r47067
2010-01-06 00:02:49 +00:00
Johannes Schickel
8638d6ce61 Change the AudioStream::openStreamFile API to return SeekableAudioStreams and remove parameter for depreacted loop support. (We could consider moving this to SeekableAudioStream).
svn-id: r47065
2010-01-06 00:01:57 +00:00
Johannes Schickel
81a94a0644 - Put the new factories for MP3, Vorbis and FLAC in place.
- Marked the loop factories with loop related parameters as deprecated.

svn-id: r47061
2010-01-05 23:59:28 +00:00
Johannes Schickel
e38b7b3cc5 Properly initialize _pos in LoopingChannel.
svn-id: r47055
2010-01-05 22:02:04 +00:00
Johannes Schickel
7591a09365 Implement Timestamp::operator== as equality in time.
svn-id: r47054
2010-01-05 22:01:05 +00:00