summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-04-07 19:34:37 +0200
committerRobin Gareus <robin@gareus.org>2019-04-07 19:51:56 +0200
commita1c19911dbc74ea8635501a0c55a921d87cbaaf7 (patch)
tree11f1e7dafb51ec4a194eaadae46312011cf29c2c /libs/ardour
parent7450d691890a198638d7c70fa8e999f5926a44de (diff)
NO-OP/Optimize Bounce: Lookup data-type only once
This is to prepare for midi-to-audio bounce: allow to change the data-type to be used as output.
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/session.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 5170456938..de5d804cf5 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -6113,6 +6113,8 @@ Session::write_one_track (Track& track, samplepos_t start, samplepos_t end,
string legal_playlist_name;
string possible_path;
+ DataType data_type = track.data_type();
+
if (end <= start) {
error << string_compose (_("Cannot write a range where end <= start (e.g. %1 <= %2)"),
end, start) << endmsg;
@@ -6122,7 +6124,7 @@ Session::write_one_track (Track& track, samplepos_t start, samplepos_t end,
diskstream_channels = track.bounce_get_output_streams (diskstream_channels, endpoint,
include_endpoint, for_export, for_freeze);
- if (diskstream_channels.n(track.data_type()) < 1) {
+ if (diskstream_channels.n(data_type) < 1) {
error << _("Cannot write a range with no data.") << endmsg;
return result;
}
@@ -6149,10 +6151,10 @@ Session::write_one_track (Track& track, samplepos_t start, samplepos_t end,
legal_playlist_name = legalize_for_path (playlist->name());
- for (uint32_t chan_n = 0; chan_n < diskstream_channels.n(track.data_type()); ++chan_n) {
+ for (uint32_t chan_n = 0; chan_n < diskstream_channels.n(data_type); ++chan_n) {
string base_name = string_compose ("%1-%2-bounce", playlist->name(), chan_n);
- string path = ((track.data_type() == DataType::AUDIO)
+ string path = ((data_type == DataType::AUDIO)
? new_audio_source_path (legal_playlist_name, diskstream_channels.n_audio(), chan_n, false, true)
: new_midi_source_path (legal_playlist_name));
@@ -6161,7 +6163,7 @@ Session::write_one_track (Track& track, samplepos_t start, samplepos_t end,
}
try {
- source = SourceFactory::createWritable (track.data_type(), *this, path, false, sample_rate());
+ source = SourceFactory::createWritable (data_type, *this, path, false, sample_rate());
}
catch (failed_constructor& err) {