Use correct default value for MIDI faders, and put the

unity mark in the correct position for those faders. 
Fixes #4234.


git-svn-id: svn://localhost/ardour2/branches/3.0@9955 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-08-03 18:41:16 +00:00
parent 89354edbbc
commit 5905b58bc0
3 changed files with 24 additions and 1 deletions

View File

@ -198,6 +198,7 @@ GainMeterBase::set_controls (boost::shared_ptr<Route> r,
gain_adjustment.set_upper (2.0);
gain_adjustment.set_step_increment (0.05);
gain_adjustment.set_page_increment (0.1);
gain_slider->set_default_value (1);
}
if (!_route || !_route->is_hidden()) {

View File

@ -38,6 +38,8 @@ class PixFader : public Gtk::DrawingArea
void set_fader_length (int);
void set_border_colors (uint32_t rgba_left, uint32_t rgba_right);
void set_default_value (float);
protected:
Gtk::Adjustment& adjustment;
@ -82,6 +84,7 @@ class PixFader : public Gtk::DrawingArea
void adjustment_changed ();
int display_span ();
void set_adjustment_from_event (GdkEventButton *);
void update_unity_position ();
static int fine_scale_modifier;
static int extra_fine_scale_modifier;

View File

@ -369,9 +369,21 @@ PixFader::set_fader_length (int l)
{
if (_orien == VERT) {
view.height = span = l;
unity_loc = (int) rint (view.height - (default_value * view.height)) - 1;
} else {
view.width = span = l;
}
update_unity_position ();
queue_draw ();
}
void
PixFader::update_unity_position ()
{
if (_orien == VERT) {
unity_loc = (int) rint (view.height * (1 - (default_value / (adjustment.get_upper() - adjustment.get_lower())))) - 1;
} else {
unity_loc = (int) rint (default_value * view.width);
}
@ -402,3 +414,10 @@ PixFader::set_adjustment_from_event (GdkEventButton* ev)
adjustment.set_value (fract * (adjustment.get_upper () - adjustment.get_lower ()));
}
void
PixFader::set_default_value (float d)
{
default_value = d;
update_unity_position ();
}