#include "ardour/midi_buffer.h"
#include "ardour/port.h"
#include "ardour/port_set.h"
+#include "ardour/uri_map.h"
#ifdef LV2_SUPPORT
#include "ardour/lv2_plugin.h"
#include "lv2_evbuf.h"
_count.reset();
_available.reset();
-#if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT
+#if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT
for (VSTBuffers::iterator i = _vst_buffers.begin(); i != _vst_buffers.end(); ++i) {
delete *i;
}
_vst_buffers.clear ();
#endif
+#ifdef LV2_SUPPORT
+ for (LV2Buffers::iterator i = _lv2_buffers.begin(); i != _lv2_buffers.end(); ++i) {
+ free ((*i).second);
+ }
+ _lv2_buffers.clear ();
+#endif
+
}
/** Set up this BufferSet so that its data structures mirror a PortSet's buffers.
for (size_t i = 0; i < num_buffers; ++i) {
bufs.push_back(Buffer::create(type, buffer_capacity));
}
-
+
_available.set(type, num_buffers);
_count.set (type, num_buffers);
}
_lv2_buffers.push_back(
std::make_pair(false, lv2_evbuf_new(buffer_capacity,
LV2_EVBUF_EVENT,
- LV2Plugin::urids.atom_Chunk,
- LV2Plugin::urids.atom_Sequence)));
+ URIMap::instance().urids.atom_Chunk,
+ URIMap::instance().urids.atom_Sequence)));
}
}
#endif
std::make_pair(false, lv2_evbuf_new(
buffer_capacity,
LV2_EVBUF_EVENT,
- LV2Plugin::urids.atom_Chunk,
- LV2Plugin::urids.atom_Sequence));
+ URIMap::instance().urids.atom_Chunk,
+ URIMap::instance().urids.atom_Sequence));
}
LV2_Evbuf*
uint32_t frames, subframes, type, size;
uint8_t* data;
lv2_evbuf_get(i, &frames, &subframes, &type, &size, &data);
- if (type == LV2Plugin::urids.midi_MidiEvent) {
+ if (type == URIMap::instance().urids.midi_MidiEvent) {
mbuf.push_back(frames, size, data);
}
}
DEBUG_TRACE (PBD::DEBUG::LV2, string_compose ("\tByte[%1] = %2\n", x, (int) data[x]));
}
#endif
- if (type == LV2Plugin::urids.midi_MidiEvent) {
+ if (type == URIMap::instance().urids.midi_MidiEvent) {
// TODO: Make Ardour event buffers generic so plugins can communicate
mbuf.push_back(frames, size, data);
}
}
}
-void
-BufferSet::set_is_silent (bool yn)
-{
- for (std::vector<BufferVec>::iterator i = _buffers.begin(); i != _buffers.end(); ++i) {
- for (BufferVec::iterator b = i->begin(); b != i->end(); ++b) {
- (*b)->set_is_silent (yn);
- }
- }
-
-}
-
} // namespace ARDOUR