This removes all additional GUI side meter-type state.
The route's meter-processors is now responsible for providing
the type.
meter-type is now implicit for GainMeter, LevelMeter used by
meter-strips and mixer-strips.
editor_meter = new LevelMeterHBox(_session);
editor_meter->set_meter (_session->master_out()->shared_peak_meter().get());
editor_meter->clear_meters();
- editor_meter->set_meter_type (_session->master_out()->meter_type());
editor_meter->setup_meters (30, 10, 6);
editor_meter->show();
level_meter->setup_meters(len, meter_width);
}
-void
-GainMeterBase::set_type (MeterType t)
-{
- level_meter->set_meter_type(t);
-}
-
void
GainMeter::setup_meters (int len)
{
GainMeterBase::setup_meters (len);
}
-void
-GainMeter::set_type (MeterType t)
-{
- GainMeterBase::set_type (t);
-}
-
bool
GainMeterBase::gain_key_press (GdkEventKey* ev)
{
_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->MeterTypeChanged.connect (
+ model_connections, invalidator (*this), boost::bind (&GainMeter::redraw_metrics, this), gui_context()
);
meter_configuration_changed (_meter->input_streams ());
meter_configuration_changed (_meter->input_streams ());
}
}
-
-void
-GainMeter::meter_type_changed (MeterType t)
-{
- _route->set_meter_type(t);
- RedrawMetrics();
-}
void set_fader_name (const char * name);
virtual void setup_meters (int len=0);
- virtual void set_type (ARDOUR::MeterType);
boost::shared_ptr<PBD::Controllable> get_controllable();
int get_gm_width ();
void setup_meters (int len=0);
- void set_type (ARDOUR::MeterType);
void route_active_changed ();
protected:
private:
void meter_configuration_changed (ARDOUR::ChanCount);
- void meter_type_changed (ARDOUR::MeterType);
Gtk::HBox gain_display_box;
Gtk::HBox fader_box;
, meter_length (0)
, thin_meter_width(2)
, max_peak (minus_infinity())
- , _meter_type (MeterPeak)
, visible_meter_type (MeterType(0))
, midi_count (0)
, meter_count (0)
if (_meter) {
_meter->ConfigurationChanged.connect (_configuration_connection, parent_invalidator, boost::bind (&LevelMeterBase::configuration_changed, this, _1, _2), gui_context());
- _meter->TypeChanged.connect (_meter_type_connection, parent_invalidator, boost::bind (&LevelMeterBase::meter_type_changed, this, _1), gui_context());
+ _meter->MeterTypeChanged.connect (_meter_type_connection, parent_invalidator, boost::bind (&LevelMeterBase::meter_type_changed, this, _1), gui_context());
}
}
if (n < nmidi) {
(*i).meter->set (_meter->meter_level (n, MeterPeak));
} else {
+ MeterType _meter_type = _meter->meter_type ();
const float peak = _meter->meter_level (n, _meter_type);
if (_meter_type == MeterPeak) {
(*i).meter->set (log_meter (peak));
void
LevelMeterBase::meter_type_changed (MeterType t)
{
- _meter_type = t;
setup_meters (meter_length, regular_meter_width, thin_meter_width);
- MeterTypeChanged(t);
}
void
return; /* do it later or never */
}
+ MeterType _meter_type = _meter->meter_type ();
uint32_t nmidi = _meter->input_streams().n_midi();
uint32_t nmeters = _meter->input_streams().n_total();
regular_meter_width = initial_width;
meter_count = nmeters;
}
-void
-LevelMeterBase::set_meter_type(MeterType t)
-{
- _meter_type = t;
- _meter->set_type(t);
-}
-
bool
LevelMeterBase::meter_button_press (GdkEventButton* ev)
{
void setup_meters (int len=0, int width=3, int thin=2);
void set_max_audio_meter_count (uint32_t cnt = 0);
- void set_meter_type (ARDOUR::MeterType);
- ARDOUR::MeterType meter_type () { return _meter_type; }
-
/** Emitted in the GUI thread when a button is pressed over the meter */
PBD::Signal1<bool, GdkEventButton *> ButtonPress;
PBD::Signal1<bool, GdkEventButton *> ButtonRelease;
- PBD::Signal1<void, ARDOUR::MeterType> MeterTypeChanged;
protected:
virtual void mtr_pack(Gtk::Widget &w) = 0;
guint16 thin_meter_width;
std::vector<MeterInfo> meters;
float max_peak;
- ARDOUR::MeterType _meter_type;
ARDOUR::MeterType visible_meter_type;
uint32_t midi_count;
uint32_t meter_count;
level_meter = new LevelMeterHBox(sess);
level_meter->set_meter (_route->shared_peak_meter().get());
level_meter->clear_meters();
- level_meter->set_meter_type (_route->meter_type());
level_meter->setup_meters (220, meter_width, 6);
level_meter->ButtonPress.connect_same_thread (level_meter_connection, boost::bind (&MeterStrip::level_meter_button_press, this, _1));
- level_meter->MeterTypeChanged.connect_same_thread (level_meter_connection, boost::bind (&MeterStrip::meter_type_changed, this, _1));
+ _route->shared_peak_meter()->MeterTypeChanged.connect (meter_route_connections, invalidator (*this), boost::bind (&MeterStrip::meter_type_changed, this, _1), gui_context());
meter_align.set(0.5, 0.5, 0.0, 1.0);
meter_align.add(*level_meter);
MeterStrip::set_meter_type (MeterType type)
{
if (_suspend_menu_callbacks) return;
- if (_route->meter_type() == type) return;
-
- level_meter->set_meter_type (type);
+ _route->set_meter_type (type);
}
void
void
MeterStrip::meter_type_changed (MeterType type)
{
- if (_route->meter_type() != type) {
- _route->set_meter_type(type);
- }
update_background (type);
MetricChanged();
}
switch (what) {
case -1:
if (_route && group == _route->route_group()) {
- level_meter->set_meter_type (type);
+ _route->set_meter_type (type);
}
break;
case 0:
- level_meter->set_meter_type (type);
+ _route->set_meter_type (type);
break;
default:
if (what == _strip_type) {
- level_meter->set_meter_type (type);
+ _route->set_meter_type (type);
}
break;
}
gpm.gain_display.get_parent()->remove (gpm.gain_display);
}
- gpm.set_type (rt->meter_type());
-
mute_solo_table.attach (gpm.gain_display,0,1,1,2, EXPAND|FILL, EXPAND);
mute_solo_table.attach (gpm.peak_display,1,2,1,2, EXPAND|FILL, EXPAND);
set_current_delivery (send);
- send->meter()->set_type(_route->shared_peak_meter()->get_type());
+ send->meter()->set_meter_type (_route->meter_type ());
send->set_metering (true);
_current_delivery->DropReferences.connect (send_gone_connection, invalidator (*this), boost::bind (&MixerStrip::revert_to_default_display, this), gui_context());
MixerStrip::set_meter_type (MeterType t)
{
if (_suspend_menu_callbacks) return;
- gpm.set_type (t);
+ _route->set_meter_type (t);
}
void