Fix insane formatting (how did this even happen? copy paste from an email diff or...
[ardour.git] / gtk2_ardour / tape_region_view.cc
index bd5ce8af029fa9d6be35f78f99048f838acf27ac..21bc41800e107babcf88aa162c2c417610935792 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #include <cmath>
@@ -50,12 +49,12 @@ const TimeAxisViewItem::Visibility TapeAudioRegionView::default_tape_visibility
                TimeAxisViewItem::FullWidthNameHighlight);
 
 TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv, 
-                                         AudioRegion& r, 
+                                         boost::shared_ptr<AudioRegion> r, 
                                          double spu, 
                                          Gdk::Color& basic_color)
 
-       : AudioRegionView (parent, tv, r, spu, basic_color, 
-                          TimeAxisViewItem::Visibility ((r.position() != 0) ? default_tape_visibility : 
+       : AudioRegionView (parent, tv, r, spu, basic_color, false,
+                          TimeAxisViewItem::Visibility ((r->position() != 0) ? default_tape_visibility : 
                                                         TimeAxisViewItem::Visibility (default_tape_visibility|TimeAxisViewItem::HideFrameLeft)))
 {
 }
@@ -63,12 +62,16 @@ TapeAudioRegionView::TapeAudioRegionView (ArdourCanvas::Group *parent, RouteTime
 void
 TapeAudioRegionView::init (Gdk::Color& basic_color, bool wfw)
 {
-       AudioRegionView::init(basic_color, 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);
 
        /* every time the wave data changes and peaks are ready, redraw */
        
-       for (uint32_t n = 0; n < audio_region().n_channels(); ++n) {
-               audio_region().source(n).PeaksReady.connect (bind (mem_fun(*this, &TapeAudioRegionView::update), n));
+       for (uint32_t n = 0; n < audio_region()->n_channels(); ++n) {
+               audio_region()->audio_source(n)->PeaksReady.connect (bind (mem_fun(*this, &TapeAudioRegionView::update), n));
        }
        
 }
@@ -90,12 +93,12 @@ TapeAudioRegionView::update (uint32_t n)
 
        /* this triggers a cache invalidation and redraw in the waveview */
 
-       waves[n]->property_data_src() = &_region;
+       waves[n]->property_data_src() = _region.get();
 }
 
 void
 TapeAudioRegionView::set_frame_color ()
 {
        fill_opacity = 255;
-       TimeAxisViewItem::set_frame_color ();
+       AudioRegionView::set_frame_color ();
 }