diff --git a/libs/ardour/ardour/meter.h b/libs/ardour/ardour/meter.h index 1f7ad30216..6b95471fd1 100644 --- a/libs/ardour/ardour/meter.h +++ b/libs/ardour/ardour/meter.h @@ -74,11 +74,11 @@ public: float meter_level (uint32_t n, MeterType type); - void set_type(MeterType t); - MeterType get_type() { return _meter_type; } + void set_meter_type (MeterType t); + MeterType meter_type () const { return _meter_type; } - PBD::Signal1 TypeChanged; + PBD::Signal1 MeterTypeChanged; protected: XMLNode& state (); diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 6a2ddcb79f..ba2d7388da 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -193,8 +193,8 @@ public: void emit_pending_signals (); MeterPoint meter_point() const { return _pending_meter_point; } - void set_meter_type (MeterType t) { _meter_type = t; } - MeterType meter_type() const { return _meter_type; } + void set_meter_type (MeterType t); + MeterType meter_type () const; void set_disk_io_point (DiskIOPoint); DiskIOPoint disk_io_point() const { return _disk_io_point; } @@ -659,7 +659,6 @@ protected: MeterPoint _meter_point; MeterPoint _pending_meter_point; - MeterType _meter_type; bool _denormal_protection; diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 85dc09c5b6..eb6fcf1233 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -1554,7 +1554,8 @@ LuaBindings::common (lua_State* L) .deriveWSPtrClass ("PeakMeter") .addFunction ("meter_level", &PeakMeter::meter_level) - .addFunction ("set_type", &PeakMeter::set_type) + .addFunction ("set_meter_type", &PeakMeter::set_meter_type) + .addFunction ("meter_type", &PeakMeter::meter_type) .addFunction ("reset_max", &PeakMeter::reset_max) .endClass () diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc index a514deaa6b..2becd2bb87 100644 --- a/libs/ardour/meter.cc +++ b/libs/ardour/meter.cc @@ -403,7 +403,7 @@ PeakMeter::meter_level(uint32_t n, MeterType type) { } void -PeakMeter::set_type(MeterType t) +PeakMeter::set_meter_type (MeterType t) { if (t == _meter_type) { return; @@ -436,7 +436,7 @@ PeakMeter::set_type(MeterType t) } } - TypeChanged(t); + MeterTypeChanged (t); /* EMIT SIGNAL */ } XMLNode& diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 9d94df8bf8..e3e907be84 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -103,7 +103,6 @@ Route::Route (Session& sess, string name, PresentationInfo::Flag flag, DataType , _pending_signals (0) , _meter_point (MeterPostFader) , _pending_meter_point (MeterPostFader) - , _meter_type (MeterPeak) , _denormal_protection (false) , _recordable (true) , _have_internal_generator (false) @@ -129,16 +128,6 @@ Route::weakroute () { int Route::init () { - /* set default meter type */ - if (is_master()) { - _meter_type = Config->get_meter_type_master (); - } - else if (dynamic_cast(this)) { - _meter_type = Config->get_meter_type_track (); - } else { - _meter_type = Config->get_meter_type_bus (); - } - /* add standard controls */ _gain_control.reset (new GainControl (_session, GainAutomation)); @@ -227,6 +216,15 @@ Route::init () _meter->set_display_to_user (false); _meter->activate (); + /* set default meter type */ + if (is_master()) { + set_meter_type (Config->get_meter_type_master ()); + } else if (dynamic_cast(this)) { + set_meter_type (Config->get_meter_type_track ()); + } else { + set_meter_type (Config->get_meter_type_bus ()); + } + _main_outs.reset (new Delivery (_session, _output, _pannable, _mute_master, _name, Delivery::Main)); _main_outs->activate (); @@ -2457,7 +2455,7 @@ Route::state (bool save_template) node->set_property (X_("meter-point"), _meter_point); node->set_property (X_("disk-io-point"), _disk_io_point); - node->set_property (X_("meter-type"), _meter_type); + node->set_property (X_("meter-type"), _meter->meter_type ()); if (_route_group) { node->set_property (X_("route-group"), _route_group->name()); @@ -2626,7 +2624,10 @@ Route::set_state (const XMLNode& node, int version) set_disk_io_point (diop); } - node.get_property (X_("meter-type"), _meter_type); + MeterType meter_type; + if (node.get_property (X_("meter-type"), meter_type)) { + set_meter_type (meter_type); + } _initial_io_setup = false; @@ -5959,6 +5960,18 @@ Route::slavables () const return rv; } +void +Route::set_meter_type (MeterType t) +{ + _meter->set_meter_type (t); +} + +MeterType +Route::meter_type () const +{ + return _meter->meter_type (); +} + void Route::set_disk_io_point (DiskIOPoint diop) {