X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_channel.h;h=894406874e40ec8b1e249be71c4e7ba80ba26718;hb=b37ec38d867038c6eeac40d75d64206431bcd5e5;hp=a73d04aa36d37a603e60b95bac5df739a408f316;hpb=0938a42440cc82ce8d0cb064840c258c863714ab;p=ardour.git diff --git a/libs/ardour/ardour/export_channel.h b/libs/ardour/ardour/export_channel.h index a73d04aa36..894406874e 100644 --- a/libs/ardour/ardour/export_channel.h +++ b/libs/ardour/ardour/export_channel.h @@ -23,9 +23,8 @@ #include -#include -#include #include +#include #include "pbd/signals.h" @@ -41,7 +40,7 @@ class AudioRegion; class CapturingProcessor; /// Export channel base class interface for different source types -class ExportChannel : public boost::less_than_comparable +class LIBARDOUR_API ExportChannel : public boost::less_than_comparable { public: @@ -63,10 +62,10 @@ class ExportChannel : public boost::less_than_comparable }; /// Basic export channel that reads from AudioPorts -class PortExportChannel : public ExportChannel +class LIBARDOUR_API PortExportChannel : public ExportChannel { public: - typedef std::set PortSet; + typedef std::set > PortSet; PortExportChannel (); void set_max_buffer_size(framecnt_t frames); @@ -79,7 +78,7 @@ class PortExportChannel : public ExportChannel bool operator< (ExportChannel const & other) const; - void add_port (AudioPort * port) { ports.insert (port); } + void add_port (boost::weak_ptr port) { ports.insert (port); } PortSet const & get_ports () { return ports; } private: @@ -90,10 +89,11 @@ class PortExportChannel : public ExportChannel /// Handles RegionExportChannels and does actual reading from region -class RegionExportChannelFactory +class LIBARDOUR_API RegionExportChannelFactory { public: enum Type { + None, Raw, Fades, Processed @@ -128,7 +128,7 @@ class RegionExportChannelFactory }; /// Export channel that reads from region channel -class RegionExportChannel : public ExportChannel +class LIBARDOUR_API RegionExportChannel : public ExportChannel { friend class RegionExportChannelFactory; @@ -152,7 +152,7 @@ class RegionExportChannel : public ExportChannel }; /// Export channel for exporting from different positions in a route -class RouteExportChannel : public ExportChannel +class LIBARDOUR_API RouteExportChannel : public ExportChannel { class ProcessorRemover; // fwd declaration @@ -161,7 +161,7 @@ class RouteExportChannel : public ExportChannel boost::shared_ptr remover); ~RouteExportChannel(); - static void create_from_route(std::list & result, Route & route); + static void create_from_route(std::list & result, boost::shared_ptr route); public: // ExportChannel interface void set_max_buffer_size(framecnt_t frames); @@ -179,11 +179,11 @@ class RouteExportChannel : public ExportChannel // Removes the processor from the track when deleted class ProcessorRemover { public: - ProcessorRemover (Route & route, boost::shared_ptr processor) + ProcessorRemover (boost::shared_ptr route, boost::shared_ptr processor) : route (route), processor (processor) {} ~ProcessorRemover(); private: - Route & route; + boost::shared_ptr route; boost::shared_ptr processor; };