summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/gain_meter.cc8
-rw-r--r--gtk2_ardour/gain_meter.h1
-rw-r--r--gtk2_ardour/meter_strip.cc18
-rw-r--r--gtk2_ardour/meter_strip.h4
-rw-r--r--gtk2_ardour/mixer_strip.cc6
-rw-r--r--libs/ardour/ardour/route.h9
-rw-r--r--libs/ardour/route.cc14
7 files changed, 34 insertions, 26 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc
index ca25f20471..be86691594 100644
--- a/gtk2_ardour/gain_meter.cc
+++ b/gtk2_ardour/gain_meter.cc
@@ -969,6 +969,9 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
_meter->ConfigurationChanged.connect (
model_connections, invalidator (*this), boost::bind (&GainMeter::meter_configuration_changed, this, _1), gui_context()
);
+ _meter->TypeChanged.connect (
+ model_connections, invalidator (*this), boost::bind (&GainMeter::meter_type_changed, this, _1), gui_context()
+ );
meter_configuration_changed (_meter->input_streams ());
}
@@ -1077,3 +1080,8 @@ GainMeter::meter_configuration_changed (ChanCount c)
meter_clear_pattern_cache(); // XXX only once
}
+void
+GainMeter::meter_type_changed (MeterType t)
+{
+ _route->set_meter_type(t);
+}
diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h
index 98d1288b0c..9353cfeaad 100644
--- a/gtk2_ardour/gain_meter.h
+++ b/gtk2_ardour/gain_meter.h
@@ -221,6 +221,7 @@ class GainMeter : public GainMeterBase, public Gtk::VBox
private:
void meter_configuration_changed (ARDOUR::ChanCount);
+ void meter_type_changed (ARDOUR::MeterType);
Gtk::HBox gain_display_box;
Gtk::HBox fader_box;
diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc
index 691bf34d3f..50ef230e65 100644
--- a/gtk2_ardour/meter_strip.cc
+++ b/gtk2_ardour/meter_strip.cc
@@ -112,8 +112,9 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
level_meter->set_meter (_route->shared_peak_meter().get());
level_meter->clear_meters();
level_meter->setup_meters (220, meter_width, 6);
+ level_meter->set_type (_route->meter_type());
level_meter->ButtonPress.connect_same_thread (level_meter_connection, boost::bind (&MeterStrip::level_meter_button_press, this, _1));
- level_meter->set_type (_route->meter_type_meterbridge());
+ level_meter->MeterTypeChanged.connect_same_thread (level_meter_connection, boost::bind (&MeterStrip::meter_type_changed, this, _1));
meter_align.set(0.5, 0.5, 0.0, 1.0);
meter_align.add(*level_meter);
@@ -462,14 +463,21 @@ MeterStrip::add_level_meter_item (Menu_Helpers::MenuList& items, RadioMenuItem::
{
using namespace Menu_Helpers;
- items.push_back (RadioMenuElem (group, name, sigc::bind (sigc::mem_fun (*this, &MeterStrip::set_meter_point), type)));
+ items.push_back (RadioMenuElem (group, name, sigc::bind (sigc::mem_fun (*this, &MeterStrip::set_meter_type), type)));
RadioMenuItem* i = dynamic_cast<RadioMenuItem *> (&items.back ());
- i->set_active (_route->meter_type_meterbridge() == type);
+ i->set_active (_route->meter_type() == type);
}
void
-MeterStrip::set_meter_point (MeterType m)
+MeterStrip::set_meter_type (MeterType m)
{
level_meter->set_type (m);
- _route->set_meter_type_meterbridge(m);
+ //_route->set_meter_type(m);
}
+
+void
+MeterStrip::meter_type_changed (MeterType t)
+{
+ _route->set_meter_type(t);
+}
+
diff --git a/gtk2_ardour/meter_strip.h b/gtk2_ardour/meter_strip.h
index 7bbed6370a..a1851b92b0 100644
--- a/gtk2_ardour/meter_strip.h
+++ b/gtk2_ardour/meter_strip.h
@@ -103,11 +103,11 @@ class MeterStrip : public Gtk::VBox, public RouteUI
bool _has_midi;
LevelMeter *level_meter;
- void meter_changed ();
PBD::ScopedConnection _config_connection;
void strip_property_changed (const PBD::PropertyChange&);
void meter_configuration_changed (ARDOUR::ChanCount);
+ void meter_type_changed (ARDOUR::MeterType);
static int max_pattern_metric_size; // == FastMeter::max_pattern_metric_size
@@ -119,7 +119,7 @@ class MeterStrip : public Gtk::VBox, public RouteUI
bool level_meter_button_press (GdkEventButton* ev);
void popup_level_meter_menu (GdkEventButton* ev);
void add_level_meter_item (Gtk::Menu_Helpers::MenuList& items, Gtk::RadioMenuItem::Group& group, std::string const & name, ARDOUR::MeterType mode);
- void set_meter_point (ARDOUR::MeterType mode);
+ void set_meter_type (ARDOUR::MeterType mode);
};
#endif /* __ardour_mixer_strip__ */
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 8baa1df8d5..238b6077a6 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -411,7 +411,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
gpm.gain_display.get_parent()->remove (gpm.gain_display);
}
- gpm.set_type (rt->meter_type_mixer());
+ gpm.set_type (rt->meter_type());
middle_button_table.attach (gpm.gain_display,0,1,1,2);
middle_button_table.attach (gpm.peak_display,1,2,1,2);
@@ -2165,12 +2165,12 @@ MixerStrip::add_level_meter_item_type (Menu_Helpers::MenuList& items,
items.push_back (RadioMenuElem (group, name, sigc::bind (sigc::mem_fun (*this, &MixerStrip::set_meter_type), type)));
RadioMenuItem* i = dynamic_cast<RadioMenuItem *> (&items.back ());
- i->set_active (_route->meter_type_mixer() == type);
+ i->set_active (_route->meter_type() == type);
}
void
MixerStrip::set_meter_type (MeterType t)
{
- _route->set_meter_type_mixer (t);
+ //_route->set_meter_type (t);
gpm.set_type (t);
}
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index 783011a158..2e44d00984 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -181,10 +181,8 @@ class Route : public SessionObject, public Automatable, public RouteGroupMember,
MeterPoint meter_point() const { return _meter_point; }
void meter ();
- void set_meter_type_mixer (MeterType t) { _meter_type_mixer = t; }
- void set_meter_type_meterbridge (MeterType t) { _meter_type_meterbridge = t; }
- MeterType meter_type_mixer() const { return _meter_type_mixer; }
- MeterType meter_type_meterbridge() const { return _meter_type_meterbridge; }
+ void set_meter_type (MeterType t) { _meter_type = t; }
+ MeterType meter_type() const { return _meter_type; }
/* Processors */
@@ -491,8 +489,7 @@ class Route : public SessionObject, public Automatable, public RouteGroupMember,
Flag _flags;
int _pending_declick;
MeterPoint _meter_point;
- MeterType _meter_type_mixer;
- MeterType _meter_type_meterbridge;
+ MeterType _meter_type;
boost::dynamic_bitset<> _phase_invert;
bool _self_solo;
uint32_t _soloed_by_others_upstream;
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index d3e0fbce22..e87cb4b03f 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -83,8 +83,7 @@ Route::Route (Session& sess, string name, Flag flg, DataType default_type)
, _flags (flg)
, _pending_declick (true)
, _meter_point (MeterPostFader)
- , _meter_type_mixer (MeterPeak)
- , _meter_type_meterbridge (MeterPeak)
+ , _meter_type (MeterPeak)
, _self_solo (false)
, _soloed_by_others_upstream (0)
, _soloed_by_others_downstream (0)
@@ -1880,8 +1879,7 @@ Route::state(bool full_state)
node->add_property("denormal-protection", _denormal_protection?"yes":"no");
node->add_property("meter-point", enum_2_string (_meter_point));
- node->add_property("meter-type-mixer", enum_2_string (_meter_type_mixer));
- node->add_property("meter-type-meterbridge", enum_2_string (_meter_type_meterbridge));
+ node->add_property("meter-type", enum_2_string (_meter_type));
if (_route_group) {
node->add_property("route-group", _route_group->name());
@@ -2057,12 +2055,8 @@ Route::set_state (const XMLNode& node, int version)
}
}
- if ((prop = node.property (X_("meter-type-mixer"))) != 0) {
- _meter_type_mixer = MeterType (string_2_enum (prop->value (), _meter_type_mixer));
- }
-
- if ((prop = node.property (X_("meter-type-meterbridge"))) != 0) {
- _meter_type_meterbridge = MeterType (string_2_enum (prop->value (), _meter_type_meterbridge));
+ if ((prop = node.property (X_("meter-type"))) != 0) {
+ _meter_type = MeterType (string_2_enum (prop->value (), _meter_type));
}
set_processor_state (processor_state);