+ }
+}
+
+void
+AudioStreamView::update_contents_height ()
+{
+ StreamView::update_contents_height ();
+
+ for (CrossfadeViewList::iterator i = crossfade_views.begin(); i != crossfade_views.end(); ++i) {
+ update_content_height (i->second);
+ }
+}
+
+void
+AudioStreamView::update_content_height (CrossfadeView* cv)
+{
+ if (_layer_display == Overlaid) {
+
+ cv->set_y (0);
+ cv->set_height (height);
+
+ } else {
+
+ 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 ();
+
+ cv->set_y ((_layers - high - 1) * h);
+ cv->set_height ((high - low + 1) * h);