diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-16 02:15:56 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-16 02:15:56 +0200 |
commit | 15433457f2d81b50a576ffa3aca2bf311edd2370 (patch) | |
tree | 14b586c54fedcc5bc12c3270f334ae7350d11863 /gtk2_ardour/export_dialog.cc | |
parent | bd50bfa96776c4a1f8370fe8016aea4f896e7b9a (diff) |
export RT support as Timespan option
Diffstat (limited to 'gtk2_ardour/export_dialog.cc')
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc index 59985a0459..2922edf117 100644 --- a/gtk2_ardour/export_dialog.cc +++ b/gtk2_ardour/export_dialog.cc @@ -24,6 +24,7 @@ #include <gtkmm/messagedialog.h> #include "ardour/audioregion.h" +#include "ardour/export_channel_configuration.h" #include "ardour/export_status.h" #include "ardour/export_handler.h" #include "ardour/profile.h" @@ -96,9 +97,13 @@ ExportDialog::set_session (ARDOUR::Session* s) preset_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::sync_with_manager)); timespan_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename)); channel_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename)); + channel_selector->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_realtime_selection)); file_notebook->CriticalSelectionChanged.connect (sigc::mem_fun (*this, &ExportDialog::update_warnings_and_example_filename)); update_warnings_and_example_filename (); + update_realtime_selection (); + + _session->config.ParameterChanged.connect (*this, invalidator (*this), boost::bind (&ExportDialog::parameter_changed, this, _1), gui_context()); } void @@ -205,6 +210,7 @@ ExportDialog::sync_with_manager () file_notebook->sync_with_manager (); update_warnings_and_example_filename (); + update_realtime_selection (); } void @@ -246,6 +252,47 @@ ExportDialog::update_warnings_and_example_filename () } void +ExportDialog::update_realtime_selection () +{ + bool rt_ok = true; + switch (profile_manager->type ()) { + case ExportProfileManager::RegularExport: + break; + case ExportProfileManager::RangeExport: + break; + case ExportProfileManager::SelectionExport: + break; + case ExportProfileManager::RegionExport: + if (!profile_manager->get_channel_configs().empty ()) { + switch (profile_manager->get_channel_configs().front()->config->region_processing_type ()) { + case RegionExportChannelFactory::Raw: + case RegionExportChannelFactory::Fades: + rt_ok = false; + break; + default: + break; + } + } + break; + case ExportProfileManager::StemExport: + if (! static_cast<TrackExportChannelSelector*>(channel_selector.get())->track_output ()) { + rt_ok = false; + } + break; + } + + timespan_selector->allow_realtime_export (rt_ok); +} + +void +ExportDialog::parameter_changed (std::string const& p) +{ + if (p == "realtime-export") { + update_realtime_selection (); + } +} + +void ExportDialog::show_conflicting_files () { ArdourDialog dialog (_("Files that will be overwritten"), true); @@ -361,6 +408,11 @@ ExportDialog::progress_timeout () status->timespan, status->total_timespans, status->timespan_name); progress = ((float) status->current_normalize_cycle) / status->total_normalize_cycles; break; + case ExportStatus::Encoding: + status_text = string_compose (_("Encoding '%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); |