Fix mixer-scene signaling

Mixer-scenes are session objects, and the signal must not be
connected across session instances.

This fixes a read-lock after write-lock when switching snapshots:

 Session::set_state -> MixerScene::set_state ->
 MixerScene::set_name -> Change(); /* emit signal */
 ... -> Mixer_UI::update_scene_buttons -> Session::nth_mixer_scene
This commit is contained in:
Robin Gareus 2022-06-02 00:19:32 +02:00
parent 69179117a5
commit d79a1aaa98
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -1241,7 +1241,6 @@ Mixer_UI::set_session (Session* sess)
}
update_scene_buttons();
MixerScene::Change.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::update_scene_buttons, this), gui_context());
refill_favorite_plugins();
@ -1271,6 +1270,8 @@ Mixer_UI::set_session (Session* sess)
_session->vca_manager().VCAAdded.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::add_masters, this, _1), gui_context());
_session->vca_manager().VCACreated.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::new_masters_created, this), gui_context());
MixerScene::Change.connect (_session_connections, invalidator (*this), boost::bind (&Mixer_UI::update_scene_buttons, this), gui_context());
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&Mixer_UI::parameter_changed, this, _1), gui_context ());
route_groups_changed ();