summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_streamview.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/audio_streamview.cc')
-rw-r--r--gtk2_ardour/audio_streamview.cc48
1 files changed, 19 insertions, 29 deletions
diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc
index e2aa080b64..7dbae624e1 100644
--- a/gtk2_ardour/audio_streamview.cc
+++ b/gtk2_ardour/audio_streamview.cc
@@ -59,12 +59,12 @@ AudioStreamView::AudioStreamView (AudioTimeAxisView& tv)
: StreamView (tv)
{
crossfades_visible = true;
- _waveform_scale = LinearWaveform;
- _waveform_shape = Traditional;
color_handler ();
_amplitude_above_axis = 1.0;
use_rec_regions = tv.editor().show_waveforms_recording ();
+
+ Config->ParameterChanged.connect (sigc::mem_fun (*this, &AudioStreamView::parameter_changed));
}
AudioStreamView::~AudioStreamView ()
@@ -148,30 +148,9 @@ AudioStreamView::create_region_view (boost::shared_ptr<Region> r, bool wait_for_
region_view->set_sensitive (false);
}
- /* if this was the first one, then lets query the waveform scale and shape.
- otherwise, we set it to the current value */
-
- if (region_views.size() == 1) {
-
- if (region_view->waveform_logscaled()) {
- _waveform_scale = LogWaveform;
- } else {
- _waveform_scale = LinearWaveform;
- }
-
- if (region_view->waveform_rectified()) {
- _waveform_shape = Rectified;
- } else {
- _waveform_shape = Traditional;
- }
- }
- else {
- region_view->set_waveform_scale(_waveform_scale);
- region_view->set_waveform_shape(_waveform_shape);
- }
-
- /* follow global waveform setting */
- region_view->set_waveform_visible(_trackview.editor().show_waveforms());
+ region_view->set_waveform_scale (Config->get_waveform_scale ());
+ region_view->set_waveform_shape (Config->get_waveform_shape ());
+ region_view->set_waveform_visible (Config->get_show_waveforms ());
return region_view;
}
@@ -460,7 +439,6 @@ AudioStreamView::set_waveform_shape (WaveformShape shape)
if (arv)
arv->set_waveform_shape (shape);
}
- _waveform_shape = shape;
}
void
@@ -468,10 +446,10 @@ AudioStreamView::set_waveform_scale (WaveformScale scale)
{
for (RegionViewList::iterator i = region_views.begin(); i != region_views.end(); ++i) {
AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
- if (arv)
+ if (arv) {
arv->set_waveform_scale (scale);
+ }
}
- _waveform_scale = scale;
}
void
@@ -832,3 +810,15 @@ AudioStreamView::update_contents_height ()
}
}
}
+
+void
+AudioStreamView::parameter_changed (string const & p)
+{
+ if (p == "show-waveforms") {
+ set_show_waveforms (Config->get_show_waveforms ());
+ } else if (p == "waveform-scale") {
+ set_waveform_scale (Config->get_waveform_scale ());
+ } else if (p == "waveform-shape") {
+ set_waveform_shape (Config->get_waveform_shape ());
+ }
+}