X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ftape_region_view.cc;h=214686e8ff3dd56f39ad3172b9f2d491328f7fe5;hb=cef341631b55526e4b2bad940064491922c07701;hp=d626f3df496880fb12bf127e929855811841b83d;hpb=580520b12f90251e38d94a1a5d6a199b76142b0b;p=ardour.git diff --git a/gtk2_ardour/tape_region_view.cc b/gtk2_ardour/tape_region_view.cc index d626f3df49..214686e8ff 100644 --- a/gtk2_ardour/tape_region_view.cc +++ b/gtk2_ardour/tape_region_view.cc @@ -31,7 +31,7 @@ #include "audio_time_axis.h" #include "gui_thread.h" -#include "i18n.h" +#include "pbd/i18n.h" using namespace ARDOUR; using namespace PBD; @@ -46,10 +46,10 @@ const TimeAxisViewItem::Visibility TapeAudioRegionView::default_tape_visibility TimeAxisViewItem::HideFrameRight | TimeAxisViewItem::FullWidthNameHighlight); -TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, +TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Container *parent, RouteTimeAxisView &tv, boost::shared_ptr r, double spu, - Gdk::Color const & basic_color) + uint32_t basic_color) : AudioRegionView (parent, tv, r, spu, basic_color, false, TimeAxisViewItem::Visibility ((r->position() != 0) ? default_tape_visibility : @@ -58,13 +58,13 @@ TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Group *parent, RouteTime } void -TapeAudioRegionView::init (Gdk::Color const & basic_color, bool /*wfw*/) +TapeAudioRegionView::init (bool /*wfw*/) { /* never wait for data: always just create the waves, connect once and then we'll update whenever we need to. */ - AudioRegionView::init(basic_color, false); + AudioRegionView::init (false); /* every time the wave data changes and peaks are ready, redraw */ @@ -82,19 +82,23 @@ void TapeAudioRegionView::update (uint32_t /*n*/) { /* check that all waves are build and ready */ - if (!tmp_waves.empty()) { return; } ENSURE_GUI_THREAD (*this, &TapeAudioRegionView::update, n); // CAIROCANVAS - // waves[n]->rebuild (); -} -void -TapeAudioRegionView::set_frame_color () -{ - fill_opacity = 255; - AudioRegionView::set_frame_color (); + /* this is a quick hack to draw something (abuse gain_changed to force + * an image-cache invalidation. + * + * TODO: ArdourCanvas::WaveView needs an API to look up the specific channel "n" + * and a special case to not only invalidate the cache but re-expose the + * waveform. e.g. + * + * waves[m]->rebuild(); // where 'm' corresponds to channel 'n'. + */ + for (uint32_t i = 0; i < waves.size(); ++i) { + waves[i]->gain_changed (); + } }