Use a ARDOUR::DataType rather than a bool.
authorCarl Hetherington <carl@carlh.net>
Wed, 19 Oct 2011 09:56:00 +0000 (09:56 +0000)
committerCarl Hetherington <carl@carlh.net>
Wed, 19 Oct 2011 09:56:00 +0000 (09:56 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@10228 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/gain_meter.cc
gtk2_ardour/gain_meter.h

index 79f5d4b4215f9adc337184722686f9570d02c63e..a92ac67c6f4165c6fed23037fb9101619613f34b 100644 (file)
@@ -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) {
index 8e2ac28bfcf26f6331245e539b1ade618b9f1f8e..cd65c17adb1613a07a67cde8eea2c8176b697468 100644 (file)
@@ -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;
 };