From d55367b36d77e3fde7303bc17585a54e26f8b017 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 15 Feb 2015 17:26:42 +0100 Subject: Make lv2 unittest work with < lv2-1.10. Make LV2_PATH same as lv2 plugin installdir. Use pkg-config for lilv and serd dependencies. --- test/Makefile.am | 6 ++++-- test/lv2.cc | 2 +- test/lv2_test_host.cc | 21 ++++++++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/test/Makefile.am b/test/Makefile.am index 779e4f4..5aaf33f 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -32,8 +32,10 @@ resampler_SOURCES = \ resampler.cc lv2_CXXFLAGS = -DOUTPUT=\"lv2\" $(CPPUNIT_CFLAGS) \ - -I/usr/include/lilv-0 -I/usr/include/serd-0 -lv2_LDFLAGS = $(CPPUNIT_LIBS) -llilv-0 -lserd-0 -lcrypto + `pkg-config --cflags serd-0` `pkg-config --cflags lilv-0` \ + -DLV2_PATH=\"$(libdir)/lv2\" +lv2_LDFLAGS = $(CPPUNIT_LIBS) `pkg-config --libs serd-0` \ + `pkg-config --libs lilv-0` -lcrypto lv2_SOURCES = \ test.cc \ lv2_test_host.cc \ diff --git a/test/lv2.cc b/test/lv2.cc index d38aa06..c51d501 100644 --- a/test/lv2.cc +++ b/test/lv2.cc @@ -62,7 +62,7 @@ public: { int res; - LV2TestHost h("/home/deva/docs/c/drumgizmo/install/lib/lv2"); + LV2TestHost h(LV2_PATH); res = h.open(DG_URI); CPPUNIT_ASSERT(res == 0); diff --git a/test/lv2_test_host.cc b/test/lv2_test_host.cc index 5f10c6b..a6252b6 100644 --- a/test/lv2_test_host.cc +++ b/test/lv2_test_host.cc @@ -156,6 +156,25 @@ void LV2TestHost::Sequence::clear() lv2_atom_sequence_clear(seq); } +// Keep this to support atom extension from lv2 < 1.10 +static inline LV2_Atom_Event* +_lv2_atom_sequence_append_event(LV2_Atom_Sequence* seq, + uint32_t capacity, + const LV2_Atom_Event* event) +{ + const uint32_t total_size = (uint32_t)sizeof(*event) + event->body.size; + if (capacity - seq->atom.size < total_size) { + return NULL; + } + + LV2_Atom_Event* e = lv2_atom_sequence_end(&seq->body, seq->atom.size); + memcpy(e, event, total_size); + + seq->atom.size += lv2_atom_pad_size(total_size); + + return e; +} + void LV2TestHost::Sequence::addMidiNote(uint64_t pos, uint8_t key, int8_t velocity) { @@ -176,7 +195,7 @@ void LV2TestHost::Sequence::addMidiNote(uint64_t pos, ev.msg[2] = velocity; LV2_Atom_Event *e = - lv2_atom_sequence_append_event(seq, this->buffer_size, &ev.event); + _lv2_atom_sequence_append_event(seq, this->buffer_size, &ev.event); (void)e; } -- cgit v1.2.3