X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fexport_status.h;h=4782f49cb4917ba82ee4d17bf6627b9051cb0702;hb=faefc3ba9a42417b133235e0a9efeaba467aad5f;hp=6a5be177e42f7b300b5e6c300746b45916057682;hpb=59631acc5f41153a294c97ab820a4b41a886e24c;p=ardour.git diff --git a/libs/ardour/ardour/export_status.h b/libs/ardour/ardour/export_status.h index 6a5be177e4..4782f49cb4 100644 --- a/libs/ardour/ardour/export_status.h +++ b/libs/ardour/ardour/export_status.h @@ -24,6 +24,7 @@ #include #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 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; @@ -68,11 +81,14 @@ class LIBARDOUR_API ExportStatus { volatile uint32_t total_normalize_cycles; volatile uint32_t current_normalize_cycle; + AnalysisResults result_map; + private: volatile bool _aborted; volatile bool _errors; - volatile bool _finished; + volatile bool _running; + Glib::Threads::Mutex _run_lock; }; } // namespace ARDOUR