summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/monitor_section.cc10
-rw-r--r--gtk2_ardour/monitor_section.h1
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/motionfeedback.h11
-rw-r--r--libs/gtkmm2ext/motionfeedback.cc7
4 files changed, 22 insertions, 7 deletions
diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc
index 5f779c6422..32a0247e99 100644
--- a/gtk2_ardour/monitor_section.cc
+++ b/gtk2_ardour/monitor_section.cc
@@ -62,7 +62,7 @@ MonitorSection::MonitorSection (Session* s)
, dim_control (0)
, solo_boost_adjustment (1.0, 1.0, 2.0, 0.01, 0.1)
, solo_boost_control (0)
- , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1)
+ , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1)
, solo_cut_control (0)
, solo_in_place_button (solo_model_group, _("SiP"))
, afl_button (solo_model_group, _("AFL"))
@@ -164,7 +164,7 @@ MonitorSection::MonitorSection (Session* s)
/* Solo (SiP) cut */
solo_cut_control = new VolumeController (little_knob_pixbuf, &solo_cut_adjustment, false, 30, 30);
- // solo_cut_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &MonitorSection::solo_cut_changed));
+ solo_cut_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &MonitorSection::solo_cut_changed));
spin_label = manage (new Label (_("SiP Cut")));
spin_packer = manage (new VBox);
@@ -865,3 +865,9 @@ MonitorSection::cancel_solo (GdkEventButton* ev)
return true;
}
+
+void
+MonitorSection::solo_cut_changed ()
+{
+ Config->set_solo_mute_gain (slider_position_to_gain (solo_cut_adjustment.get_value()));
+}
diff --git a/gtk2_ardour/monitor_section.h b/gtk2_ardour/monitor_section.h
index 8af84988f1..ca6b546f3f 100644
--- a/gtk2_ardour/monitor_section.h
+++ b/gtk2_ardour/monitor_section.h
@@ -116,4 +116,5 @@ class MonitorSection : public RouteUI
void solo_blink (bool);
bool cancel_solo (GdkEventButton*);
+ void solo_cut_changed ();
};
diff --git a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
index 23ad122d85..a3a06d39d3 100644
--- a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
+++ b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h
@@ -84,12 +84,13 @@ class MotionFeedback : public Gtk::VBox
Gtk::SpinButton* value;
Gtk::Adjustment* adjustment;
Glib::RefPtr<Gdk::Pixbuf> pixbuf;
-
- gfloat step_inc;
- gfloat page_inc;
+
+ double default_value;
+ double step_inc;
+ double page_inc;
bool grab_is_fine;
- gdouble grabbed_y;
- gdouble grabbed_x;
+ double grabbed_y;
+ double grabbed_x;
bool i_own_my_adjustment;
int subwidth;
int subheight;
diff --git a/libs/gtkmm2ext/motionfeedback.cc b/libs/gtkmm2ext/motionfeedback.cc
index 8cdaac067c..19ce16d815 100644
--- a/libs/gtkmm2ext/motionfeedback.cc
+++ b/libs/gtkmm2ext/motionfeedback.cc
@@ -54,6 +54,8 @@ MotionFeedback::MotionFeedback (Glib::RefPtr<Gdk::Pixbuf> pix,
set_adjustment (adj);
}
+ default_value = adjustment->get_value();
+
HBox* hpacker = manage (new HBox);
hpacker->pack_start (pixwin, true, false);
hpacker->show ();
@@ -168,6 +170,11 @@ MotionFeedback::pixwin_button_release_event (GdkEventButton *ev)
(GTK_WIDGET(pixwin.gobj()));
}
}
+ if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
+ /* shift click back to the default */
+ adjustment->set_value (default_value);
+ return true;
+ }
break;
case 3: