Add signal for foldback send add or remove

This commit is contained in:
Len Ovens 2019-08-26 12:52:21 -07:00
parent a2de8bd881
commit 220fa45d35
2 changed files with 17 additions and 2 deletions

View File

@ -425,6 +425,10 @@ public:
*/
PBD::Signal2<void, RouteGroup *, boost::weak_ptr<Route> > RouteRemovedFromRouteGroup;
/** Emitted when a foldback send is created or deleted
*/
PBD::Signal0<void> FBSendsChanged;
/* Step Editing status changed */
PBD::Signal1<void,bool> StepEditStatusChange;
@ -1782,9 +1786,9 @@ public:
f ( (*i).second );
}
}
bool playlist_is_active( boost::shared_ptr<Playlist>);
private:
void reset_write_sources (bool mark_write_complete, bool force = false);
SourceMap sources;

View File

@ -3312,6 +3312,7 @@ Route::add_foldback_send (boost::shared_ptr<Route> route)
} catch (failed_constructor& err) {
return -1;
}
_session.FBSendsChanged ();
return 0;
}
@ -3321,6 +3322,7 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
{
ProcessorStreams err;
ProcessorList::iterator tmp;
bool do_fb_signal = false;
{
Glib::Threads::RWLock::ReaderLock rl(_processor_lock);
@ -3339,6 +3341,11 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
boost::shared_ptr<InternalSend> d = boost::dynamic_pointer_cast<InternalSend>(*x);
if (d && d->target_route() == route) {
boost::shared_ptr<Send> snd = boost::dynamic_pointer_cast<Send>(d);
if (snd && snd->is_foldback()) {
do_fb_signal = true;
}
rl.release ();
if (remove_processor (*x, &err, false) > 0) {
rl.acquire ();
@ -3358,6 +3365,10 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
}
}
}
if (do_fb_signal) {
_session.FBSendsChanged ();
}
}
void