X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_status.h;h=31027269f8ca376e9ccb9a886469f35ae7488b3a;hb=7bc3e0dab4dfac04d6c2957a2278345605c09769;hp=f207268155a48e608524b88af7489c3942892a41;hpb=e6ea8872766fd1246c56302c3cea69de9ea97fe6;p=ardour.git diff --git a/libs/ardour/ardour/export_status.h b/libs/ardour/ardour/export_status.h index f207268155..31027269f8 100644 --- a/libs/ardour/ardour/export_status.h +++ b/libs/ardour/ardour/export_status.h @@ -21,51 +21,57 @@ #ifndef __ardour_export_status_h__ #define __ardour_export_status_h__ -#include #include -#include +#include "ardour/types.h" + +#include "pbd/signals.h" namespace ARDOUR { -enum ExportStage { - export_None, - export_ReadTimespan, - export_PostProcess, - export_Write -}; - -struct ExportStatus { - +class ExportStatus { + public: ExportStatus (); void init (); - + /* Status info */ - + volatile bool stop; volatile bool running; - - sigc::signal Aborting; - void abort () { _aborted = true; Aborting(); } + + void abort (bool error_occurred = false); bool aborted () const { return _aborted; } - + bool errors () const { return _errors; } + + PBD::Signal0 Finished; + void finish (); + bool finished () const { return _finished; } + + void cleanup (); + /* 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; - + std::string timespan_name; + + volatile framecnt_t total_frames; + volatile framecnt_t processed_frames; + + 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; + private: volatile bool _aborted; + volatile bool _errors; + volatile bool _finished; + }; } // namespace ARDOUR