Normalize API rename part 2
[ardour.git] / libs / ardour / ardour / export_status.h
index 6a5be177e42f7b300b5e6c300746b45916057682..99642a2d7c31fd6ad38e40644efda46a15c2df57 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdint.h>
 
 #include "ardour/libardour_visibility.h"
+#include "ardour/export_analysis.h"
 #include "ardour/types.h"
 
 #include "pbd/signals.h"
@@ -39,21 +40,33 @@ class LIBARDOUR_API ExportStatus {
        /* Status info */
 
        volatile bool           stop;
-       volatile bool           running;
 
        void abort (bool error_occurred = false);
        bool aborted () const { return _aborted; }
        bool errors () const { return _errors; }
+       bool running () const { return _running; }
+
+       void set_running (bool r) {
+               assert (!_run_lock.trylock()); // must hold lock
+               _running = r;
+       }
+       Glib::Threads::Mutex& lock () { return _run_lock; }
 
        PBD::Signal0<void>      Finished;
        void finish ();
-       bool finished () const { return _finished; }
 
-        void cleanup ();
+       void cleanup ();
 
        /* Progress info */
 
-       volatile bool           normalizing;
+       volatile enum Progress {
+               Exporting,
+               Normalizing,
+               Encoding,
+               Tagging,
+               Uploading,
+               Command }
+                               active_job;
 
        volatile uint32_t       total_timespans;
        volatile uint32_t       timespan;
@@ -65,14 +78,17 @@ class LIBARDOUR_API ExportStatus {
        volatile framecnt_t     total_frames_current_timespan;
        volatile framecnt_t     processed_frames_current_timespan;
 
-       volatile uint32_t       total_normalize_cycles;
-       volatile uint32_t       current_normalize_cycle;
+       volatile uint32_t       total_postprocessing_cycles;
+       volatile uint32_t       current_postprocessing_cycle;
+
+       AnalysisResults         result_map;
 
   private:
        volatile bool          _aborted;
        volatile bool          _errors;
-       volatile bool          _finished;
+       volatile bool          _running;
 
+       Glib::Threads::Mutex   _run_lock;
 };
 
 } // namespace ARDOUR