+
+ case Stacked:
+ case Expanded:
+ layer_t const inl = cv->crossfade->in()->layer ();
+ layer_t const outl = cv->crossfade->out()->layer ();
+
+ layer_t const high = max (inl, outl);
+ layer_t const low = min (inl, outl);
+
+ const double h = child_height ();
+
+ if (_layer_display == Stacked) {
+ cv->set_y ((_layers - high - 1) * h);
+ cv->set_heights ((high - low + 1) * h, h);
+ } else {
+ cv->set_y (((_layers - high) * 2 - 1) * h);
+ cv->set_heights (((high - low) * 2 + 1) * h, h);
+ }
+ }
+}
+
+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 ());
+ }
+}
+
+void
+AudioStreamView::horizontal_position_changed ()
+{
+ /* we only `draw' the bit of the curve that is visible, so we need to update here */
+
+ for (CrossfadeViewList::iterator i = crossfade_views.begin(); i != crossfade_views.end(); ++i) {
+ i->second->horizontal_position_changed ();