export: add support for CAF
[ardour.git] / libs / ardour / ardour / export_channel.h
index c13580e25c7815c00648962d724d44f614b2646a..f3244095a3125cdb55b0aaee78bb54ee5d6aada1 100644 (file)
@@ -65,7 +65,7 @@ class ExportChannel : public boost::less_than_comparable<ExportChannel>
 class PortExportChannel : public ExportChannel
 {
   public:
-       typedef std::set<AudioPort *> PortSet;
+       typedef std::set<boost::weak_ptr<AudioPort> > PortSet;
 
        PortExportChannel ();
        void set_max_buffer_size(framecnt_t frames);
@@ -78,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<AudioPort> port) { ports.insert (port); }
        PortSet const & get_ports () { return ports; }
 
   private:
@@ -93,6 +93,7 @@ class RegionExportChannelFactory
 {
   public:
        enum Type {
+               None,
                Raw,
                Fades,
                Processed
@@ -160,7 +161,7 @@ class RouteExportChannel : public ExportChannel
                           boost::shared_ptr<ProcessorRemover> remover);
        ~RouteExportChannel();
 
-       static void create_from_route(std::list<ExportChannelPtr> & result, Route & route);
+        static void create_from_route(std::list<ExportChannelPtr> & result, boost::shared_ptr<Route> route);
 
   public: // ExportChannel interface
        void set_max_buffer_size(framecnt_t frames);
@@ -178,11 +179,11 @@ class RouteExportChannel : public ExportChannel
        // Removes the processor from the track when deleted
        class ProcessorRemover {
          public:
-               ProcessorRemover (Route & route, boost::shared_ptr<CapturingProcessor> processor)
+                ProcessorRemover (boost::shared_ptr<Route> route, boost::shared_ptr<CapturingProcessor> processor)
                        : route (route), processor (processor) {}
                ~ProcessorRemover();
          private:
-               Route & route;
+                boost::shared_ptr<Route> route;
                boost::shared_ptr<CapturingProcessor> processor;
        };