52 if (!(pec = dynamic_cast<PortExportChannel const *> (&other))) {
64 if (
ports.size() == 1) {
77 for (uint32_t i = 0; i < frames; ++i) {
78 buffer[i] += (float) port_buffer[i];
92 if (p && (port_node = node->
add_child (
"Port"))) {
103 for (XMLNodeList::iterator it = xml_ports.begin(); it != xml_ports.end(); ++it) {
104 if ((prop = (*it)->property (
"name"))) {
105 std::string
const &
name = prop->
value();
120 , frames_per_cycle (session->engine().samples_per_cycle ())
121 , buffers_up_to_date (false)
141 throw ExportFailed (
"Unhandled type in ExportChannelFactory constructor");
182 for (
size_t channel = 0; channel <
n_channels; ++channel) {
188 for (
size_t channel = 0; channel <
n_channels; ++channel) {
198 throw ExportFailed (
"Unhandled type in ExportChannelFactory::update_buffers");
207 : processor (processor)
225 for (uint32_t i = 0; i < channels; ++i) {
248 data = buffer.
data();
267 if ((rec = dynamic_cast<RouteExportChannel const *>(&other)) == 0) {
268 return this < &other;
boost::shared_ptr< CapturingProcessor > processor
Export channel for exporting from different positions in a route.
void ensure_buffers(DataType type, size_t num_buffers, size_t buffer_capacity)
void set_max_buffer_size(framecnt_t frames)
static void create_from_route(std::list< ExportChannelPtr > &result, boost::shared_ptr< Route > route)
boost::shared_ptr< CapturingProcessor > processor
AudioBuffer & get_audio_buffer(pframes_t nframes)
const std::string & value() const
void set_count(const ChanCount &count)
virtual framecnt_t read(Sample *, framepos_t pos, framecnt_t cnt, int channel) const
boost::scoped_array< Sample > buffer
void get_state(XMLNode *node) const
Adds state to node passed.
shared_ptr< T > dynamic_pointer_cast(shared_ptr< U > const &r)
void set_state(XMLNode *node, Session &session)
Sets state from node passed.
void read(uint32_t channel, Sample const *&data, framecnt_t frames_to_read)
Basic export channel that reads from AudioPorts.
LIBPBD_API Transmitter warning
int remove_processor(boost::shared_ptr< Processor >, ProcessorStreams *err=0, bool need_process_lock=true)
const XMLNodeList & children(const std::string &str=std::string()) const
int export_stuff(BufferSet &bufs, framepos_t start_frame, framecnt_t nframes, boost::shared_ptr< Processor > endpoint, bool include_endpoint, bool for_export, bool for_freeze)
boost::scoped_array< Sample > mixdown_buffer
std::ostream & endmsg(std::ostream &ostr)
void update_buffers(framecnt_t frames)
XMLNode * add_child(const char *)
framecnt_t frames_per_cycle
ComparableSharedPtr< ExportChannel > ExportChannelPtr
AudioBuffer & get_audio(size_t i)
void read(Sample const *&data, framecnt_t frames) const
std::list< XMLNode * > XMLNodeList
void silence(framecnt_t len, framecnt_t offset=0)
boost::shared_ptr< Delivery > main_outs() const
ChanCount n_outputs() const
void set_max_buffer_size(framecnt_t frames)
AudioRegion const & region
int new_cycle_started(framecnt_t)
RouteExportChannel(boost::shared_ptr< CapturingProcessor > processor, size_t channel, boost::shared_ptr< ProcessorRemover > remover)
Export channel base class interface for different source types.
boost::shared_ptr< Route > route
PBD::Signal1< int, framecnt_t > ProcessExport
XMLProperty * add_property(const char *name, const std::string &value)
RegionExportChannelFactory(Session *session, AudioRegion const ®ion, AudioTrack &track, Type type)
uint32_t n_channels() const
boost::shared_ptr< CapturingProcessor > add_export_point()
boost::shared_ptr< Port > get_port_by_name(const std::string &)
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
boost::shared_ptr< ProcessorRemover > remover
boost::scoped_array< Sample > gain_buffer
virtual framecnt_t read_at(Sample *buf, Sample *mixdown_buf, float *gain_buf, framepos_t position, framecnt_t cnt, uint32_t chan_n=0) const
void get_state(XMLNode *node) const
Adds state to node passed.
bool operator<(ExportChannel const &other) const
~RegionExportChannelFactory()
const Sample * data(framecnt_t offset=0) const
void set_state(XMLNode *node, Session &session)
Sets state from node passed.
bool operator<(ExportChannel const &other) const
virtual ChanCount input_streams() const
Export channel that reads from region channel.
void read(Sample const *&data, framecnt_t frames) const
std::string string_compose(const std::string &fmt, const T1 &o1)
ExportChannelPtr create(uint32_t channel)
PBD::ScopedConnection export_connection