make link (rubberband) work
[ardour.git] / gtk2_ardour / audio_streamview.cc
index a21de27b46826e7f6b06b73592bcce47f1bb9cca..0e3dda0bd680b234e0a0800f07914ce63a996bac 100644 (file)
@@ -112,7 +112,7 @@ AudioStreamView::set_amplitude_above_axis (gdouble app)
 }
 
 RegionView*
-AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait_for_waves)
+AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait_for_waves, bool recording)
 {
        AudioRegionView *region_view = 0;
 
@@ -142,8 +142,13 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
 
        switch (_trackview.audio_track()->mode()) {
        case Normal:
-               region_view = new AudioRegionView (canvas_group, _trackview, region, 
+               if (recording) {
+                       region_view = new AudioRegionView (canvas_group, _trackview, region, 
+                                                  _samples_per_unit, region_color, recording, TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight));
+               } else {
+                       region_view = new AudioRegionView (canvas_group, _trackview, region, 
                                                   _samples_per_unit, region_color);
+               }
                break;
        case Destructive:
                region_view = new TapeAudioRegionView (canvas_group, _trackview, region, 
@@ -159,7 +164,6 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
        region_view->set_amplitude_above_axis(_amplitude_above_axis);
        region_views.push_front (region_view);
 
-       
        /* if its the special single-sample length that we use for rec-regions, make it 
           insensitive to events 
        */
@@ -456,7 +460,7 @@ AudioStreamView::redisplay_diskstream ()
        
        for (RegionViewList::iterator j = copy.begin(); j != copy.end(); ++j) {
                        (*j)->enable_display(true);
-                       (*j)->set_y_position_and_height(0, height);
+                       (*j)->set_height (height);
                        region_layered (*j);
        }
 }
@@ -466,8 +470,9 @@ AudioStreamView::set_show_waveforms (bool yn)
 {
        for (list<RegionView *>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
                AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
-               if (arv)
+               if (arv) {
                        arv->set_waveform_visible (yn);
+               }
        }
 }
 
@@ -496,7 +501,7 @@ AudioStreamView::set_waveform_scale (WaveformScale scale)
 void
 AudioStreamView::setup_rec_box ()
 {
-       // cerr << _trackview.name() << " streamview SRB\n";
+       //cerr << _trackview.name() << " streamview SRB region_views.size() = " << region_views.size() << endl;
 
        if (_trackview.session().transport_rolling()) {
 
@@ -505,7 +510,6 @@ AudioStreamView::setup_rec_box ()
                if (!rec_active && 
                    _trackview.session().record_status() == Session::Recording && 
                    _trackview.get_diskstream()->record_enabled()) {
-
                        if (_trackview.audio_track()->mode() == Normal && use_rec_regions && rec_regions.size() == rec_rects.size()) {
 
                                /* add a new region, but don't bother if they set use_rec_regions mid-record */
@@ -577,8 +581,9 @@ AudioStreamView::setup_rec_box ()
                        rec_rect->property_x1() = xstart;
                        rec_rect->property_y1() = 1.0;
                        rec_rect->property_x2() = xend;
-                       rec_rect->property_y2() = (double) _trackview.height - 1;
-                       rec_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
+                       rec_rect->property_y2() = (double) _trackview.current_height() - 1;
+                       rec_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeAxisFrame.get();
+                       rec_rect->property_outline_what() = 0x1 | 0x2 | 0x4 | 0x8;
                        rec_rect->property_fill_color_rgba() = fill_color;
                        rec_rect->lower_to_bottom();
                        
@@ -597,11 +602,9 @@ AudioStreamView::setup_rec_box ()
                } else if (rec_active &&
                           (_trackview.session().record_status() != Session::Recording ||
                            !_trackview.get_diskstream()->record_enabled())) {
-
                        screen_update_connection.disconnect();
                        rec_active = false;
                        rec_updating = false;
-
                }
                
        } else {
@@ -687,7 +690,6 @@ void
 AudioStreamView::update_rec_regions ()
 {
        if (use_rec_regions) {
-
                uint32_t n = 0;
 
                for (list<pair<boost::shared_ptr<Region>,RegionView*> >::iterator iter = rec_regions.begin(); iter != rec_regions.end(); n++) {
@@ -725,7 +727,7 @@ AudioStreamView::update_rec_regions ()
 
                                                if (origlen == 1) {
                                                        /* our special initial length */
-                                                       add_region_view_internal (region, false);
+                                                       add_region_view_internal (region, false, true);
                                                }
 
                                                /* also update rect */
@@ -750,7 +752,7 @@ AudioStreamView::update_rec_regions ()
                                                
                                                if (origlen == 1) {
                                                        /* our special initial length */
-                                                       add_region_view_internal (region, false);
+                                                       add_region_view_internal (region, false, true);
                                                }
                                                
                                                /* also hide rect */