projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prevent region drags with the middle button in internal edit mode (#3869).
[ardour.git]
/
gtk2_ardour
/
gain_meter.cc
diff --git
a/gtk2_ardour/gain_meter.cc
b/gtk2_ardour/gain_meter.cc
index 849426c4c025d2e89a54986628f1360a06ed0973..8ef83cfad5b4e2e98446089992e17c1bcad4f3e4 100644
(file)
--- a/
gtk2_ardour/gain_meter.cc
+++ b/
gtk2_ardour/gain_meter.cc
@@
-110,8
+110,8
@@
GainMeterBase::GainMeterBase (Session* s,
level_meter = new LevelMeter(_session);
level_meter = new LevelMeter(_session);
- gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::
start_gain_touch
));
- gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::
end_gain_touch
));
+ gain_slider->signal_button_press_event().connect (sigc::mem_fun(*this, &GainMeter::
gain_slider_button_press
));
+ gain_slider->signal_button_release_event().connect (sigc::mem_fun(*this, &GainMeter::
gain_slider_button_release
));
gain_slider->set_name ("GainFader");
gain_display.set_name ("MixerStripGainDisplay");
gain_slider->set_name ("GainFader");
gain_display.set_name ("MixerStripGainDisplay");
@@
-398,16
+398,14
@@
void
GainMeterBase::gain_adjusted ()
{
if (!ignore_toggle) {
GainMeterBase::gain_adjusted ()
{
if (!ignore_toggle) {
- if (_route) {
- if (_route->amp() == _amp) {
- if (_is_midi) {
- _route->set_gain (gain_adjustment.get_value(), this);
- } else {
- _route->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this);
- }
+ if (_route && _route->amp() == _amp) {
+ if (_is_midi) {
+ _route->set_gain (gain_adjustment.get_value(), this);
} else {
} else {
- _
amp
->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this);
+ _
route
->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this);
}
}
+ } else {
+ _amp->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this);
}
}
}
}
@@
-451,7
+449,10
@@
GainMeterBase::set_meter_strip_name (const char * name)
void
GainMeterBase::set_fader_name (const char * name)
{
void
GainMeterBase::set_fader_name (const char * name)
{
- gain_slider->set_name (name);
+ uint32_t rgb_active = rgba_from_style (name, 0xff, 0, 0xff, 0, "bg", STATE_ACTIVE, false);
+ uint32_t rgb_normal = rgba_from_style (name, 0xff, 0xff, 0, 0, "bg", STATE_NORMAL, false);
+
+ gain_slider->set_border_colors (rgb_normal, rgb_active);
}
void
}
void
@@
-474,6
+475,10
@@
next_meter_point (MeterPoint mp)
break;
case MeterPostFader:
break;
case MeterPostFader:
+ return MeterOutput;
+ break;
+
+ case MeterOutput:
return MeterCustom;
break;
return MeterCustom;
break;
@@
-530,7
+535,7
@@
GainMeterBase::meter_press(GdkEventButton* ev)
*/
if (ev->button == 1) {
*/
if (ev->button == 1) {
- set_
mix
_group_meter_point (*_route, next_meter_point (_route->meter_point()));
+ set_
route
_group_meter_point (*_route, next_meter_point (_route->meter_point()));
}
} else {
}
} else {
@@
-552,8
+557,8
@@
GainMeterBase::meter_press(GdkEventButton* ev)
gint
GainMeterBase::meter_release(GdkEventButton*)
{
gint
GainMeterBase::meter_release(GdkEventButton*)
{
- if
(!ignore_toggle)
{
- if (wait_for_release){
+ if
(!ignore_toggle)
{
+ if (wait_for_release)
{
wait_for_release = false;
if (_route) {
wait_for_release = false;
if (_route) {
@@
-572,12
+577,12
@@
GainMeterBase::set_meter_point (Route& route, MeterPoint mp)
}
void
}
void
-GainMeterBase::set_
mix
_group_meter_point (Route& route, MeterPoint mp)
+GainMeterBase::set_
route
_group_meter_point (Route& route, MeterPoint mp)
{
{
- RouteGroup*
mix
_group;
+ RouteGroup*
route
_group;
- if
((mix_group = route.route_group()) != 0)
{
-
mix_group->apply (&Route::set_meter_point, mp
);
+ if
((route_group = route.route_group ()) != 0)
{
+
route_group->foreach_route (boost::bind (&Route::set_meter_point, _1, mp, false)
);
} else {
route.set_meter_point (mp);
}
} else {
route.set_meter_point (mp);
}
@@
-591,18
+596,25
@@
GainMeterBase::meter_point_clicked ()
}
}
}
}
-gint
-GainMeterBase::
start_gain_touch (GdkEventButton*
)
+bool
+GainMeterBase::
gain_slider_button_press (GdkEventButton* ev
)
{
{
- _amp->gain_control()->start_touch (_amp->session().transport_frame());
- return FALSE;
+ switch (ev->type) {
+ case GDK_BUTTON_PRESS:
+ _amp->gain_control()->start_touch (_amp->session().transport_frame());
+ break;
+ default:
+ return false;
+ }
+
+ return true;
}
}
-gint
-GainMeterBase::
end_gain_touch (GdkEventButton*
)
+bool
+GainMeterBase::
gain_slider_button_release (GdkEventButton* ev
)
{
_amp->gain_control()->stop_touch (false, _amp->session().transport_frame());
{
_amp->gain_control()->stop_touch (false, _amp->session().transport_frame());
- return
FALSE
;
+ return
true
;
}
gint
}
gint
@@
-811,15
+823,12
@@
GainMeter::GainMeter (Session* s, int fader_length)
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(15, 15);
gain_automation_style_button.set_size_request(15, 15);
- HBox* fader_centering_box = manage (new HBox);
- fader_centering_box->pack_start (*gain_slider, true, false);
-
fader_vbox = manage (new Gtk::VBox());
fader_vbox->set_spacing (0);
fader_vbox = manage (new Gtk::VBox());
fader_vbox->set_spacing (0);
- fader_vbox->pack_start (*
fader_centering_box
, false, false, 0);
+ fader_vbox->pack_start (*
gain_slider
, false, false, 0);
hbox.set_spacing (2);
hbox.set_spacing (2);
-
hbox.pack_start (*fader_vbox, true, true
);
+
hbox.pack_start (*fader_vbox, false, false, 4
);
set_spacing (2);
set_spacing (2);
@@
-863,7
+872,7
@@
GainMeter::set_controls (boost::shared_ptr<Route> r,
*/
gain_display_box.pack_end (peak_display, true, true);
*/
gain_display_box.pack_end (peak_display, true, true);
- hbox.pack_
end
(*level_meter, true, true);
+ hbox.pack_
start
(*level_meter, true, true);
if (r && !r->is_hidden()) {
fader_vbox->pack_start (gain_automation_state_button, false, false, 0);
if (r && !r->is_hidden()) {
fader_vbox->pack_start (gain_automation_state_button, false, false, 0);