From 3e32a00a52908ab034c55ec4adb705165e3a54d8 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 17 Oct 2016 21:34:40 +0200 Subject: fast region export -- don't call process() --- libs/ardour/export_handler.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'libs/ardour/export_handler.cc') 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 -- cgit v1.2.3