From 3ac7b37f00de5fd490178d2f5ee61ed7613be601 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 19 Oct 2011 09:56:00 +0000 Subject: Use a ARDOUR::DataType rather than a bool. git-svn-id: svn://localhost/ardour2/branches/3.0@10228 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/gain_meter.cc | 27 ++++++++++++++++++--------- gtk2_ardour/gain_meter.h | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 79f5d4b421..a92ac67c6f 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -84,7 +84,7 @@ GainMeterBase::GainMeterBase (Session* s, , gain_automation_state_button ("") , style_changed (false) , dpi_changed (false) - , _is_midi (false) + , _data_type (DataType::AUDIO) { using namespace Menu_Helpers; @@ -245,14 +245,14 @@ GainMeterBase::setup_gain_adjustment () ignore_toggle = true; if (_amp->output_streams().n_midi() == 0) { - _is_midi = false; + _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 { - _is_midi = true; + _data_type = DataType::MIDI; gain_adjustment.set_lower (0.0); gain_adjustment.set_upper (2.0); gain_adjustment.set_step_increment (0.05); @@ -408,14 +408,17 @@ GainMeterBase::show_gain () float v = gain_adjustment.get_value(); - if (!_is_midi) { + switch (_data_type) { + case DataType::AUDIO: if (v == 0.0) { strcpy (buf, _("-inf")); } else { snprintf (buf, sizeof (buf), "%.1f", accurate_coefficient_to_dB (slider_position_to_gain_with_max (v, Config->get_max_gain()))); } - } else { + break; + case DataType::MIDI: snprintf (buf, sizeof (buf), "%.1f", v); + break; } gain_display.set_text (buf); @@ -426,10 +429,13 @@ GainMeterBase::gain_adjusted () { if (!ignore_toggle) { if (_route && _route->amp() == _amp) { - if (_is_midi) { + switch (_data_type) { + case DataType::MIDI: _route->set_gain (gain_adjustment.get_value(), this); - } else { + break; + case DataType::AUDIO: _route->set_gain (slider_position_to_gain_with_max (gain_adjustment.get_value(), Config->get_max_gain()), this); + break; } } else { _amp->set_gain (slider_position_to_gain_with_max (gain_adjustment.get_value(), Config->get_max_gain()), this); @@ -444,10 +450,13 @@ GainMeterBase::effective_gain_display () { float value; - if (!_is_midi) { + switch (_data_type) { + case DataType::AUDIO: value = gain_to_slider_position_with_max (_amp->gain(), Config->get_max_gain()); - } else { + break; + case DataType::MIDI: value = _amp->gain (); + break; } if (gain_adjustment.get_value() != value) { diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index 8e2ac28bfc..cd65c17adb 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -180,7 +180,7 @@ class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr bool dpi_changed; bool color_changed; void color_handler(bool); - bool _is_midi; + ARDOUR::DataType _data_type; ARDOUR::ChanCount _previous_amp_output_streams; }; -- cgit v1.2.3