diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index cde7b24c0c..60a2dec053 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -79,6 +79,7 @@ namespace Properties { LIBARDOUR_API extern PBD::PropertyDescriptor reg_group; LIBARDOUR_API extern PBD::PropertyDescriptor contents; // type doesn't matter here, used for signal only LIBARDOUR_API extern PBD::PropertyDescriptor region_fx; // type doesn't matter here, used for signal only + LIBARDOUR_API extern PBD::PropertyDescriptor region_fx_changed; // type doesn't matter here, used for signal only LIBARDOUR_API extern PBD::PropertyDescriptor region_tempo; // type doesn't matter here, used for signal only LIBARDOUR_API extern PBD::PropertyDescriptor region_meter; // type doesn't matter here, used for signal only }; diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc index 8817011125..11ebc13dc4 100644 --- a/libs/ardour/audioregion.cc +++ b/libs/ardour/audioregion.cc @@ -522,6 +522,7 @@ AudioRegion::set_fade_before_fx (bool yn) if (!_invalidated.exchange (true)) { send_change (PropertyChange (Properties::region_fx)); // trigger DiskReader overwrite } + send_change (PropertyChange (Properties::region_fx_changed)); /* EMIT SIGNAL */ RegionFxChanged (); /* EMIT SIGNAL */ } } @@ -2591,6 +2592,7 @@ AudioRegion::_add_plugin (std::shared_ptr rfx, std::shared_ptr fx) if (!_invalidated.exchange (true)) { send_change (PropertyChange (Properties::region_fx)); // trigger DiskReader overwrite } + send_change (PropertyChange (Properties::region_fx_changed)); /* EMIT SIGNAL */ RegionFxChanged (); /* EMIT SIGNAL */ _session.set_dirty (); return true; @@ -2633,6 +2636,7 @@ AudioRegion::reorder_plugins (RegionFxList const& new_order) if (!_invalidated.exchange (true)) { send_change (PropertyChange (Properties::region_fx)); // trigger DiskReader overwrite } + send_change (PropertyChange (Properties::region_fx_changed)); /* EMIT SIGNAL */ RegionFxChanged (); /* EMIT SIGNAL */ } diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc index b5cd17f960..c7a6e164ba 100644 --- a/libs/ardour/region.cc +++ b/libs/ardour/region.cc @@ -85,6 +85,7 @@ namespace ARDOUR { PBD::PropertyDescriptor reg_group; PBD::PropertyDescriptor contents; PBD::PropertyDescriptor region_fx; + PBD::PropertyDescriptor region_fx_changed; PBD::PropertyDescriptor region_tempo; PBD::PropertyDescriptor region_meter; @@ -191,6 +192,8 @@ Region::make_property_quarks () DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for contents = %1\n", Properties::contents.property_id)); Properties::region_fx.property_id = g_quark_from_static_string (X_("region-fx")); DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for region-fx = %1\n", Properties::region_fx.property_id)); + Properties::region_fx_changed.property_id = g_quark_from_static_string (X_("region-fx-changed")); + DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for region-fx-changed = %1\n", Properties::region_fx_changed.property_id)); Properties::time_domain.property_id = g_quark_from_static_string (X_("time_domain")); DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for time_domain = %1\n", Properties::time_domain.property_id)); Properties::reg_group.property_id = g_quark_from_static_string (X_("rgroup")); @@ -1636,6 +1639,7 @@ Region::_set_state (const XMLNode& node, int version, PropertyChange& what_chang fx_latency_changed (true); fx_tail_changed (true); send_change (PropertyChange (Properties::region_fx)); // trigger DiskReader overwrite + send_change (PropertyChange (Properties::region_fx_changed)); RegionFxChanged (); /* EMIT SIGNAL */ } }