, _end_xfade_visible (false)
, _amplitude_above_axis(1.0)
, fade_color(0)
, _end_xfade_visible (false)
, _amplitude_above_axis(1.0)
, fade_color(0)
{
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&AudioRegionView::parameter_changed, this, _1), gui_context());
}
{
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&AudioRegionView::parameter_changed, this, _1), gui_context());
}
, _end_xfade_visible (false)
, _amplitude_above_axis(1.0)
, fade_color(0)
, _end_xfade_visible (false)
, _amplitude_above_axis(1.0)
, fade_color(0)
{
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&AudioRegionView::parameter_changed, this, _1), gui_context());
}
{
Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&AudioRegionView::parameter_changed, this, _1), gui_context());
}
, _end_xfade_visible (false)
, _amplitude_above_axis (other._amplitude_above_axis)
, fade_color(0)
, _end_xfade_visible (false)
, _amplitude_above_axis (other._amplitude_above_axis)
, fade_color(0)
Points::size_type pi;
boost::shared_ptr<const Evoral::ControlList> list (audio_region()->fade_in());
Evoral::ControlList::const_iterator x;
double length = list->length();
Points::size_type pi;
boost::shared_ptr<const Evoral::ControlList> list (audio_region()->fade_in());
Evoral::ControlList::const_iterator x;
double length = list->length();
Points::size_type pi;
boost::shared_ptr<const Evoral::ControlList> list (audio_region()->fade_out());
Evoral::ControlList::const_iterator x;
double length = list->length();
Points::size_type pi;
boost::shared_ptr<const Evoral::ControlList> list (audio_region()->fade_out());
Evoral::ControlList::const_iterator x;
double length = list->length();
- fade_in_trim_handle->show ();
- fade_in_trim_handle->raise_to_top ();
+ boost::shared_ptr<AudioRegion> ar (audio_region());
+ if (!ar->locked() && (ar->fade_in()->back()->when > 64 || (ar->can_trim() & Trimmable::FrontTrimEarlier))) {
+ fade_in_trim_handle->show ();
+ fade_in_trim_handle->raise_to_top ();
+ } else {
+ fade_in_trim_handle->hide ();
+ }
- fade_out_trim_handle->show ();
- fade_out_trim_handle->raise_to_top ();
+ boost::shared_ptr<AudioRegion> ar (audio_region());
+ if (!ar->locked() && (ar->fade_out()->back()->when > 64 || (ar->can_trim() & Trimmable::EndTrimLater))) {
+ fade_out_trim_handle->show ();
+ fade_out_trim_handle->raise_to_top ();
+ } else {
+ fade_out_trim_handle->hide ();
+ }
ArdourCanvas::color_to_rgba (fill, r, g, b, a);
fill = ArdourCanvas::rgba_to_color (r, g, b, 0.85); /* magic number, not user controllable */
outline = ARDOUR_UI::config()->get_canvasvar_WaveForm();
ArdourCanvas::color_to_rgba (fill, r, g, b, a);
fill = ArdourCanvas::rgba_to_color (r, g, b, 0.85); /* magic number, not user controllable */
outline = ARDOUR_UI::config()->get_canvasvar_WaveForm();
- if (fade_in_handle) { fade_in_handle->show(); }
- if (fade_out_handle) { fade_out_handle->show(); }
- if (fade_in_trim_handle) { fade_in_trim_handle->show(); }
- if (fade_out_trim_handle) { fade_out_trim_handle->show(); }
- if (start_xfade_rect) { start_xfade_rect->set_outline(true); }
- if (end_xfade_rect) { end_xfade_rect->set_outline(true); }
- } else {
+ if (start_xfade_curve) { start_xfade_curve->show (); }
+ if (end_xfade_curve) { end_xfade_curve->show (); }
+ if (start_xfade_rect) { start_xfade_rect->show (); }
+ if (end_xfade_rect) { end_xfade_rect->show (); }
+ } else {
+ if (start_xfade_curve) { start_xfade_curve->hide(); }
+ if (end_xfade_curve) { end_xfade_curve->hide(); }
if (fade_in_handle) { fade_in_handle->hide(); }
if (fade_out_handle) { fade_out_handle->hide(); }
if (fade_in_trim_handle) { fade_in_trim_handle->hide(); }
if (fade_out_trim_handle) { fade_out_trim_handle->hide(); }
if (fade_in_handle) { fade_in_handle->hide(); }
if (fade_out_handle) { fade_out_handle->hide(); }
if (fade_in_trim_handle) { fade_in_trim_handle->hide(); }
if (fade_out_trim_handle) { fade_out_trim_handle->hide(); }
if (start_xfade_rect) { start_xfade_rect->set_outline (false); }
if (end_xfade_rect) { end_xfade_rect->set_outline (false); }
}
if (start_xfade_rect) { start_xfade_rect->set_outline (false); }
if (end_xfade_rect) { end_xfade_rect->set_outline (false); }
}
+
+ if (fade_in_handle && fade_in_handle->visible()) {
+ // lenght of region or fade changed, re-check
+ // if fade_in_trim_handle or fade_out_trim_handle should
+ // be visible. -- If the fade_in_handle is visible
+ // we have focus and are not in internal edit mode.
+ entered(false);
+ }