diff options
author | Robin Gareus <robin@gareus.org> | 2016-02-09 13:19:34 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-02-09 13:19:34 +0100 |
commit | d56a44bf362ec338b97808390fdf6190d0920fad (patch) | |
tree | 12f94550c0ff6cc3ff28509040a468c9002559ff /gtk2_ardour/export_video_dialog.cc | |
parent | c00a07e811406bfd7698f232637ecec07439fb6b (diff) |
UI updates for detailed export state.
Diffstat (limited to 'gtk2_ardour/export_video_dialog.cc')
-rw-r--r-- | gtk2_ardour/export_video_dialog.cc | 35 |
1 files changed, 24 insertions, 11 deletions
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; } |