void set_data (Sample* data, size_t size) {
assert(!_owns_data); // prevent leaks
_capacity = size;
- _size = size;
_data = data;
_silent = false;
_written = false;
*/
void resize (size_t nframes);
- bool empty() const { return _size == 0; }
-
const Sample* data (framecnt_t offset = 0) const {
assert(offset <= _capacity);
return _data + offset;
return _data + offset;
}
- bool check_silence (pframes_t, bool, pframes_t&) const;
+ bool check_silence (pframes_t, pframes_t&) const;
void prepare () { _written = false; _silent = false; }
bool written() const { return _written; }
/** Factory function */
static Buffer* create(DataType type, size_t capacity);
- /** Maximum capacity of buffer.
- * Note in some cases the entire buffer may not contain valid data, use size. */
+ /** Maximum capacity of buffer. */
size_t capacity() const { return _capacity; }
- /** Amount of valid data in buffer. Use this over capacity almost always. */
- size_t size() const { return _size; }
-
- /** Return true if the buffer contains no data, false otherwise */
- virtual bool empty() const { return _size == 0; }
-
/** Type of this buffer.
* Based on this you can static cast a Buffer* to the desired type. */
DataType type() const { return _type; }
protected:
Buffer(DataType type)
- : _type(type), _capacity(0), _size(0), _silent (true)
+ : _type(type), _capacity(0), _silent (true)
{}
DataType _type;
pframes_t _capacity;
- pframes_t _size;
bool _silent;
};
uint8_t* reserve(TimeType time, size_t size);
void resize(size_t);
+ size_t size() const { return _size; }
+ bool empty() const { return _size == 0; }
bool merge_in_place(const MidiBuffer &other);
friend class iterator_base< const MidiBuffer, const Evoral::MIDIEvent<TimeType> >;
uint8_t* _data; ///< timestamp, event, timestamp, event, ...
+ pframes_t _size;
};
if (_data && size < _capacity) {
/* buffer is already large enough */
-
- if (size < _size) {
- /* truncate */
- _size = size;
- }
-
return;
}
cache_aligned_malloc ((void**) &_data, sizeof (Sample) * size);
_capacity = size;
- _size = 0;
_silent = false;
}
bool
-AudioBuffer::check_silence (pframes_t nframes, bool wholebuffer, pframes_t& n) const
+AudioBuffer::check_silence (pframes_t nframes, pframes_t& n) const
{
- for (n = 0; (wholebuffer || n < _size) && n < nframes; ++n) {
+ for (n = 0; n < nframes; ++n) {
if (_data[n] != Sample (0)) {
return false;
}