25 #include "libardour-config.h"
35 #if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT
134 #if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT
142 template <
typename BS,
typename B>
146 : _set(other._set), _type(other._type), _index(other._index) {}
147 B&
operator*() {
return (B&)_set.get_available(_type, _index); }
148 B*
operator->() {
return &(B&)_set.get_available(_type, _index); }
153 _set = other.
_set; _type = other.
_type; _index = other.
_index;
return *
this;
160 : _set(list), _type(type), _index(index) {}
190 typedef std::vector< std::pair<bool, LV2_Evbuf*> >
LV2Buffers;
193 #if defined WINDOWS_VST_SUPPORT || defined LXVST_SUPPORT || defined MACVST_SUPPORT
VstMidiEvent * _midi_events
the parent VSTEvents struct
void push_back(Evoral::Event< samplepos_t > const &)
VSTBuffer(VSTBuffer const &)
VstEvents * events() const
iterator_base< BS, B > operator=(const iterator_base< BS, B > &other)
bool operator==(const iterator_base< BS, B > &other)
iterator_base(const iterator_base &other)
iterator_base(BS &list, DataType type, size_t index)
bool operator!=(const iterator_base< BS, B > &other)
iterator_base< BS, B > & operator++()
void ensure_buffers(const ChanCount &chns, size_t buffer_capacity)
void silence(samplecnt_t nframes, samplecnt_t offset)
audio_iterator audio_begin()
midi_iterator midi_begin()
void forward_lv2_midi(LV2_Evbuf *, size_t, pframes_t, samplecnt_t)
iterator_base< BufferSet, Buffer > iterator
void get_backend_port_addresses(PortSet &, samplecnt_t)
std::vector< Buffer * > BufferVec
VstEvents * get_vst_midi(size_t)
void attach_buffers(PortSet const &ports)
AudioBuffer & get_audio(size_t i)
LV2_Evbuf * get_lv2_midi(bool input, size_t i)
void flush_lv2_midi(bool input, size_t i, pframes_t, samplecnt_t)
const MidiBuffer & get_midi(size_t i) const
const_iterator begin(DataType type) const
const AudioBuffer & get_audio(size_t i) const
iterator begin(DataType type)
const ChanCount & available() const
std::vector< VSTBuffer * > VSTBuffers
void ensure_lv2_bufsize(bool input, size_t i, size_t buffer_capacity)
bool _is_mirror
False if we 'own' the contained buffers, if true we mirror a PortSet)
const Buffer & get_available(DataType type, size_t i) const
void read_from(const BufferSet &in, samplecnt_t nframes)
iterator_base< const BufferSet, const Buffer > const_iterator
std::vector< BufferVec > _buffers
Vector of vectors, indexed by DataType.
void merge_from(const BufferSet &in, samplecnt_t nframes)
std::vector< std::pair< bool, LV2_Evbuf * > > LV2Buffers
LV2 MIDI buffers (for conversion to/from MIDI buffers)
audio_iterator audio_end()
size_t buffer_capacity(DataType type) const
iterator_base< BufferSet, AudioBuffer > audio_iterator
void read_from(const BufferSet &in, samplecnt_t nframes, DataType)
Buffer & get_available(DataType type, size_t i)
MidiBuffer & get_midi(size_t i)
iterator end(DataType type)
ChanCount _available
Available counts (number of buffers actually allocated)
void ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capacity)
iterator_base< BufferSet, MidiBuffer > midi_iterator
ChanCount _count
Use counts (there may be more actual buffers than this)
const ChanCount & count() const
void set_count(const ChanCount &count)
const_iterator end(DataType type) const
Temporal::samplecnt_t samplecnt_t