diff options
-rw-r--r-- | gtk2_ardour/audio_streamview.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/audio_streamview.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 9 |
3 files changed, 25 insertions, 0 deletions
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index 58b55f94f2..fe9ace43cc 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -178,6 +178,20 @@ AudioStreamView::redisplay_track () } void +AudioStreamView::reload_waves () +{ + list<RegionView *>::iterator i; + for (i = region_views.begin(); i != region_views.end(); ++i) { + AudioRegionView* arv = dynamic_cast<AudioRegionView*> (*i); + if (!arv) { + continue; + } + arv->delete_waves(); + arv->create_waves(); + } +} + +void AudioStreamView::setup_rec_box () { //cerr << _trackview.name() << " streamview SRB region_views.size() = " << region_views.size() << endl; diff --git a/gtk2_ardour/audio_streamview.h b/gtk2_ardour/audio_streamview.h index 47cc32fa25..b3bef6e127 100644 --- a/gtk2_ardour/audio_streamview.h +++ b/gtk2_ardour/audio_streamview.h @@ -67,6 +67,8 @@ public: RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool); void set_selected_points (PointSelection&); + void reload_waves (); + private: void setup_rec_box (); void rec_peak_range_ready (samplepos_t start, ARDOUR::samplecnt_t cnt, boost::weak_ptr<ARDOUR::Source> src); diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 5af14987ee..22f4c179de 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -2404,6 +2404,15 @@ RouteTimeAxisView::io_changed (IOChange /*change*/, void */*src*/) { reset_meter (); if (_route && !no_redraw) { + AudioStreamView* asv = dynamic_cast<AudioStreamView*>(_view); + if (asv) { + /* this needs to happen with the disk-reader's I/O changed, + * however there is no dedicated signal for this, and in almost + * call cases it follows I/O changes. + * This is similar to ARDOUR_UI::cleanup_peakfiles, and + * re-loads wave-form displays. */ + asv->reload_waves (); + } request_redraw (); } } |