21 #ifndef __ardour_export_channel_h__
22 #define __ardour_export_channel_h__
26 #include <boost/scoped_array.hpp>
27 #include <boost/shared_ptr.hpp>
40 class CapturingProcessor;
52 virtual bool empty ()
const = 0;
55 virtual void get_state (
XMLNode * node)
const = 0;
68 typedef std::set<boost::weak_ptr<AudioPort> >
PortSet;
74 bool empty ()
const {
return ports.empty(); }
76 void get_state (
XMLNode * node)
const;
106 void read (uint32_t channel,
Sample const *& data,
framecnt_t frames_to_read);
136 void read (
Sample const *& data,
framecnt_t frames_to_read)
const { factory.read (channel, data, frames_to_read); }
139 bool empty ()
const {
return false; }
170 bool empty ()
const {
return false; }
172 void get_state (
XMLNode * node)
const;
183 : route (route), processor (processor) {}
boost::shared_ptr< CapturingProcessor > processor
Export channel for exporting from different positions in a route.
Handles RegionExportChannels and does actual reading from region.
bool operator<(shared_ptr< T > const &a, shared_ptr< U > const &b)
virtual void set_max_buffer_size(framecnt_t)
boost::shared_ptr< CapturingProcessor > processor
boost::scoped_array< Sample > buffer
Basic export channel that reads from AudioPorts.
boost::scoped_array< Sample > mixdown_buffer
std::set< boost::weak_ptr< AudioPort > > PortSet
ProcessorRemover(boost::shared_ptr< Route > route, boost::shared_ptr< CapturingProcessor > processor)
framecnt_t frames_per_cycle
PortSet const & get_ports()
RegionExportChannel(RegionExportChannelFactory &factory, uint32_t channel)
void add_port(boost::weak_ptr< AudioPort > port)
AudioRegion const & region
int new_cycle_started(framecnt_t)
void get_state(XMLNode *) const
Adds state to node passed.
Export channel base class interface for different source types.
boost::shared_ptr< Route > route
boost::shared_ptr< ProcessorRemover > remover
void set_state(XMLNode *, Session &)
Sets state from node passed.
boost::scoped_array< Sample > gain_buffer
RegionExportChannelFactory & factory
Export channel that reads from region channel.
PBD::ScopedConnection export_connection
void read(Sample const *&data, framecnt_t frames_to_read) const