X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Faudio_region_view.cc;h=d4e846aec50174c6a8f5e9a637159ce8ce4bb2cc;hb=9153ef32975efb86cc1609d72a0ea1ebd149faab;hp=3e904aabaa2d986f43b1bcd56dad08f3abcda478;hpb=5f7b4de02414f00c98ede60db0dc1dddbbe051ae;p=ardour.git diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc index 3e904aabaa..d4e846aec5 100644 --- a/gtk2_ardour/audio_region_view.cc +++ b/gtk2_ardour/audio_region_view.cc @@ -24,14 +24,16 @@ #include -#include -#include -#include -#include -#include +#include "ardour/playlist.h" +#include "ardour/audioregion.h" +#include "ardour/audiosource.h" +#include "ardour/audio_diskstream.h" +#include "ardour/profile.h" -#include -#include +#include "pbd/memento_command.h" +#include "pbd/stacktrace.h" + +#include "evoral/Curve.hpp" #include "streamview.h" #include "audio_region_view.h" @@ -54,6 +56,7 @@ #define MUTED_ALPHA 10 +using namespace std; using namespace sigc; using namespace ARDOUR; using namespace PBD; @@ -63,7 +66,7 @@ using namespace ArdourCanvas; static const int32_t sync_mark_width = 9; AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, boost::shared_ptr r, double spu, - Gdk::Color& basic_color) + Gdk::Color const & basic_color) : RegionView (parent, tv, r, spu, basic_color) , sync_mark(0) , zero_line(0) @@ -80,7 +83,7 @@ AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, boost::shared_ptr r, double spu, - Gdk::Color& basic_color, bool recording, TimeAxisViewItem::Visibility visibility) + Gdk::Color const & basic_color, bool recording, TimeAxisViewItem::Visibility visibility) : RegionView (parent, tv, r, spu, basic_color, recording, visibility) , sync_mark(0) , zero_line(0) @@ -97,7 +100,8 @@ AudioRegionView::AudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView AudioRegionView::AudioRegionView (const AudioRegionView& other) - : RegionView (other) + : sigc::trackable(other) + , RegionView (other) , zero_line(0) , fade_in_shape(0) , fade_out_shape(0) @@ -141,7 +145,7 @@ AudioRegionView::AudioRegionView (const AudioRegionView& other, boost::shared_pt } void -AudioRegionView::init (Gdk::Color& basic_color, bool wfd) +AudioRegionView::init (Gdk::Color const & basic_color, bool wfd) { // FIXME: Some redundancy here with RegionView::init. Need to figure out // where order is important and where it isn't... @@ -196,16 +200,15 @@ AudioRegionView::init (Gdk::Color& basic_color, bool wfd) setup_fade_handle_positions (); - if (!Config->get_show_region_fades()) { + if (!trackview.session().config.get_show_region_fades()) { set_fade_visibility (false); } - string line_name = _region->name(); - line_name += ':'; - line_name += "gain"; + 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)) { @@ -412,7 +415,7 @@ AudioRegionView::reset_width_dependent_items (double pixel_width) fade_in_handle->hide(); fade_out_handle->hide(); } else { - if (Config->get_show_region_fades()) { + if (trackview.session().config.get_show_region_fades()) { fade_in_handle->show(); fade_out_handle->show(); } @@ -496,10 +499,11 @@ AudioRegionView::set_height (gdouble height) manage_zero_line (); reset_fade_shapes (); - - if (name_text) { - name_text->raise_to_top(); + + if (name_pixbuf) { + name_pixbuf->raise_to_top(); } + } void @@ -571,7 +575,7 @@ AudioRegionView::reset_fade_in_shape_width (nframes_t width) return; } - if (Config->get_show_region_fades()) { + if (trackview.session().config.get_show_region_fades()) { fade_in_shape->show(); } @@ -610,6 +614,9 @@ AudioRegionView::reset_fade_in_shape_width (nframes_t width) fade_in_shape->property_points() = *points; delete points; + + /* ensure trim handle stays on top */ + frame_handle_start->raise_to_top(); } void @@ -659,7 +666,7 @@ AudioRegionView::reset_fade_out_shape_width (nframes_t width) return; } - if (Config->get_show_region_fades()) { + if (trackview.session().config.get_show_region_fades()) { fade_out_shape->show(); } @@ -698,6 +705,9 @@ AudioRegionView::reset_fade_out_shape_width (nframes_t width) fade_out_shape->property_points() = *points; delete points; + + /* ensure trim handle stays on top */ + frame_handle_end->raise_to_top(); } void @@ -727,9 +737,9 @@ AudioRegionView::set_amplitude_above_axis (gdouble spp) } void -AudioRegionView::compute_colors (Gdk::Color& basic_color) +AudioRegionView::compute_colors (Gdk::Color const & basic_color) { - RegionView::compute_colors(basic_color); + RegionView::compute_colors (basic_color); uint32_t r, g, b, a; @@ -860,8 +870,6 @@ AudioRegionView::create_waves () if (wait_for_data) { if (audio_region()->audio_source(n)->peaks_ready (bind (mem_fun(*this, &AudioRegionView::peaks_ready_handler), n), data_ready_connection)) { - // cerr << "\tData is ready\n"; - cerr << "\tData is ready\n"; // cerr << "\tData is ready\n"; create_one_wave (n, true); } else { @@ -879,7 +887,7 @@ AudioRegionView::create_waves () } void -AudioRegionView::create_one_wave (uint32_t which, bool direct) +AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/) { //cerr << "AudioRegionView::create_one_wave() called which: " << which << " this: " << this << endl;//DEBUG RouteTimeAxisView& atv (*(dynamic_cast(&trackview))); // ick @@ -1028,7 +1036,7 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev) } void -AudioRegionView::remove_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev) +AudioRegionView::remove_gain_point_event (ArdourCanvas::Item *item, GdkEvent */*ev*/) { ControlPoint *cp = reinterpret_cast (item->get_data ("control_point")); audio_region()->envelope()->erase (cp->model()); @@ -1121,7 +1129,7 @@ AudioRegionView::set_waveform_shape (WaveformShape shape) void AudioRegionView::set_waveform_scale (WaveformScale scale) { - bool yn = (scale == LogWaveform); + bool yn = (scale == Logarithmic); if (yn != (bool) (_flags & WaveformLogScaled)) { for (vector::iterator wave = waves.begin(); wave != waves.end() ; ++wave) {