Optimize automation-event process splitting
[ardour.git] / libs / ardour / ardour / export_channel_configuration.h
index 5701be576b2fc7155035752d2d91f48c71ed6ad0..4cab886c88d78811343a599ab97b4463f7c58f9a 100644 (file)
 #include <boost/enable_shared_from_this.hpp>
 
 #include "ardour/export_channel.h"
-#include "ardour/export_status.h"
-#include "ardour/ardour.h"
+#include "ardour/export_pointers.h"
 
 #include "pbd/xml++.h"
 
 namespace ARDOUR
 {
 
-class ExportHandler;
-class AudioPort;
-class ExportChannel;
-class ExportFormatSpecification;
-class ExportFilename;
-class ExportProcessor;
-class ExportTimespan;
 class Session;
 
-class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration>
+class LIBARDOUR_API ExportChannelConfiguration : public boost::enable_shared_from_this<ExportChannelConfiguration>
 {
 
   private:
@@ -55,7 +47,7 @@ class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportC
   public:
        bool operator== (ExportChannelConfiguration const & other) const { return channels == other.channels; }
        bool operator!= (ExportChannelConfiguration const & other) const { return channels != other.channels; }
-       
+
        XMLNode & get_state ();
        int set_state (const XMLNode &);
 
@@ -68,6 +60,9 @@ class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportC
        void set_name (std::string name) { _name = name; }
        void set_split (bool value) { split = value; }
 
+       RegionExportChannelFactory::Type region_processing_type() const { return region_type; }
+       void set_region_processing_type(RegionExportChannelFactory::Type type) { region_type = type; }
+
        bool get_split () const { return split; }
        uint32_t get_n_chans () const { return channels.size(); }
 
@@ -76,7 +71,7 @@ class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportC
                std::copy (new_channels.begin(), new_channels.end(), std::back_inserter(channels));
        }
        void clear_channels () { channels.clear (); }
-       
+
        /** Returns a list of channel configurations that match the files created.
          * I.e. many configurations if splitting is enabled, one if not. */
        void configurations_for_files (std::list<boost::shared_ptr<ExportChannelConfiguration> > & configs);
@@ -88,6 +83,7 @@ class ExportChannelConfiguration : public boost::enable_shared_from_this<ExportC
        ChannelList     channels;
        bool            split; // Split to mono files
        std::string  _name;
+       RegionExportChannelFactory::Type region_type;
 };
 
 } // namespace ARDOUR