#include <gtkmm2ext/gtk_ui.h>
-#include <ardour/playlist.h>
-#include <ardour/audioregion.h>
-#include <ardour/audiosource.h>
-#include <ardour/audio_diskstream.h>
-#include <ardour/profile.h>
+#include "ardour/playlist.h"
+#include "ardour/audioregion.h"
+#include "ardour/audiosource.h"
+#include "ardour/audio_diskstream.h"
+#include "ardour/profile.h"
-#include <pbd/memento_command.h>
-#include <pbd/stacktrace.h>
+#include "pbd/memento_command.h"
+#include "pbd/stacktrace.h"
+
+#include "evoral/Curve.hpp"
#include "streamview.h"
#include "audio_region_view.h"
#define MUTED_ALPHA 10
+using namespace std;
using namespace sigc;
using namespace ARDOUR;
using namespace PBD;
AudioRegionView::AudioRegionView (const AudioRegionView& other)
- : RegionView (other)
+ : sigc::trackable(other)
+ , RegionView (other)
, zero_line(0)
, fade_in_shape(0)
, fade_out_shape(0)
store_flags ();
}
- if (trackview.editor.new_regionviews_display_gain()) {
+ if (trackview.editor().new_regionviews_display_gain()) {
_flags |= EnvelopeVisible;
}
setup_fade_handle_positions ();
- string line_name = _region->name();
- line_name += ':';
- line_name += "gain";
+ if (!trackview.session().config.get_show_region_fades()) {
+ set_fade_visibility (false);
+ }
+
+ const string line_name = _region->name() + ":gain";
if (!Profile->get_sae()) {
- gain_line = new AudioRegionGainLine (line_name, trackview.session(), *this, *group, audio_region()->envelope());
+ gain_line = new AudioRegionGainLine (line_name, trackview.session(), *this, *group,
+ audio_region()->envelope());
}
if (!(_flags & EnvelopeVisible)) {
/* all waveviews etc will be destroyed when the group is destroyed */
- if (gain_line) {
- delete gain_line;
- }
+ delete gain_line;
}
boost::shared_ptr<ARDOUR::AudioRegion>
fade_in_handle->hide();
fade_out_handle->hide();
} else {
- fade_in_handle->show();
- fade_out_handle->show();
+ if (trackview.session().config.get_show_region_fades()) {
+ fade_in_handle->show();
+ fade_out_handle->show();
+ }
}
}
}
manage_zero_line ();
reset_fade_shapes ();
-
- if (name_text) {
- name_text->raise_to_top();
+
+ if (name_pixbuf) {
+ name_pixbuf->raise_to_top();
}
+
}
void
return;
}
- fade_in_shape->show();
+ if (trackview.session().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);
return;
}
- fade_out_shape->show();
+ if (trackview.session().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);
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;
/* 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);
+ gain_line->view_to_model_coord (x, y);
trackview.session().begin_reversible_command (_("add gain control point"));
XMLNode &before = audio_region()->envelope()->get_state();
}
}
+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 ();
+ }
+ }
+}