summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/export_dialog.cc32
-rw-r--r--gtk2_ardour/export_video_dialog.cc35
-rw-r--r--session_utils/export.cc15
3 files changed, 61 insertions, 21 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc
index ad8873d6dc..96870428ef 100644
--- a/gtk2_ardour/export_dialog.cc
+++ b/gtk2_ardour/export_dialog.cc
@@ -339,16 +339,31 @@ gint
ExportDialog::progress_timeout ()
{
std::string status_text;
- float progress = 0.0;
- if (status->normalizing) {
+ float progress = -1;
+ switch (status->active_job) {
+ case ExportStatus::Exporting:
+ status_text = string_compose (_("Exporting '%3' (timespan %1 of %2)"),
+ status->timespan, status->total_timespans, status->timespan_name);
+ progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
+ break;
+ case ExportStatus::Normalizing:
status_text = string_compose (_("Normalizing '%3' (timespan %1 of %2)"),
status->timespan, status->total_timespans, status->timespan_name);
progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles;
- } else {
- status_text = string_compose (_("Exporting '%3' (timespan %1 of %2)"),
+ break;
+ case ExportStatus::Tagging:
+ status_text = string_compose (_("Tagging '%3' (timespan %1 of %2)"),
status->timespan, status->total_timespans, status->timespan_name);
- progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
+ break;
+ case ExportStatus::Uploading:
+ status_text = string_compose (_("Uploading '%3' (timespan %1 of %2)"),
+ status->timespan, status->total_timespans, status->timespan_name);
+ break;
+ case ExportStatus::Command:
+ status_text = string_compose (_("Running Post Export Command for '%1'"), status->timespan_name);
+ break;
}
+
progress_bar.set_text (status_text);
if (progress < previous_progress) {
@@ -358,7 +373,12 @@ ExportDialog::progress_timeout ()
}
previous_progress = progress;
- progress_bar.set_fraction (progress);
+ if (progress >= 0) {
+ progress_bar.set_fraction (progress);
+ } else {
+ progress_bar.set_pulse_step(.1);
+ progress_bar.pulse();
+ }
return TRUE;
}
diff --git a/gtk2_ardour/export_video_dialog.cc b/gtk2_ardour/export_video_dialog.cc
index 10ec8ac882..18bbfcf5a8 100644
--- a/gtk2_ardour/export_video_dialog.cc
+++ b/gtk2_ardour/export_video_dialog.cc
@@ -555,23 +555,36 @@ gint
ExportVideoDialog::audio_progress_display ()
{
std::string status_text;
- double progress = 0.0;
- if (status->normalizing) {
+ double progress = -1.0;
+ switch (status->active_job) {
+ case ExportStatus::Normalizing:
pbar.set_text (_("Normalizing audio"));
progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles;
- progress = progress / (_twopass ? 4.0 : 3.0) + (_twopass ? .25 : 1.0/3.0);
- } else {
+ progress = progress / (_twopass ? 4.0 : 3.0) + (_twopass ? .25 : 1.0 / 3.0);
+ break;
+ case ExportStatus::Exporting:
pbar.set_text (_("Exporting audio"));
progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
progress = progress / ((_twopass ? 2.0 : 1.0) + (_normalize ? 2.0 : 1.0));
- }
- if (progress < _previous_progress) {
- // Work around gtk bug
- pbar.hide();
- pbar.show();
- }
- _previous_progress = progress;
+ break;
+ default:
+ pbar.set_text (_("Exporting audio"));
+ break;
+ }
+
+ if (progress < _previous_progress) {
+ // Work around gtk bug
+ pbar.hide();
+ pbar.show();
+ }
+ _previous_progress = progress;
+
+ if (progress >= 0) {
pbar.set_fraction (progress);
+ } else {
+ pbar.set_pulse_step(.1);
+ pbar.pulse();
+ }
return TRUE;
}
diff --git a/session_utils/export.cc b/session_utils/export.cc
index e7d169a0d3..6b27860ffd 100644
--- a/session_utils/export.cc
+++ b/session_utils/export.cc
@@ -121,12 +121,19 @@ static int export_session (Session *session,
// TODO trap SIGINT -> status->abort();
while (status->running) {
- if (status->normalizing) {
- double progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles;
+ double progress = 0.0;
+ switch (status->active_job) {
+ case ExportStatus::Normalizing:
+ progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles;
printf ("* Normalizing %.1f%% \r", 100. * progress); fflush (stdout);
- } else {
- double progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
+ break;
+ case ExportStatus::Exporting:
+ progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
printf ("* Exporting Audio %.1f%% \r", 100. * progress); fflush (stdout);
+ break;
+ default:
+ printf ("* Exporting... \r");
+ break;
}
Glib::usleep (1000000);
}