#include "public_editor.h"
#include "utils.h"
#include "meter_patterns.h"
+#include "timers.h"
#include "ardour/session.h"
#include "ardour/route.h"
using Gtkmm2ext::Keyboard;
using namespace ArdourMeter;
-
static void
reset_cursor_to_default (Gtk::Entry* widget)
{
next_release_selects = false;
_width = Wide;
+ fader_length = rint (fader_length * ARDOUR_UI::ui_scale);
+ fader_girth = rint (fader_girth * ARDOUR_UI::ui_scale);
+
if (horizontal) {
gain_slider = manage (new HSliderController (&gain_adjustment, boost::shared_ptr<PBD::Controllable>(), fader_length, fader_girth));
} else {
if (_amp->output_streams().n_midi() <= _amp->output_streams().n_audio()) {
_data_type = DataType::AUDIO;
- gain_adjustment.set_lower (0.0);
- gain_adjustment.set_upper (1.0);
+ gain_adjustment.set_lower (GAIN_COEFF_ZERO);
+ gain_adjustment.set_upper (GAIN_COEFF_UNITY);
gain_adjustment.set_step_increment (dB_coeff_step(Config->get_max_gain()) / 10.0);
gain_adjustment.set_page_increment (dB_coeff_step(Config->get_max_gain()));
- gain_slider->set_default_value (gain_to_slider_position (1));
+ gain_slider->set_default_value (gain_to_slider_position (GAIN_COEFF_UNITY));
} else {
_data_type = DataType::MIDI;
gain_adjustment.set_lower (0.0);
void
GainMeterBase::effective_gain_display ()
{
- float value = 0.0;
+ float value = GAIN_COEFF_ZERO;
switch (_data_type) {
case DataType::AUDIO:
gain_watching.disconnect();
if (x) {
- gain_watching = ARDOUR_UI::RapidScreenUpdate.connect (sigc::mem_fun (*this, &GainMeterBase::effective_gain_display));
+ gain_watching = Timers::rapid_connect (sigc::mem_fun (*this, &GainMeterBase::effective_gain_display));
}
}
meter_ticks2_area.queue_draw ();
}
+#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::ui_scale))
+
GainMeter::GainMeter (Session* s, int fader_length)
: GainMeterBase (s, false, fader_length, 24)
, gain_display_box(true, 0)
gain_display_box.pack_start (peak_display, true, true);
meter_metric_area.set_name ("AudioTrackMetrics");
- meter_metric_area.set_size_request(24, -1);
+ meter_metric_area.set_size_request(PX_SCALE(24, 24), -1);
gain_automation_style_button.set_name ("mixer strip button");
gain_automation_state_button.set_name ("mixer strip button");
gain_automation_style_button.unset_flags (Gtk::CAN_FOCUS);
gain_automation_state_button.unset_flags (Gtk::CAN_FOCUS);
- gain_automation_state_button.set_size_request(15, 15);
- gain_automation_style_button.set_size_request(15, 15);
+ gain_automation_state_button.set_size_request (PX_SCALE(12, 15), PX_SCALE(12, 15));
+ gain_automation_style_button.set_size_request (PX_SCALE(12, 15), PX_SCALE(12, 15));
fader_vbox = manage (new Gtk::VBox());
fader_vbox->set_spacing (0);
hbox.pack_start (fader_alignment, true, true);
- set_spacing (2);
+ set_spacing (PX_SCALE(2, 2));
pack_start (gain_display_box, Gtk::PACK_SHRINK);
pack_start (hbox, Gtk::PACK_SHRINK);
meter_metric_area.signal_expose_event().connect (
sigc::mem_fun(*this, &GainMeter::meter_metrics_expose));
- meter_ticks1_area.set_size_request(3,-1);
- meter_ticks2_area.set_size_request(3,-1);
+ meter_ticks1_area.set_size_request (PX_SCALE(3, 3), -1);
+ meter_ticks2_area.set_size_request (PX_SCALE(3, 3), -1);
meter_ticks1_area.signal_expose_event().connect (
sigc::mem_fun(*this, &GainMeter::meter_ticks1_expose));
meter_hbox.pack_start (meter_ticks2_area, false, false);
meter_hbox.pack_start (meter_metric_area, false, false);
}
+#undef PX_SCALE
GainMeter::~GainMeter () { }
bool
GainMeterBase::level_meter_button_press (GdkEventButton* ev)
{
- return !!LevelMeterButtonPress (ev); /* EMIT SIGNAL */
+ return static_cast<bool>(LevelMeterButtonPress (ev)); /* EMIT SIGNAL */
}
void