summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-10-19 09:56:00 +0000
committerCarl Hetherington <carl@carlh.net>2011-10-19 09:56:00 +0000
commit3ac7b37f00de5fd490178d2f5ee61ed7613be601 (patch)
tree5dad94a1f09635df6a31ff13d1ae69ce3121df48 /gtk2_ardour
parent9040cbf82a9fcb78583dc4e77df2a54bea827b45 (diff)
Use a ARDOUR::DataType rather than a bool.
git-svn-id: svn://localhost/ardour2/branches/3.0@10228 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/gain_meter.cc27
-rw-r--r--gtk2_ardour/gain_meter.h2
2 files changed, 19 insertions, 10 deletions
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;
};