20 #ifndef SOUND_LIVESOUND_H
21 #define SOUND_LIVESOUND_H
23 #include <boost/scoped_ptr.hpp>
25 #include <boost/cstdint.hpp>
62 assert(pos < _decodedData.
size());
63 return reinterpret_cast<const boost::int16_t*
>(
64 _decodedData.
data() + pos);
76 virtual bool eof()
const = 0;
80 _playbackPosition = _inPoint;
88 return _samplesFetched;
92 return _playbackPosition;
100 _decodedData.
append(data, size);
108 const unsigned int dds = _decodedData.
size();
109 if (dds <= _playbackPosition)
return 0;
111 size_t bytesAhead = dds - _playbackPosition;
112 bytesAhead = checkEarlierEnd(bytesAhead, _playbackPosition);
114 assert(!(bytesAhead % 2));
116 const unsigned int samplesAhead = bytesAhead / 2;
126 virtual size_t checkEarlierEnd(
size_t left,
size_t)
const {
131 unsigned int fetchSamples(boost::int16_t* to,
unsigned int nSamples);
136 virtual bool decodingCompleted()
const = 0;
138 const size_t _inPoint;
141 size_t _playbackPosition;
144 unsigned long _samplesFetched;
146 boost::scoped_ptr<media::AudioDecoder> _decoder;
157 #endif // SOUND_EMBEDSOUNDINST_H