X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_status.h;h=31027269f8ca376e9ccb9a886469f35ae7488b3a;hb=4861eca97483128e5febb575b94688581abb0154;hp=be4bd25b9d8ab3777139c09d3d7e6321b08bdeec;hpb=f2b007195cd75b195e38a4cd7757debac73e7792;p=ardour.git diff --git a/libs/ardour/ardour/export_status.h b/libs/ardour/ardour/export_status.h index be4bd25b9d..31027269f8 100644 --- a/libs/ardour/ardour/export_status.h +++ b/libs/ardour/ardour/export_status.h @@ -21,50 +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