diff options
author | Robin Gareus <robin@gareus.org> | 2016-10-17 21:34:40 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-10-17 21:35:00 +0200 |
commit | 3e32a00a52908ab034c55ec4adb705165e3a54d8 (patch) | |
tree | 66927e4a7a2decea5c3ed468db1e1b62fa107517 /libs/ardour/export_handler.cc | |
parent | 551eea452b1aad05a27fc64e07b0a031912d0866 (diff) |
fast region export -- don't call process()
Diffstat (limited to 'libs/ardour/export_handler.cc')
-rw-r--r-- | libs/ardour/export_handler.cc | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/libs/ardour/export_handler.cc b/libs/ardour/export_handler.cc index ac2f7b0bd3..3bdfdc9090 100644 --- a/libs/ardour/export_handler.cc +++ b/libs/ardour/export_handler.cc @@ -191,19 +191,32 @@ ExportHandler::start_timespan () graph_builder->set_current_timespan (current_timespan); handle_duplicate_format_extensions(); bool realtime = current_timespan->realtime (); + bool region_export = true; for (ConfigMap::iterator it = timespan_bounds.first; it != timespan_bounds.second; ++it) { // Filenames can be shared across timespans FileSpec & spec = it->second; spec.filename->set_timespan (it->first); + switch (spec.channel_config->region_processing_type ()) { + case RegionExportChannelFactory::None: + case RegionExportChannelFactory::Processed: + region_export = false; + break; + default: + break; + } graph_builder->add_config (spec, realtime); } + // ExportDialog::update_realtime_selection does not allow this + assert (!region_export || !realtime); + /* start export */ post_processing = false; session.ProcessExport.connect_same_thread (process_connection, boost::bind (&ExportHandler::process, this, _1)); process_position = current_timespan->get_start(); - session.start_audio_export (process_position, realtime); + // TODO check if it's a RegionExport.. set flag to skip process_without_events() + session.start_audio_export (process_position, realtime, region_export); } void |