"forward" port IO::ensure_* changes from 2.X for correctness and consistency
[ardour.git] / libs / ardour / ardour / export_status.h
index 210e9585a4ebce6468a4f8fc62bb4fd1954fe4a8..a42327c8aae0d421ceccabcbb0890d53de863648 100644 (file)
 #include <list>
 #include <stdint.h>
 
-#include <stdint.h>
-#include <sigc++/signal.h>
+#include "ardour/types.h"
+
+#include "pbd/signals.h"
 
 namespace ARDOUR
 {
 
-enum ExportStage {
-       export_None,
-       export_ReadTimespan,
-       export_PostProcess,
-       export_Write
-};
-
 struct ExportStatus {
 
        ExportStatus ();
        void init ();
-       
+
        /* Status info */
-       
+
        volatile bool           stop;
        volatile bool           running;
-       
-       sigc::signal<void>      Aborting;
-       void abort () { _aborted = true; Aborting(); }
+
+       PBD::Signal0<void>      Aborting;
+       void abort (bool error_occurred = false);
        bool aborted () const { return _aborted; }
-       
+       bool errors () const { return _errors; }
+
+       PBD::Signal0<void>      Finished;
+       void finish ();
+       bool finished () const { return _finished; }
+
        /* Progress info */
-       
-       volatile ExportStage    stage;
+
        volatile float          progress;
-       
+       volatile bool           normalizing;
+
        volatile uint32_t       total_timespans;
        volatile uint32_t       timespan;
-       
-       volatile uint32_t       total_channel_configs;
-       volatile uint32_t       channel_config;
-       
-       volatile uint32_t       total_formats;
-       volatile uint32_t       format;
-       
+
+       volatile framecnt_t     total_frames;
+       volatile framecnt_t     processed_frames;
+
   private:
        volatile bool          _aborted;
+       volatile bool          _errors;
+       volatile bool          _finished;
+
 };
 
 } // namespace ARDOUR