summaryrefslogtreecommitdiffstats
path: root/src/server/Buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Buffer.cpp')
-rw-r--r--src/server/Buffer.cpp43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/server/Buffer.cpp b/src/server/Buffer.cpp
index 2fa5c387..21a757c6 100644
--- a/src/server/Buffer.cpp
+++ b/src/server/Buffer.cpp
@@ -69,7 +69,7 @@ Buffer::Buffer(BufferFactory& bufs,
array which is already silent since the buffer is zeroed. All other
buffers are atoms. */
if (_buf) {
- LV2_Atom* atom = get<LV2_Atom>();
+ auto* atom = get<LV2_Atom>();
atom->size = capacity - sizeof(LV2_Atom);
atom->type = type;
@@ -119,7 +119,7 @@ Buffer::clear()
} else if (is_control()) {
get<LV2_Atom_Float>()->body = 0;
} else if (is_sequence()) {
- LV2_Atom_Sequence* seq = get<LV2_Atom_Sequence>();
+ auto* seq = get<LV2_Atom_Sequence>();
seq->atom.type = _factory.uris().atom_Sequence;
seq->atom.size = sizeof(LV2_Atom_Sequence_Body);
seq->body.unit = 0;
@@ -131,11 +131,12 @@ Buffer::clear()
void
Buffer::render_sequence(const RunContext& context, const Buffer* src, bool add)
{
- const LV2_URID atom_Float = _factory.uris().atom_Float;
- const LV2_Atom_Sequence* seq = src->get<const LV2_Atom_Sequence>();
- const LV2_Atom_Float* init = (const LV2_Atom_Float*)src->value();
- float value = init ? init->body : 0.0f;
- SampleCount offset = context.offset();
+ const LV2_URID atom_Float = _factory.uris().atom_Float;
+ const auto* seq = src->get<const LV2_Atom_Sequence>();
+ const auto* init = (const LV2_Atom_Float*)src->value();
+ float value = init ? init->body : 0.0f;
+ SampleCount offset = context.offset();
+
LV2_ATOM_SEQUENCE_FOREACH(seq, ev) {
if (ev->time.frames >= offset && ev->body.type == atom_Float) {
write_block(value, offset, ev->time.frames, add);
@@ -226,9 +227,9 @@ float
Buffer::peak(const RunContext& context) const
{
#ifdef __SSE__
- const __m128* const vbuf = (const __m128*)samples();
- __m128 vpeak = mm_abs_ps(vbuf[0]);
- const SampleCount nblocks = context.nframes() / 4;
+ const auto* const vbuf = (const __m128*)samples();
+ __m128 vpeak = mm_abs_ps(vbuf[0]);
+ const SampleCount nblocks = context.nframes() / 4;
// First, find the vector absolute max of the buffer
for (SampleCount i = 1; i < nblocks; ++i) {
@@ -238,7 +239,7 @@ Buffer::peak(const RunContext& context) const
// Now we need the single max of vpeak
// vpeak = ABCD
// tmp = CDAB
- __m128 tmp = _mm_shuffle_ps(vpeak, vpeak, _MM_SHUFFLE(2, 3, 0, 1));
+ auto tmp = _mm_shuffle_ps(vpeak, vpeak, _MM_SHUFFLE(2, 3, 0, 1));
// vpeak = MAX(A,C) MAX(B,D) MAX(C,A) MAX(D,B)
vpeak = _mm_max_ps(vpeak, tmp);
@@ -269,7 +270,7 @@ void
Buffer::prepare_write(RunContext& context)
{
if (_type == _factory.uris().atom_Sequence) {
- LV2_Atom* atom = get<LV2_Atom>();
+ auto* atom = get<LV2_Atom>();
atom->type = (LV2_URID)_factory.uris().atom_Sequence;
atom->size = sizeof(LV2_Atom_Sequence_Body);
@@ -281,7 +282,7 @@ void
Buffer::prepare_output_write(RunContext& context)
{
if (_type == _factory.uris().atom_Sequence) {
- LV2_Atom* atom = get<LV2_Atom>();
+ auto* atom = get<LV2_Atom>();
atom->type = (LV2_URID)_factory.uris().atom_Chunk;
atom->size = _capacity - sizeof(LV2_Atom);
@@ -297,7 +298,7 @@ Buffer::append_event(int64_t frames,
{
assert(frames >= _latest_event);
- LV2_Atom* atom = get<LV2_Atom>();
+ auto* atom = get<LV2_Atom>();
if (atom->type == _factory.uris().atom_Chunk) {
clear(); // Chunk initialized with prepare_output_write(), clear
}
@@ -306,8 +307,8 @@ Buffer::append_event(int64_t frames,
return false;
}
- LV2_Atom_Sequence* seq = (LV2_Atom_Sequence*)atom;
- LV2_Atom_Event* ev = (LV2_Atom_Event*)(
+ auto* seq = (LV2_Atom_Sequence*)atom;
+ auto* ev = (LV2_Atom_Event*)(
(uint8_t*)seq + lv2_atom_total_size(&seq->atom));
ev->time.frames = frames;
@@ -331,8 +332,8 @@ Buffer::append_event(int64_t frames, const LV2_Atom* body)
bool
Buffer::append_event_buffer(const Buffer* buf)
{
- LV2_Atom_Sequence* seq = (LV2_Atom_Sequence*)get<LV2_Atom>();
- LV2_Atom_Sequence* bseq = (LV2_Atom_Sequence*)buf->get<LV2_Atom>();
+ auto* seq = (LV2_Atom_Sequence*)get<LV2_Atom>();
+ auto* bseq = (LV2_Atom_Sequence*)buf->get<LV2_Atom>();
if (seq->atom.type == _factory.uris().atom_Chunk) {
clear(); // Chunk initialized with prepare_output_write(), clear
}
@@ -356,7 +357,7 @@ SampleCount
Buffer::next_value_offset(SampleCount offset, SampleCount end) const
{
if (_type == _factory.uris().atom_Sequence && _value_type) {
- const LV2_Atom_Sequence* seq = get<const LV2_Atom_Sequence>();
+ const auto* seq = get<const LV2_Atom_Sequence>();
LV2_ATOM_SEQUENCE_FOREACH(seq, ev) {
if (ev->time.frames > offset &&
ev->time.frames < end &&
@@ -408,8 +409,8 @@ Buffer::update_value_buffer(SampleCount offset)
return;
}
- LV2_Atom_Sequence* seq = get<LV2_Atom_Sequence>();
- LV2_Atom_Event* latest = nullptr;
+ auto* seq = get<LV2_Atom_Sequence>();
+ LV2_Atom_Event* latest = nullptr;
LV2_ATOM_SEQUENCE_FOREACH(seq, ev) {
if (ev->time.frames > offset) {
break;