enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / gtk2_ardour / tape_region_view.cc
index e4db441e74dddacb0c9c34da0b834460f6c294ad..214686e8ff3dd56f39ad3172b9f2d491328f7fe5 100644 (file)
 
 #include <gtkmm2ext/gtk_ui.h>
 
-#include "ardour/playlist.h"
 #include "ardour/audioregion.h"
 #include "ardour/audiosource.h"
-#include "ardour/audio_diskstream.h"
 
 #include "tape_region_view.h"
 #include "audio_time_axis.h"
 #include "gui_thread.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace ARDOUR;
 using namespace PBD;
@@ -48,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<AudioRegion> 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 :
@@ -60,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 */
 
@@ -81,24 +79,26 @@ TapeAudioRegionView::~TapeAudioRegionView()
 }
 
 void
-TapeAudioRegionView::update (uint32_t n)
+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)
-
-       /* this triggers a cache invalidation and redraw in the waveview */
-
-       waves[n]->property_data_src() = _region.get();
-}
-
-void
-TapeAudioRegionView::set_frame_color ()
-{
-       fill_opacity = 255;
-       AudioRegionView::set_frame_color ();
+       ENSURE_GUI_THREAD (*this, &TapeAudioRegionView::update, n);
+       // CAIROCANVAS
+
+       /* 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 ();
+       }
 }