Option to show gain-knob on Meterbridge
This commit is contained in:
parent
0ee628d170
commit
80939f2228
@ -136,6 +136,7 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
|
||||
, _strip_type (0)
|
||||
, _metricmode (-1)
|
||||
, level_meter (0)
|
||||
, gain_control (ArdourKnob::default_elements, ArdourKnob::Detent)
|
||||
, _suspend_menu_callbacks (false)
|
||||
{
|
||||
mtr_vbox.set_spacing (PX_SCALE(2, 2));
|
||||
@ -218,6 +219,17 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
|
||||
solobox.pack_start(*solo_button, true, false);
|
||||
btnbox.pack_start(solobox, false, false, 1);
|
||||
|
||||
/* Fader/Gain */
|
||||
gain_control.set_size_request (PX_SCALE (18, 18), PX_SCALE (18, 18));
|
||||
gain_control.set_tooltip_prefix (_("Level: "));
|
||||
gain_control.set_name ("trim knob"); // XXX
|
||||
gain_control.StartGesture.connect (sigc::mem_fun (*this, &MeterStrip::gain_start_touch));
|
||||
gain_control.StopGesture.connect (sigc::mem_fun (*this, &MeterStrip::gain_end_touch));
|
||||
gain_control.set_controllable (_route->gain_control ());
|
||||
|
||||
gain_box.pack_start(gain_control, true, false);
|
||||
btnbox.pack_start(gain_box, false, false, 1);
|
||||
|
||||
rec_enable_button->set_corner_radius(2);
|
||||
rec_enable_button->set_size_request (PX_SCALE(18, 18), PX_SCALE(18, 18));
|
||||
|
||||
@ -238,6 +250,7 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
|
||||
recbox.set_size_request (PX_SCALE(18, 18), PX_SCALE(18, 18));
|
||||
mon_in_box.set_size_request (PX_SCALE(18, 18), PX_SCALE(18, 18));
|
||||
mon_disk_box.set_size_request (PX_SCALE(18, 18), PX_SCALE(18, 18));
|
||||
gain_box.set_size_request (PX_SCALE(18, 18), PX_SCALE(18, 18));
|
||||
spacer.set_size_request(-1,0);
|
||||
|
||||
update_button_box();
|
||||
@ -262,6 +275,7 @@ MeterStrip::MeterStrip (Session* sess, boost::shared_ptr<ARDOUR::Route> rt)
|
||||
name_label.show();
|
||||
peak_display.show();
|
||||
peakbx.show();
|
||||
gain_control.show ();
|
||||
meter_ticks1_area.show();
|
||||
meter_ticks2_area.show();
|
||||
meterbox.show();
|
||||
@ -764,6 +778,12 @@ MeterStrip::update_button_box ()
|
||||
mon_in_box.hide();
|
||||
mon_disk_box.hide();
|
||||
}
|
||||
if (_session->config.get_show_fader_on_meterbridge ()) {
|
||||
height += PX_SCALE(18, 18) + PX_SCALE(2, 2);
|
||||
gain_box.show ();
|
||||
} else {
|
||||
gain_box.hide ();
|
||||
}
|
||||
btnbox.set_size_request(PX_SCALE(18, 18), height);
|
||||
check_resize();
|
||||
}
|
||||
@ -800,6 +820,9 @@ MeterStrip::parameter_changed (std::string const & p)
|
||||
else if (p == "show-monitor-on-meterbridge") {
|
||||
update_button_box();
|
||||
}
|
||||
else if (p == "show-fader-on-meterbridge") {
|
||||
update_button_box();
|
||||
}
|
||||
else if (p == "meterbridge-label-height") {
|
||||
queue_resize();
|
||||
}
|
||||
@ -989,3 +1012,14 @@ MeterStrip::color () const
|
||||
return RouteUI::route_color ();
|
||||
}
|
||||
|
||||
void
|
||||
MeterStrip::gain_start_touch ()
|
||||
{
|
||||
_route->gain_control ()->start_touch (timepos_t (_session->transport_sample ()));
|
||||
}
|
||||
|
||||
void
|
||||
MeterStrip::gain_end_touch ()
|
||||
{
|
||||
_route->gain_control ()->stop_touch (timepos_t (_session->transport_sample ()));
|
||||
}
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "ardour/ardour.h"
|
||||
|
||||
#include "widgets/ardour_button.h"
|
||||
#include "widgets/ardour_knob.h"
|
||||
|
||||
#include "level_meter.h"
|
||||
#include "route_ui.h"
|
||||
@ -121,6 +122,7 @@ private:
|
||||
Gtk::HBox recbox;
|
||||
Gtk::HBox mon_in_box;
|
||||
Gtk::HBox mon_disk_box;
|
||||
Gtk::HBox gain_box;
|
||||
|
||||
Gtk::Alignment meter_align;
|
||||
Gtk::Alignment peak_align;
|
||||
@ -140,6 +142,8 @@ private:
|
||||
|
||||
LevelMeterHBox *level_meter;
|
||||
|
||||
ArdourWidgets::ArdourKnob gain_control;
|
||||
|
||||
void route_property_changed (const PBD::PropertyChange&);
|
||||
void meter_configuration_changed (ARDOUR::ChanCount);
|
||||
void meter_type_changed (ARDOUR::MeterType);
|
||||
@ -147,6 +151,9 @@ private:
|
||||
|
||||
bool peak_button_release (GdkEventButton*);
|
||||
|
||||
void gain_start_touch ();
|
||||
void gain_end_touch ();
|
||||
|
||||
void parameter_changed (std::string const & p);
|
||||
void redraw_metrics ();
|
||||
void update_button_box ();
|
||||
|
@ -760,6 +760,9 @@ Meterbridge::parameter_changed (std::string const & p)
|
||||
else if (p == "show-monitor-on-meterbridge") {
|
||||
scroller.queue_resize();
|
||||
}
|
||||
else if (p == "show-fader-on-meterbridge") {
|
||||
scroller.queue_resize();
|
||||
}
|
||||
else if (p == "track-name-number") {
|
||||
scroller.queue_resize();
|
||||
}
|
||||
|
@ -331,6 +331,13 @@ SessionOptionEditor::SessionOptionEditor (Session* s)
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_monitor_on_meterbridge)
|
||||
));
|
||||
|
||||
add_option (_("Meterbridge"), new BoolOption (
|
||||
"show-fader-on-meterbridge",
|
||||
_("Fader as Gain Knob"),
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::get_show_fader_on_meterbridge),
|
||||
sigc::mem_fun (*_session_config, &SessionConfiguration::set_show_fader_on_meterbridge)
|
||||
));
|
||||
|
||||
add_option (_("Meterbridge"), new OptionEditorHeading (_("Name Labels")));
|
||||
|
||||
add_option (_("Meterbridge"), new BoolOption (
|
||||
|
Loading…
Reference in New Issue
Block a user