summaryrefslogtreecommitdiff
path: root/libs/ardour/export_handler.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-10-17 21:34:40 +0200
committerRobin Gareus <robin@gareus.org>2016-10-17 21:35:00 +0200
commit3e32a00a52908ab034c55ec4adb705165e3a54d8 (patch)
tree66927e4a7a2decea5c3ed468db1e1b62fa107517 /libs/ardour/export_handler.cc
parent551eea452b1aad05a27fc64e07b0a031912d0866 (diff)
fast region export -- don't call process()
Diffstat (limited to 'libs/ardour/export_handler.cc')
-rw-r--r--libs/ardour/export_handler.cc15
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