+void
+GainMeterBase::setup_gain_adjustment ()
+{
+ if (!_amp) {
+ return;
+ }
+
+ if (_previous_amp_output_streams == _amp->output_streams ()) {
+ return;
+ }
+
+ ignore_toggle = true;
+
+ if (_amp->output_streams().n_midi() == 0) {
+ _data_type = DataType::AUDIO;
+ gain_adjustment.set_lower (0.0);
+ gain_adjustment.set_upper (1.0);
+ gain_adjustment.set_step_increment (0.01);
+ gain_adjustment.set_page_increment (0.1);
+ gain_slider->set_default_value (gain_to_slider_position (1));
+ } else {
+ _data_type = DataType::MIDI;
+ gain_adjustment.set_lower (0.0);
+ gain_adjustment.set_upper (2.0);
+ gain_adjustment.set_step_increment (0.05);
+ gain_adjustment.set_page_increment (0.1);
+ gain_slider->set_default_value (1);
+ }
+
+ ignore_toggle = false;
+
+ effective_gain_display ();
+
+ _previous_amp_output_streams = _amp->output_streams ();
+}
+