X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Faudio_region_view.cc;h=2a6bd2e1fe9f259015b5ccb61c10a8c0a42233f3;hb=beb3eea62bf217d0a7b2a86a96d5c375329df10a;hp=5f781937dcf405a73fe0725a3e8a6fbdaa0c5cf4;hpb=b87ca000f86fdfc210c08056ae8e921236ea96c7;p=ardour.git diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc index 5f781937dc..2a6bd2e1fe 100644 --- a/gtk2_ardour/audio_region_view.cc +++ b/gtk2_ardour/audio_region_view.cc @@ -161,7 +161,7 @@ AudioRegionView::init (Gdk::Color& basic_color, bool wfd) store_flags (); } - if (trackview.editor.new_regionviews_display_gain()) { + if (trackview.editor().new_regionviews_display_gain()) { _flags |= EnvelopeVisible; } @@ -196,6 +196,10 @@ AudioRegionView::init (Gdk::Color& basic_color, bool wfd) setup_fade_handle_positions (); + if (!Config->get_show_region_fades()) { + set_fade_visibility (false); + } + string line_name = _region->name(); line_name += ':'; line_name += "gain"; @@ -247,9 +251,7 @@ AudioRegionView::~AudioRegionView () /* all waveviews etc will be destroyed when the group is destroyed */ - if (gain_line) { - delete gain_line; - } + delete gain_line; } boost::shared_ptr @@ -410,8 +412,10 @@ AudioRegionView::reset_width_dependent_items (double pixel_width) fade_in_handle->hide(); fade_out_handle->hide(); } else { - fade_in_handle->show(); - fade_out_handle->show(); + if (Config->get_show_region_fades()) { + fade_in_handle->show(); + fade_out_handle->show(); + } } } } @@ -442,13 +446,13 @@ AudioRegionView::setup_fade_handle_positions() double const handle_height = 5; if (fade_in_handle) { - fade_in_handle->property_y1() = _y_position + handle_pos; - fade_in_handle->property_y2() = _y_position + handle_pos + handle_height; + fade_in_handle->property_y1() = handle_pos; + fade_in_handle->property_y2() = handle_pos + handle_height; } if (fade_out_handle) { - fade_out_handle->property_y1() = _y_position + handle_pos; - fade_out_handle->property_y2() = _y_position + handle_pos + handle_height; + fade_out_handle->property_y1() = handle_pos; + fade_out_handle->property_y2() = handle_pos + handle_height; } } @@ -506,7 +510,7 @@ AudioRegionView::manage_zero_line () } if (_height >= 100) { - double const wave_midpoint = _y_position + (_height - NAME_HIGHLIGHT_SIZE) / 2.0; + double const wave_midpoint = (_height - NAME_HIGHLIGHT_SIZE) / 2.0; zero_line->property_y1() = wave_midpoint; zero_line->property_y2() = wave_midpoint; zero_line->show(); @@ -567,7 +571,9 @@ AudioRegionView::reset_fade_in_shape_width (nframes_t width) return; } - fade_in_shape->show(); + if (Config->get_show_region_fades()) { + fade_in_shape->show(); + } float curve[npoints]; audio_region()->fade_in()->curve().get_vector (0, audio_region()->fade_in()->back()->when, curve, npoints); @@ -587,16 +593,16 @@ AudioRegionView::reset_fade_in_shape_width (nframes_t width) for (pi = 0, pc = 0; pc < npoints; ++pc) { (*points)[pi].set_x(1 + (pc * xdelta)); - (*points)[pi++].set_y(_y_position + 2 + (h - (curve[pc] * h))); + (*points)[pi++].set_y(2 + (h - (curve[pc] * h))); } /* fold back */ (*points)[pi].set_x(pwidth); - (*points)[pi++].set_y(_y_position + 2); + (*points)[pi++].set_y(2); (*points)[pi].set_x(1); - (*points)[pi++].set_y(_y_position + 2); + (*points)[pi++].set_y(2); /* connect the dots ... */ @@ -653,7 +659,9 @@ AudioRegionView::reset_fade_out_shape_width (nframes_t width) return; } - fade_out_shape->show(); + if (Config->get_show_region_fades()) { + fade_out_shape->show(); + } float curve[npoints]; audio_region()->fade_out()->curve().get_vector (0, audio_region()->fade_out()->back()->when, curve, npoints); @@ -673,16 +681,16 @@ AudioRegionView::reset_fade_out_shape_width (nframes_t width) for (pi = 0, pc = 0; pc < npoints; ++pc) { (*points)[pi].set_x(_pixel_width - 1 - pwidth + (pc*xdelta)); - (*points)[pi++].set_y(_y_position + 2 + (h - (curve[pc] * h))); + (*points)[pi++].set_y(2 + (h - (curve[pc] * h))); } /* fold back */ (*points)[pi].set_x(_pixel_width); - (*points)[pi++].set_y(_y_position + h); + (*points)[pi++].set_y(h); (*points)[pi].set_x(_pixel_width); - (*points)[pi++].set_y(_y_position + 2); + (*points)[pi++].set_y(2); /* connect the dots ... */ @@ -988,7 +996,7 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev) item->w2i (x, y); - nframes_t fx = trackview.editor.pixel_to_frame (x); + nframes_t fx = trackview.editor().pixel_to_frame (x); if (fx > _region->length()) { return; @@ -996,8 +1004,8 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev) /* compute vertical fractional position */ - y = 1.0 - (y / (trackview.current_height() - NAME_HIGHLIGHT_SIZE)); - + y = 1.0 - (y / (_height - NAME_HIGHLIGHT_SIZE)); + /* map using gain line */ gain_line->view_to_model_y (y); @@ -1313,3 +1321,34 @@ AudioRegionView::set_frame_color () } } +void +AudioRegionView::set_fade_visibility (bool yn) +{ + if (yn) { + if (fade_in_shape) { + fade_in_shape->show(); + } + if (fade_out_shape) { + fade_out_shape->show (); + } + if (fade_in_handle) { + fade_in_handle->show (); + } + if (fade_out_handle) { + fade_out_handle->show (); + } + } else { + if (fade_in_shape) { + fade_in_shape->hide(); + } + if (fade_out_shape) { + fade_out_shape->hide (); + } + if (fade_in_handle) { + fade_in_handle->hide (); + } + if (fade_out_handle) { + fade_out_handle->hide (); + } + } +}