13
0

UI updates for detailed export state.

This commit is contained in:
Robin Gareus 2016-02-09 13:19:34 +01:00
parent c00a07e811
commit d56a44bf36
3 changed files with 62 additions and 22 deletions

View File

@ -339,16 +339,31 @@ gint
ExportDialog::progress_timeout () ExportDialog::progress_timeout ()
{ {
std::string status_text; std::string status_text;
float progress = 0.0; float progress = -1;
if (status->normalizing) { switch (status->active_job) {
status_text = string_compose (_("Normalizing '%3' (timespan %1 of %2)"), case ExportStatus::Exporting:
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)"), status_text = string_compose (_("Exporting '%3' (timespan %1 of %2)"),
status->timespan, status->total_timespans, status->timespan_name); status->timespan, status->total_timespans, status->timespan_name);
progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan; 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;
break;
case ExportStatus::Tagging:
status_text = string_compose (_("Tagging '%3' (timespan %1 of %2)"),
status->timespan, status->total_timespans, status->timespan_name);
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); progress_bar.set_text (status_text);
if (progress < previous_progress) { if (progress < previous_progress) {
@ -358,7 +373,12 @@ ExportDialog::progress_timeout ()
} }
previous_progress = progress; 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; return TRUE;
} }

View File

@ -555,23 +555,36 @@ gint
ExportVideoDialog::audio_progress_display () ExportVideoDialog::audio_progress_display ()
{ {
std::string status_text; std::string status_text;
double progress = 0.0; double progress = -1.0;
if (status->normalizing) { switch (status->active_job) {
case ExportStatus::Normalizing:
pbar.set_text (_("Normalizing audio")); pbar.set_text (_("Normalizing audio"));
progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles; progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles;
progress = progress / (_twopass ? 4.0 : 3.0) + (_twopass ? .25 : 1.0/3.0); progress = progress / (_twopass ? 4.0 : 3.0) + (_twopass ? .25 : 1.0 / 3.0);
} else { break;
case ExportStatus::Exporting:
pbar.set_text (_("Exporting audio")); pbar.set_text (_("Exporting audio"));
progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan; progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
progress = progress / ((_twopass ? 2.0 : 1.0) + (_normalize ? 2.0 : 1.0)); progress = progress / ((_twopass ? 2.0 : 1.0) + (_normalize ? 2.0 : 1.0));
} break;
if (progress < _previous_progress) { default:
// Work around gtk bug pbar.set_text (_("Exporting audio"));
pbar.hide(); break;
pbar.show(); }
}
_previous_progress = progress; if (progress < _previous_progress) {
// Work around gtk bug
pbar.hide();
pbar.show();
}
_previous_progress = progress;
if (progress >= 0) {
pbar.set_fraction (progress); pbar.set_fraction (progress);
} else {
pbar.set_pulse_step(.1);
pbar.pulse();
}
return TRUE; return TRUE;
} }

View File

@ -121,12 +121,19 @@ static int export_session (Session *session,
// TODO trap SIGINT -> status->abort(); // TODO trap SIGINT -> status->abort();
while (status->running) { while (status->running) {
if (status->normalizing) { double progress = 0.0;
double progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles; 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); printf ("* Normalizing %.1f%% \r", 100. * progress); fflush (stdout);
} else { break;
double progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan; case ExportStatus::Exporting:
progress = ((float) status->processed_frames_current_timespan) / status->total_frames_current_timespan;
printf ("* Exporting Audio %.1f%% \r", 100. * progress); fflush (stdout); printf ("* Exporting Audio %.1f%% \r", 100. * progress); fflush (stdout);
break;
default:
printf ("* Exporting... \r");
break;
} }
Glib::usleep (1000000); Glib::usleep (1000000);
} }