summaryrefslogtreecommitdiff
path: root/gtk2_ardour/streamview.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-03-14 03:43:54 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-03-14 03:43:54 +0000
commitaf707897735a34ab1a82c7307dc61b12c14027a9 (patch)
treeb2a9fc621c4a5d7865a46f09eb5cafeee959a9a1 /gtk2_ardour/streamview.cc
parent1a52aeb370c9fabbd2229da793aee0399f04ca2f (diff)
improvements (!) to waveform display for destructive tracks, plus a generic fix that avoid waveview attemting to read peaks before they are ready
git-svn-id: svn://localhost/trunk/ardour2@388 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/streamview.cc')
-rw-r--r--gtk2_ardour/streamview.cc50
1 files changed, 36 insertions, 14 deletions
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index a4ee1c9c5e..862efdb4c5 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -535,7 +535,7 @@ StreamView::set_selected_regionviews (AudioRegionSelection& regions)
{
bool selected;
- cerr << _trackview.name() << " (selected = " << regions.size() << ")" << endl;
+ // cerr << _trackview.name() << " (selected = " << regions.size() << ")" << endl;
for (list<AudioRegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
selected = false;
@@ -546,7 +546,7 @@ StreamView::set_selected_regionviews (AudioRegionSelection& regions)
}
}
- cerr << "\tregion " << (*i)->region.name() << " selected = " << selected << endl;
+ // cerr << "\tregion " << (*i)->region.name() << " selected = " << selected << endl;
(*i)->set_selected (selected, this);
}
}
@@ -618,11 +618,12 @@ StreamView::setup_rec_box ()
// cerr << "\trolling\n";
- if (!rec_active
- && _trackview.session().record_status() == Session::Recording
- && _trackview.get_diskstream()->record_enabled()) {
+ 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()) {
- if (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 */
AudioRegion::SourceList sources;
@@ -664,7 +665,17 @@ StreamView::setup_rec_box ()
DiskStream& ds = at->disk_stream();
jack_nframes_t frame_pos = ds.current_capture_start ();
gdouble xstart = _trackview.editor.frame_to_pixel (frame_pos);
- gdouble xend = xstart;
+ gdouble xend;
+
+ switch (_trackview.audio_track()->mode()) {
+ case Normal:
+ xend = xstart;
+ break;
+
+ case Destructive:
+ xend = xstart + 2;
+ break;
+ }
ArdourCanvas::SimpleRect * rec_rect = new Gnome::Canvas::SimpleRect (*canvas_group);
rec_rect->property_x1() = xstart;
@@ -749,21 +760,32 @@ StreamView::setup_rec_box ()
void
StreamView::update_rec_box ()
{
- /* only update the last box */
if (rec_active && rec_rects.size() > 0) {
+ /* only update the last box */
RecBoxInfo & rect = rec_rects.back();
jack_nframes_t at = _trackview.get_diskstream()->current_capture_end();
+ double xstart;
+ double xend;
+
+ switch (_trackview.audio_track()->mode()) {
+ case Normal:
+ rect.length = at - rect.start;
+ xstart = _trackview.editor.frame_to_pixel (rect.start);
+ xend = _trackview.editor.frame_to_pixel (at);
+ break;
+
+ case Destructive:
+ rect.length = 2;
+ xstart = _trackview.editor.frame_to_pixel (at);
+ xend = xstart + 2;
+ break;
+ }
- rect.length = at - rect.start;
-
- gdouble xstart = _trackview.editor.frame_to_pixel ( rect.start );
- gdouble xend = _trackview.editor.frame_to_pixel ( at );
-
rect.rectangle->property_x1() = xstart;
rect.rectangle->property_x2() = xend;
}
}
-
+
AudioRegionView*
StreamView::find_view (const AudioRegion& region)
{