Flush Audioregion local [fx] cache when changing region gain
This commit is contained in:
parent
27e2348b47
commit
37d24eee7d
@ -279,6 +279,7 @@ class LIBARDOUR_API AudioRegion : public Region, public AudioReadable
|
||||
bool _add_plugin (std::shared_ptr<RegionFxPlugin>, std::shared_ptr<RegionFxPlugin>, bool);
|
||||
|
||||
int _set_state (const XMLNode&, int version, PBD::PropertyChange& what_changed, bool send_signal);
|
||||
void send_change (const PBD::PropertyChange&);
|
||||
};
|
||||
|
||||
} /* namespace ARDOUR */
|
||||
|
@ -565,7 +565,7 @@ protected:
|
||||
virtual bool _add_plugin (std::shared_ptr<RegionFxPlugin>, std::shared_ptr<RegionFxPlugin>, bool) { return false; }
|
||||
virtual void fx_latency_changed (bool no_emit);
|
||||
|
||||
void send_change (const PBD::PropertyChange&);
|
||||
virtual void send_change (const PBD::PropertyChange&);
|
||||
virtual int _set_state (const XMLNode&, int version, PBD::PropertyChange& what_changed, bool send_signal);
|
||||
virtual void set_position_internal (timepos_t const & pos);
|
||||
virtual void set_length_internal (timecnt_t const &);
|
||||
|
@ -251,6 +251,27 @@ AudioRegion::init ()
|
||||
_fx_latent_read = false;
|
||||
}
|
||||
|
||||
void
|
||||
AudioRegion::send_change (const PropertyChange& what_changed)
|
||||
{
|
||||
|
||||
PropertyChange our_interests;
|
||||
|
||||
our_interests.add (Properties::fade_in_active);
|
||||
our_interests.add (Properties::fade_out_active);
|
||||
our_interests.add (Properties::scale_amplitude);
|
||||
our_interests.add (Properties::envelope_active);
|
||||
our_interests.add (Properties::envelope);
|
||||
our_interests.add (Properties::fade_in);
|
||||
our_interests.add (Properties::fade_out);
|
||||
|
||||
if (what_changed.contains (our_interests)) {
|
||||
_invalidated.exchange (true);
|
||||
}
|
||||
|
||||
Region::send_change (what_changed);
|
||||
}
|
||||
|
||||
void
|
||||
AudioRegion::copy_plugin_state (std::shared_ptr<const AudioRegion> other)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user