diff --git a/libs/ardour/ardour/butler.h b/libs/ardour/ardour/butler.h index 94b6fb876b..7f0847498e 100644 --- a/libs/ardour/ardour/butler.h +++ b/libs/ardour/ardour/butler.h @@ -61,6 +61,8 @@ class LIBARDOUR_API Butler : public SessionHandleRef bool transport_work_requested() const; void drop_references (); + void map_parameters (); + framecnt_t audio_diskstream_capture_buffer_size() const { return audio_dstream_capture_buffer_size; } framecnt_t audio_diskstream_playback_buffer_size() const { return audio_dstream_playback_buffer_size; } uint32_t midi_diskstream_buffer_size() const { return midi_dstream_buffer_size; } diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc index 2485bc399f..67d7dd1617 100644 --- a/libs/ardour/butler.cc +++ b/libs/ardour/butler.cc @@ -54,13 +54,8 @@ Butler::Butler(Session& s) g_atomic_int_set(&should_do_transport_work, 0); SessionEvent::pool->set_trash (&pool_trash); - /* catch future changes to parameters */ - Config->ParameterChanged.connect_same_thread (*this, boost::bind (&Butler::config_changed, this, _1)); - - /* use any current ones that we care about */ - boost::function ff (boost::bind (&Butler::config_changed, this, _1)); - Config->map_parameters (ff); - + /* catch future changes to parameters */ + Config->ParameterChanged.connect_same_thread (*this, boost::bind (&Butler::config_changed, this, _1)); } Butler::~Butler() @@ -68,6 +63,14 @@ Butler::~Butler() terminate_thread (); } +void +Butler::map_parameters () +{ + /* use any current ones that we care about */ + boost::function ff (boost::bind (&Butler::config_changed, this, _1)); + Config->map_parameters (ff); +} + void Butler::config_changed (std::string p) { diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index ce0d006a9e..ba904d24c9 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -271,6 +271,7 @@ Session::post_engine_init () Config->map_parameters (ff); config.map_parameters (ft); + _butler->map_parameters (); /* Reset all panners */