diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2018-02-11 09:39:36 -0600 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2018-02-11 09:39:36 -0600 |
commit | e6da4c4846cd3097e2393f0e43016b870e7cf592 (patch) | |
tree | f54b4f56ab2b39a4c91bb5e6e0141031b8731566 /libs/ardour/audioregion.cc | |
parent | 11e50fe0c5f441f8d017529a62ac4c8eeb6403c2 (diff) |
SoloSelection: libardour part.
Diffstat (limited to 'libs/ardour/audioregion.cc')
-rw-r--r-- | libs/ardour/audioregion.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 94b931982a..1f8bbafcbc 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -509,7 +509,11 @@ AudioRegion::read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, return 0; /* read nothing */ } - + boost::shared_ptr<Playlist> pl (playlist()); + if (!pl){ + return 0; + } + /* COMPUTE DETAILS OF ANY FADES INVOLVED IN THIS READ */ /* Amount (length) of fade in that we are dealing with in this read */ @@ -605,10 +609,12 @@ AudioRegion::read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, * "buf" contains data from lower regions already. So this operation * fades out the existing material. */ + + bool is_opaque = opaque(); if (fade_in_limit != 0) { - if (opaque()) { + if (is_opaque) { if (_inverse_fade_in) { /* explicit inverse fade in curve (e.g. for constant @@ -652,7 +658,7 @@ AudioRegion::read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, samplecnt_t const curve_offset = fade_interval_start - (_length - _fade_out->back()->when); - if (opaque()) { + if (is_opaque) { if (_inverse_fade_out) { _inverse_fade_out->curve().get_vector (curve_offset, curve_offset + fade_out_limit, gain_buffer, fade_out_limit); @@ -695,7 +701,7 @@ AudioRegion::read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, samplecnt_t const N = to_read - fade_in_limit - fade_out_limit; if (N > 0) { - if (opaque ()) { + if (is_opaque) { DEBUG_TRACE (DEBUG::AudioPlayback, string_compose ("Region %1 memcpy into buf @ %2 + %3, from mixdown buffer @ %4 + %5, len = %6 cnt was %7\n", name(), buf, fade_in_limit, mixdown_buffer, fade_in_limit, N, cnt)); memcpy (buf + fade_in_limit, mixdown_buffer + fade_in_limit, N * sizeof (Sample)); |