improve AU Latency PropertyChange Events
[ardour.git] / libs / ardour / ardour / export_graph_builder.h
index 68eb927513ae8fa064aeee47e73a2369cc9d8b5d..b692b03b3231f2e09b91ee1cabfce48e562f9870 100644 (file)
@@ -41,7 +41,6 @@ namespace AudioGrapher {
        template <typename T> class SndfileWriter;
        template <typename T> class SilenceTrimmer;
        template <typename T> class TmpFile;
-       template <typename T> class TmpFileRt;
        template <typename T> class Threader;
        template <typename T> class AllocatingProcessContext;
 }
@@ -70,13 +69,14 @@ class LIBARDOUR_API ExportGraphBuilder
 
        int process (framecnt_t frames, bool last_cycle);
        bool process_normalize (); // returns true when finished
-       bool will_normalize() { return !normalizers.empty(); }
+       bool will_normalize() const { return !normalizers.empty(); }
+       bool realtime() const { return _realtime; }
        unsigned get_normalize_cycle_count() const;
 
        void reset ();
        void cleanup (bool remove_out_files = false);
        void set_current_timespan (boost::shared_ptr<ExportTimespan> span);
-       void add_config (FileSpec const & config);
+       void add_config (FileSpec const & config, bool rt);
        void get_analysis_results (AnalysisResults& results);
 
   private:
@@ -165,17 +165,18 @@ class LIBARDOUR_API ExportGraphBuilder
                typedef boost::shared_ptr<AudioGrapher::LoudnessReader> LoudnessReaderPtr;
                typedef boost::shared_ptr<AudioGrapher::Normalizer> NormalizerPtr;
                typedef boost::shared_ptr<AudioGrapher::TmpFile<Sample> > TmpFilePtr;
-               typedef boost::shared_ptr<AudioGrapher::TmpFileRt<Sample> > TmpFileRtPtr;
                typedef boost::shared_ptr<AudioGrapher::Threader<Sample> > ThreaderPtr;
                typedef boost::shared_ptr<AudioGrapher::AllocatingProcessContext<Sample> > BufferPtr;
 
-               void start_post_processing();
+               void prepare_post_processing ();
+               void start_post_processing ();
 
                ExportGraphBuilder & parent;
 
                FileSpec        config;
                framecnt_t      max_frames_out;
                bool            use_loudness;
+               bool            use_peak;
                BufferPtr       buffer;
                PeakReaderPtr   peak_reader;
                TmpFilePtr      tmp_file;
@@ -184,7 +185,7 @@ class LIBARDOUR_API ExportGraphBuilder
                LoudnessReaderPtr    loudness_reader;
                boost::ptr_list<SFC> children;
 
-               PBD::ScopedConnection post_processing_connection;
+               PBD::ScopedConnectionList post_processing_connection;
        };
 
        // sample rate converter
@@ -266,6 +267,8 @@ class LIBARDOUR_API ExportGraphBuilder
 
        AnalysisMap analysis_map;
 
+       bool _realtime;
+
        Glib::ThreadPool thread_pool;
 };