20 #ifndef SOUND_LIVESOUND_H 21 #define SOUND_LIVESOUND_H 62 assert(pos < _decodedData.size());
63 return reinterpret_cast<const std::int16_t*
>(
64 _decodedData.data() + pos);
71 virtual bool moreData() = 0;
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(std::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 std::unique_ptr<media::AudioDecoder> _decoder;
157 #endif // SOUND_EMBEDSOUNDINST_H
media::AudioDecoder & decoder() const
Definition: LiveSound.h:95
Instance of a defined sound (LiveSoundData)
Definition: LiveSound.h:46
SimpleBuffer data
Definition: LocalConnection_as.cpp:151
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
unsigned int decodedSamplesAhead() const
Definition: LiveSound.h:106
size_t playbackPosition() const
Definition: LiveSound.h:91
void restart()
Start from the beginning again.
Definition: LiveSound.h:79
void appendDecodedData(std::uint8_t *data, unsigned int size)
Definition: LiveSound.h:99
unsigned int samplesFetched() const
How many samples have been fetched since the beginning.
Definition: LiveSound.h:87
A simple buffer of bytes.
Definition: SimpleBuffer.h:38
const std::int16_t * getDecodedData(unsigned long int pos) const
Definition: LiveSound.h:61