NO-OP: whitespace
This commit is contained in:
parent
0e68d3f742
commit
99c072660b
|
@ -27,14 +27,14 @@
|
|||
#include "ardour/buffer.h"
|
||||
#include "ardour/runtime_functions.h"
|
||||
|
||||
namespace ARDOUR {
|
||||
|
||||
namespace ARDOUR
|
||||
{
|
||||
/** Buffer containing audio data. */
|
||||
class LIBARDOUR_API AudioBuffer : public Buffer
|
||||
{
|
||||
public:
|
||||
AudioBuffer(size_t capacity);
|
||||
~AudioBuffer();
|
||||
AudioBuffer (size_t capacity);
|
||||
~AudioBuffer ();
|
||||
|
||||
/** silence buffer
|
||||
* @param len number of samples to clear
|
||||
|
@ -48,12 +48,13 @@ public:
|
|||
* @param dst_offset offset in destination buffer
|
||||
* @param src_offset start offset in src buffer
|
||||
*/
|
||||
void read_from (const Sample* src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
assert(src != 0);
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
copy_vector(_data + dst_offset, src + src_offset, len);
|
||||
_silent = false;
|
||||
void read_from (const Sample* src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
assert (src != 0);
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
copy_vector (_data + dst_offset, src + src_offset, len);
|
||||
_silent = false;
|
||||
_written = true;
|
||||
}
|
||||
|
||||
|
@ -63,118 +64,123 @@ public:
|
|||
* @param dst_offset offset in destination buffer
|
||||
* @param src_offset start offset in src buffer
|
||||
*/
|
||||
void read_from (const Buffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
assert(&src != this);
|
||||
assert(_capacity > 0);
|
||||
assert(src.type() == DataType::AUDIO);
|
||||
assert(dst_offset + len <= _capacity);
|
||||
assert( src_offset <= ((samplecnt_t) src.capacity()-len));
|
||||
void read_from (const Buffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
assert (&src != this);
|
||||
assert (_capacity > 0);
|
||||
assert (src.type () == DataType::AUDIO);
|
||||
assert (dst_offset + len <= _capacity);
|
||||
assert (src_offset <= ((samplecnt_t)src.capacity () - len));
|
||||
|
||||
if (src.silent()) {
|
||||
if (src.silent ()) {
|
||||
memset (_data + dst_offset, 0, sizeof (Sample) * len);
|
||||
} else {
|
||||
copy_vector (_data + dst_offset, ((const AudioBuffer&)src).data() + src_offset, len);
|
||||
copy_vector (_data + dst_offset, ((const AudioBuffer&)src).data () + src_offset, len);
|
||||
}
|
||||
|
||||
if (dst_offset == 0 && src_offset == 0 && len == _capacity) {
|
||||
_silent = src.silent();
|
||||
_silent = src.silent ();
|
||||
} else {
|
||||
_silent = _silent && src.silent();
|
||||
_silent = _silent && src.silent ();
|
||||
}
|
||||
_written = true;
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples @a src starting at @a src_offset into self starting at @a dst_offset */
|
||||
void merge_from (const Buffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
const AudioBuffer* ab = dynamic_cast<const AudioBuffer*>(&src);
|
||||
void merge_from (const Buffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
const AudioBuffer* ab = dynamic_cast<const AudioBuffer*> (&src);
|
||||
assert (ab);
|
||||
accumulate_from (*ab, len, dst_offset, src_offset);
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples @a src starting at @a src_offset into self starting at @a dst_offset */
|
||||
void accumulate_from (const AudioBuffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
void accumulate_from (const AudioBuffer& src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
if (src.silent ()) {
|
||||
return;
|
||||
}
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
const Sample* const src_raw = src.data() + src_offset;
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
const Sample* const src_raw = src.data () + src_offset;
|
||||
|
||||
mix_buffers_no_gain(dst_raw, src_raw, len);
|
||||
mix_buffers_no_gain (dst_raw, src_raw, len);
|
||||
|
||||
_silent = (src.silent() && _silent);
|
||||
_silent = (src.silent () && _silent);
|
||||
_written = true;
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples @a src starting at @a src_offset into self starting at @a dst_offset */
|
||||
void accumulate_from (const Sample* src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
void accumulate_from (const Sample* src, samplecnt_t len, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
const Sample* const src_raw = src + src_offset;
|
||||
|
||||
mix_buffers_no_gain(dst_raw, src_raw, len);
|
||||
mix_buffers_no_gain (dst_raw, src_raw, len);
|
||||
|
||||
_silent = false;
|
||||
_silent = false;
|
||||
_written = true;
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples @a src starting at @a src_offset into self starting at @dst_offset
|
||||
* scaling by @a gain_coeff */
|
||||
void accumulate_with_gain_from (const AudioBuffer& src, samplecnt_t len, gain_t gain_coeff, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0) {
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
void accumulate_with_gain_from (const AudioBuffer& src, samplecnt_t len, gain_t gain_coeff, sampleoffset_t dst_offset = 0, sampleoffset_t src_offset = 0)
|
||||
{
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
|
||||
if (src.silent() || gain_coeff == 0) {
|
||||
if (src.silent () || gain_coeff == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
const Sample* const src_raw = src.data() + src_offset;
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
const Sample* const src_raw = src.data () + src_offset;
|
||||
|
||||
mix_buffers_with_gain (dst_raw, src_raw, len, gain_coeff);
|
||||
|
||||
_silent = ( (src.silent() && _silent) || (_silent && gain_coeff == 0) );
|
||||
_silent = ((src.silent () && _silent) || (_silent && gain_coeff == 0));
|
||||
_written = true;
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples FROM THE START OF @a src into self
|
||||
* scaling by @a gain_coeff */
|
||||
void accumulate_with_gain_from (const Sample* src_raw, samplecnt_t len, gain_t gain_coeff, sampleoffset_t dst_offset = 0) {
|
||||
void accumulate_with_gain_from (const Sample* src_raw, samplecnt_t len, gain_t gain_coeff, sampleoffset_t dst_offset = 0)
|
||||
{
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
Sample* const dst_raw = _data + dst_offset;
|
||||
|
||||
mix_buffers_with_gain (dst_raw, src_raw, len, gain_coeff);
|
||||
|
||||
_silent = (_silent && gain_coeff == 0);
|
||||
_silent = (_silent && gain_coeff == 0);
|
||||
_written = true;
|
||||
}
|
||||
|
||||
/** Accumulate (add) @a len samples FROM THE START OF @a src into self
|
||||
* scaling by @a gain_coeff */
|
||||
void accumulate_with_ramped_gain_from (const Sample* src, samplecnt_t len, gain_t initial, gain_t target, sampleoffset_t dst_offset = 0) {
|
||||
|
||||
assert(_capacity > 0);
|
||||
assert(len <= _capacity);
|
||||
void accumulate_with_ramped_gain_from (const Sample* src, samplecnt_t len, gain_t initial, gain_t target, sampleoffset_t dst_offset = 0)
|
||||
{
|
||||
assert (_capacity > 0);
|
||||
assert (len <= _capacity);
|
||||
|
||||
if (initial == 0 && target == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
Sample* dst = _data + dst_offset;
|
||||
gain_t gain_delta = (target - initial)/len;
|
||||
Sample* dst = _data + dst_offset;
|
||||
gain_t gain_delta = (target - initial) / len;
|
||||
|
||||
for (samplecnt_t n = 0; n < len; ++n) {
|
||||
*dst++ += (*src++ * initial);
|
||||
initial += gain_delta;
|
||||
}
|
||||
|
||||
_silent = (_silent && initial == 0 && target == 0);
|
||||
_silent = (_silent && initial == 0 && target == 0);
|
||||
_written = true;
|
||||
}
|
||||
|
||||
|
@ -182,7 +188,8 @@ public:
|
|||
* @param gain gain factor
|
||||
* @param len number of samples to amplify
|
||||
*/
|
||||
void apply_gain (gain_t gain, samplecnt_t len) {
|
||||
void apply_gain (gain_t gain, samplecnt_t len)
|
||||
{
|
||||
if (gain == 0) {
|
||||
memset (_data, 0, sizeof (Sample) * len);
|
||||
if (len == _capacity) {
|
||||
|
@ -197,12 +204,13 @@ public:
|
|||
*
|
||||
* Constructor MUST have been passed capacity=0 or this will die (to prevent mem leaks).
|
||||
*/
|
||||
void set_data (Sample* data, size_t size) {
|
||||
assert(!_owns_data); // prevent leaks
|
||||
void set_data (Sample* data, size_t size)
|
||||
{
|
||||
assert (!_owns_data); // prevent leaks
|
||||
_capacity = size;
|
||||
_data = data;
|
||||
_silent = false;
|
||||
_written = false;
|
||||
_data = data;
|
||||
_silent = false;
|
||||
_written = false;
|
||||
}
|
||||
|
||||
/** Reallocate the buffer used internally to handle at least @nframes of data
|
||||
|
@ -211,13 +219,15 @@ public:
|
|||
*/
|
||||
void resize (size_t nframes);
|
||||
|
||||
const Sample* data (samplecnt_t offset = 0) const {
|
||||
assert(offset <= _capacity);
|
||||
const Sample* data (samplecnt_t offset = 0) const
|
||||
{
|
||||
assert (offset <= _capacity);
|
||||
return _data + offset;
|
||||
}
|
||||
|
||||
Sample* data (samplecnt_t offset = 0) {
|
||||
assert(offset <= _capacity);
|
||||
Sample* data (samplecnt_t offset = 0)
|
||||
{
|
||||
assert (offset <= _capacity);
|
||||
_silent = false;
|
||||
return _data + offset;
|
||||
}
|
||||
|
@ -229,23 +239,24 @@ public:
|
|||
*/
|
||||
bool check_silence (pframes_t nframes, pframes_t& n) const;
|
||||
|
||||
void prepare () {
|
||||
void prepare ()
|
||||
{
|
||||
if (!_owns_data) {
|
||||
_data = 0;
|
||||
}
|
||||
_written = false;
|
||||
_silent = false;
|
||||
_silent = false;
|
||||
}
|
||||
bool written() const { return _written; }
|
||||
void set_written(bool w) { _written = w; }
|
||||
|
||||
private:
|
||||
bool written () const { return _written; }
|
||||
void set_written (bool w) { _written = w; }
|
||||
|
||||
private:
|
||||
bool _owns_data;
|
||||
bool _written;
|
||||
Sample* _data; ///< Actual buffer contents
|
||||
};
|
||||
|
||||
|
||||
} // namespace ARDOUR
|
||||
|
||||
#endif // __ardour_audio_audio_buffer_h__
|
||||
|
|
Loading…
Reference in New Issue
Block a user