From fd414ec158d842c9890f192a7f7a0ec01fdaa562 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 30 Mar 2020 15:19:06 +0200 Subject: [PATCH] Assert that plugins are configured before setting custom meter position This fixes the following issue: On the master channel insert the waveform scope before the fader. Then set the meter position to custom and move the meter to the very beginning of the chain. Before this change, when set_meter_point() was called the processor list only contained the Fader (_amp) and no other processor. _main_outs was not yet present in the list, and Route::maybe_note_meter_position() triggered an and assert(_processor_after_last_custom_meter.lock()); See also d0dca7daf0 --- libs/ardour/route.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index cbe8830692..7c653b6fe1 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2668,14 +2668,6 @@ Route::set_state (const XMLNode& node, int version) } } - MeterPoint mp; - if (node.get_property (X_("meter-point"), mp)) { - set_meter_point (mp, true); - if (_meter) { - _meter->set_display_to_user (_meter_point == MeterCustom); - } - } - DiskIOPoint diop; if (node.get_property (X_("disk-io-point"), diop)) { if (_disk_writer) { @@ -2699,6 +2691,14 @@ Route::set_state (const XMLNode& node, int version) // this looks up the internal instrument in processors reset_instrument_info(); + MeterPoint mp; + if (node.get_property (X_("meter-point"), mp)) { + set_meter_point (mp, true); + if (_meter) { + _meter->set_display_to_user (_meter_point == MeterCustom); + } + } + bool denormal_protection; if (node.get_property (X_("denormal-protection"), denormal_protection)) { set_denormal_protection (denormal_protection);