projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
change API for GainControl, VCA and VCAManager
[ardour.git]
/
libs
/
ardour
/
buffer_set.cc
diff --git
a/libs/ardour/buffer_set.cc
b/libs/ardour/buffer_set.cc
index 9db99d20ce520eeced0825e2614b40a73ac1fe12..92f5272b3b2bee945c8723eb0b2188ff58518e9b 100644
(file)
--- a/
libs/ardour/buffer_set.cc
+++ b/
libs/ardour/buffer_set.cc
@@
-34,6
+34,7
@@
#include "ardour/midi_buffer.h"
#include "ardour/port.h"
#include "ardour/port_set.h"
#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"
#ifdef LV2_SUPPORT
#include "ardour/lv2_plugin.h"
#include "lv2_evbuf.h"
@@
-78,7
+79,7
@@
BufferSet::clear()
_count.reset();
_available.reset();
_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;
}
for (VSTBuffers::iterator i = _vst_buffers.begin(); i != _vst_buffers.end(); ++i) {
delete *i;
}
@@
-86,6
+87,13
@@
BufferSet::clear()
_vst_buffers.clear ();
#endif
_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.
}
/** Set up this BufferSet so that its data structures mirror a PortSet's buffers.
@@
-179,7
+187,7
@@
BufferSet::ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capac
for (size_t i = 0; i < num_buffers; ++i) {
bufs.push_back(Buffer::create(type, buffer_capacity));
}
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);
}
_available.set(type, num_buffers);
_count.set (type, num_buffers);
}
@@
-192,8
+200,8
@@
BufferSet::ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capac
_lv2_buffers.push_back(
std::make_pair(false, lv2_evbuf_new(buffer_capacity,
LV2_EVBUF_EVENT,
_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
}
}
#endif
@@
-267,8
+275,8
@@
BufferSet::ensure_lv2_bufsize(bool input, size_t i, size_t buffer_capacity)
std::make_pair(false, lv2_evbuf_new(
buffer_capacity,
LV2_EVBUF_EVENT,
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*
}
LV2_Evbuf*
@@
-297,7
+305,7
@@
BufferSet::forward_lv2_midi(LV2_Evbuf* buf, size_t i, bool purge_ardour_buffer)
uint32_t frames, subframes, type, size;
uint8_t* data;
lv2_evbuf_get(i, &frames, &subframes, &type, &size, &data);
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);
}
}
mbuf.push_back(frames, size, data);
}
}
@@
-326,7
+334,7
@@
BufferSet::flush_lv2_midi(bool input, size_t i)
DEBUG_TRACE (PBD::DEBUG::LV2, string_compose ("\tByte[%1] = %2\n", x, (int) data[x]));
}
#endif
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);
}
// TODO: Make Ardour event buffers generic so plugins can communicate
mbuf.push_back(frames, size, data);
}